SQL语言学习教程课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《SQL语言学习教程课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 语言 学习 教程 课件
- 资源描述:
-
1、中国科学院西安网络中心1SQL 语言语言中国科学院西安网络中心2前言SQL是上世纪是上世纪70年代末期,由年代末期,由IBM实验室开发的。实验室开发的。SQL是是Structured Query Language的缩写,即的缩写,即“结构化查结构化查询语言询语言”,它当初是为,它当初是为IBM公司的公司的DB2开发的,是一个功开发的,是一个功能强大的数据库语言。能强大的数据库语言。SQL不同于其他的计算机语言,是一个非过程语言。不同于其他的计算机语言,是一个非过程语言。非过程非过程(Nonprocedural)意味着意味着“作什么作什么”而不是而不是“怎么作怎么作”,比如:,比如:SQL描述出
2、要检索、删除、插入的数据特征,描述出要检索、删除、插入的数据特征,而不是怎样进行这些操作。而不是怎样进行这些操作。两个标准化组织:两个标准化组织:ANSI(美国国家标准学会美国国家标准学会)和和ISO(国国际标准化组织际标准化组织),提出了,提出了SQL的工业标准,目前最新的标的工业标准,目前最新的标准是准是ANSI-92。中国科学院西安网络中心3SQL概述SQL是操纵和检索关系数据库中数据的标准语言,使用是操纵和检索关系数据库中数据的标准语言,使用SQL,程,程序员和数据库管理员可以:序员和数据库管理员可以:修改数据库结构;修改数据库结构;改变系统的安全性设置;改变系统的安全性设置;增加用户
3、操作库和表的权利;增加用户操作库和表的权利;从库中查询信息;从库中查询信息;更新库的内容。更新库的内容。中国科学院西安网络中心4增强 SQL为了增强功能,所有的数据库产品都在一定程度上和为了增强功能,所有的数据库产品都在一定程度上和ANSI标准有所不同,绝大多数系统提供了标准有所不同,绝大多数系统提供了SQL的专有扩展功能,将的专有扩展功能,将SQL扩展成过程型语言。微软的数据库产品扩展成过程型语言。微软的数据库产品SQL Server所提供所提供的的Transact-SQL(T-SQL)语言就是扩展的语言就是扩展的SQL语言。语言。中国科学院西安网络中心5 SQL产品 Oracle公司开发了
4、第一个使用公司开发了第一个使用SQLSQL的商品化的商品化RDBMSRDBMS。常见关系。常见关系数据库管理系统有:数据库管理系统有:Oracle、Sybase、Microsoft SQL Server、Access、Ingres等。等。中国科学院西安网络中心6资源n SQL Server 连机丛书,可从微软网站单独下载。n 搜索引擎:中国科学院西安网络中心7DBMS和RDBMSn DBMS(Database Managerment System)数据库管理系统数据库管理系统 层次型数据库层次型数据库 网络形数据库网络形数据库 关系型数据库关系型数据库n RDBMS(Relation Data
5、base Managerment System)关系数据库管理系统关系数据库管理系统 中国科学院西安网络中心8关系型DBMSRDBMS 1970年年E.F.Codd博士写了一篇题为博士写了一篇题为大型共享数大型共享数据银行的数据的一个关系模型据银行的数据的一个关系模型(A Relational Model of Data for Large Shared Data Banks)的学术论文,的学术论文,这篇论文奠定了关系数据库的基础。这篇论文奠定了关系数据库的基础。Codd博士提出了定义关系数据库模型的十三条准则:博士提出了定义关系数据库模型的十三条准则:0.一个关系型的一个关系型的DBMS必须
6、能够通过它的关系能力来全面必须能够通过它的关系能力来全面地管理数据库。地管理数据库。1.信息准确。信息准确。RDBMS的所有信息(包括表和列名)都应的所有信息(包括表和列名)都应该用表中的值显式地表示。该用表中的值显式地表示。2.保证访问准则。在关系数据库中的每个值都能保证以表保证访问准则。在关系数据库中的每个值都能保证以表名、主码值和列名的组合访问。名、主码值和列名的组合访问。中国科学院西安网络中心9关系数据库模型的十三条准则3.系统的空值支持策略。系统的空值支持策略。RDBMS在系统级上提供对空值在系统级上提供对空值(未知的或尚不能显式地定义具体的数值未知的或尚不能显式地定义具体的数值)处
7、理的支持。处理的支持。空值和默认值不同,并且是独立于任何域的。空值和默认值不同,并且是独立于任何域的。4.动态的、联机的关系型数据字典。数据库的描述和它的动态的、联机的关系型数据字典。数据库的描述和它的内容在逻辑级上表示成表,并且可以用数据库语言查询。内容在逻辑级上表示成表,并且可以用数据库语言查询。5.功能范围广泛的数据子语言。一个关系系统至少应提供功能范围广泛的数据子语言。一个关系系统至少应提供一种具有严格语法定义的语言,它的功能应很全面、很一种具有严格语法定义的语言,它的功能应很全面、很广泛,支持数据定义、数据操纵、完整性规则、授权和广泛,支持数据定义、数据操纵、完整性规则、授权和事物处
8、理。事物处理。6.视图更新准则。所有理论上可更新的可更新的视图也应视图更新准则。所有理论上可更新的可更新的视图也应该允许由系统更新。该允许由系统更新。中国科学院西安网络中心10关系数据库模型的十三条准则7.集合级别上的插入、修改和删除。集合级别上的插入、修改和删除。DBMS。8.数据物理独立性。当数据的物理存取方法或存取结构变数据物理独立性。当数据的物理存取方法或存取结构变化时,应用程序和其他特殊程序应保持逻辑上不收影响。化时,应用程序和其他特殊程序应保持逻辑上不收影响。9.功能范围广泛的数据子语言。一个关系系统至少应提供功能范围广泛的数据子语言。一个关系系统至少应提供一种具有严格语法定义的语
9、言,它的功能应很全面、很一种具有严格语法定义的语言,它的功能应很全面、很广泛,支持数据定义、数据操纵、完整性规则、授权和广泛,支持数据定义、数据操纵、完整性规则、授权和事物处理。事物处理。10.视图更新准则。所有理论上可更新的可更新的视图也视图更新准则。所有理论上可更新的可更新的视图也应该允许由系统更新。应该允许由系统更新。中国科学院西安网络中心11关于 ODBC中国科学院西安网络中心12客户机/服务器开发工具w Microsoft 公司的公司的 Visual Basic、Visual C+w Borland 公司的公司的 Delphiw PowerSoft 公司的公司的 PowerBuild
10、er中国科学院西安网络中心13数据类型在在 SQL 语言语言 中,每个列、局部变量、表达式和中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、的数据类型(整型、字符、money 等等)的特性。等等)的特性。SQL Server 提供系统数据类型集,定义了可与提供系统数据类型集,定义了可与 SQL Server 一起使用的所有数据类型。下面列出系一起使用的所有数据类型。下面列出系统提供的数据类型集。统提供的数据类型集。精确数字,近似数字,字符串,精确数字,近似数字,字符串,Unicode 字符字符串,
11、二进制字符串,其它数据类型。串,二进制字符串,其它数据类型。有关数据类型的细节请看有关数据类型的细节请看SQL Server 联机丛联机丛书。书。中国科学院西安网络中心14使用 Unicode 数据统一的字符编码标准统一的字符编码标准,采用双字节对字符进行编采用双字节对字符进行编码。码。Unicode 规格为全球商业领域中广泛使用的大部规格为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案。所有的计算机都用分字符定义了一个单一编码方案。所有的计算机都用单一的单一的 Unicode 规格将规格将 Unicode 数据中的位模式数据中的位模式一致地翻译成字符。这保证了同一个位模式在所有的一
12、致地翻译成字符。这保证了同一个位模式在所有的计算机上总是转换成同一个字符。数据可以随意地从计算机上总是转换成同一个字符。数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,一个数据库或计算机传送到另一个数据库或计算机,而不用担心接收系统是否会错误地翻译位模式。而不用担心接收系统是否会错误地翻译位模式。有关有关Unicode的细节请看的细节请看SQL Server 联机丛联机丛书。书。中国科学院西安网络中心15一般的语法规则SQL 语法建议:语法建议:Microsoft SQL Server 2000 Transact-SQL 版遵从版遵从 Entry 级级 SQL-92标准,并支持标
13、准,并支持 Intermediate 级和级和 Full 级标准中的很多附加级标准中的很多附加功能。功能。有关有关Unicode的细节请看的细节请看SQL Server 联机丛联机丛书。书。中国科学院西安网络中心16样本数据库w pubs中国科学院西安网络中心17表、行、列w 行:行:SQL 表中构成表中的水平行的元素集合。表中的表中构成表中的水平行的元素集合。表中的每一行代表由该表建模的对象的一个出现,并存储该对象每一行代表由该表建模的对象的一个出现,并存储该对象所有特性的值。例如,在所有特性的值。例如,在 Northwind 示例数据库中,示例数据库中,Employees 表建立表建立 N
14、orthwind Traders 公司职员公司职员的模型。表中的第一行记录职员的模型。表中的第一行记录职员 ID 为为 1 的职员的全部的职员的全部信息(例如姓名和头衔)。信息(例如姓名和头衔)。w 列:列:SQL 表中每一行中的区域,存储用该表制作模型表中每一行中的区域,存储用该表制作模型的某个对象特性的数据值。例如,的某个对象特性的数据值。例如,Northwind 示例数据示例数据库中的库中的 Employees 表建立表建立 Northwind Traders 公公司职员的模型。司职员的模型。Employees 表的每个行中的表的每个行中的 LastName 列存储该行所代表的职员的姓氏
15、,就象窗口列存储该行所代表的职员的姓氏,就象窗口或表单中的或表单中的 Last Name 字段包含姓氏一样。字段包含姓氏一样。中国科学院西安网络中心18SQL Server服务管理器中国科学院西安网络中心19使用查询分析器中国科学院西安网络中心20查询分析器连接 SQL Serverw 本地连接本地连接(local).主机名主机名(用用ipconfig/all查询主机名查询主机名)IP地址地址w 远程连接远程连接 主机名主机名 IP地址地址中国科学院西安网络中心21第一单元查 询中国科学院西安网络中心22错误信息w select服务器服务器:消息消息 170,级别,级别 15,状态,状态 1,
16、行,行 1第第 1 行行:select 附近有语法错误。附近有语法错误。中国科学院西安网络中心23第一个查询第一个查询w select*from authors星号星号*告诉数据库返回由告诉数据库返回由from指定的表的所有列,返指定的表的所有列,返回顺序由数据库决定。大小写不影响查询结果。回顺序由数据库决定。大小写不影响查询结果。w select au_id,au_lname,au_fname,phone,address,city,state,zip,contract from authors与前一条与前一条SQL语句有相同的结果。语句有相同的结果。中国科学院西安网络中心24改变列的顺序w
17、select au_id,phone,au_lname,au_fname,address,city,state,zip,contract from authors现在你有了控制各列输出顺序的能力。现在你有了控制各列输出顺序的能力。中国科学院西安网络中心25选择个别列如果你只对某些列感兴趣,比如只想检索如果你只对某些列感兴趣,比如只想检索au_lname,au_fname,phone,address,就应,就应该这样写该这样写SQL语句:语句:w select au_lname,au_fname,phone,address from authors现在你已经得到你感兴趣的列了。现在你已经得到你感
18、兴趣的列了。中国科学院西安网络中心26选择另一张表如果你需要另一张表中的信息,该怎么办呢?如果你需要另一张表中的信息,该怎么办呢?w select*from discounts中国科学院西安网络中心27结果不重复的查询观察下面查询的输出:观察下面查询的输出:w select city from authors你会发现有相同的城市,两个人住在同一个城市这很你会发现有相同的城市,两个人住在同一个城市这很正常,但如果你想看看到底有那几个城市在表中怎么办呢正常,但如果你想看看到底有那几个城市在表中怎么办呢?试试这个:?试试这个:w select distinct city from authorsSQ
19、L语法中还有一个和语法中还有一个和distinct对应的关键字对应的关键字allw select all city from authors你会发现查询结果和上面的第一个你会发现查询结果和上面的第一个SQL语句相同,既然语句相同,既然如此,谁还想自找麻烦呢?如此,谁还想自找麻烦呢?中国科学院西安网络中心28第二单元表达式、条件和操作符中国科学院西安网络中心29表达式表达式用于返回一个值。它包括:字符串、数字、布表达式用于返回一个值。它包括:字符串、数字、布尔表达式。其实你已经用过表达式了,跟在尔表达式。其实你已经用过表达式了,跟在select和和from中间的东西都是表达式。中间的东西都是表达
20、式。表达式是符号与运算符的组合。简单的表达式可以是表达式是符号与运算符的组合。简单的表达式可以是一个常量、变量、列或标量函数。可以用运算符将两个或一个常量、变量、列或标量函数。可以用运算符将两个或更多的简单表达式联接起来组成复杂的表达式。更多的简单表达式联接起来组成复杂的表达式。中国科学院西安网络中心30条件中国科学院西安网络中心31Where子句Where子句的语法:子句的语法:where 先来回顾一下我们前面所学的先来回顾一下我们前面所学的“第一个查询第一个查询”w select*from authors你会看到,结果返回了数据库你会看到,结果返回了数据库pubs中表中表authors的所
21、的所有内容,如果你想查某一作者的情况,可以键入有内容,如果你想查某一作者的情况,可以键入:w select*from authors where au_lname=Smith我们得到了想要的结果。我们得到了想要的结果。中国科学院西安网络中心32操作符操作符是条件表达式中用于精确表示你想从数据库中操作符是条件表达式中用于精确表示你想从数据库中查询出什么数据的运算符号。操作符大致分为六类:算术查询出什么数据的运算符号。操作符大致分为六类:算术操作符、比较操作符、字符操作符、逻辑操作符、集合操操作符、比较操作符、字符操作符、逻辑操作符、集合操作符和其他操作符。作符和其他操作符。中国科学院西安网络中心
22、33算术操作符(+)加号有两种不同的用法,可以作算术操作符,也可以加号有两种不同的用法,可以作算术操作符,也可以作字符操作符,我们先用它作算术操作符。键入:作字符操作符,我们先用它作算术操作符。键入:w select discounttype,stor_id,lowqty,highqty,discount from discounts现在我们把所有的折扣增加现在我们把所有的折扣增加0.5元,可以键入元,可以键入:w select discounttype,stor_id,lowqty,highqty,discount+0.5 from discounts我们得到了想要的结果。我们得到了想要的结
23、果。SQL允许你将已有的列进行组允许你将已有的列进行组合或计算,以建立虚拟列和导出字段,原始表并不发生变合或计算,以建立虚拟列和导出字段,原始表并不发生变化。化。中国科学院西安网络中心34算术操作符(+)续观察一下观察一下discount+0.5字段的标题是字段的标题是(无列名无列名),太,太不好听了,我们把它改一改。键入:不好听了,我们把它改一改。键入:w select discounttype,stor_id,lowqty,highqty,discount+0.5 新折扣新折扣 from discounts很好,我们可以重新命名列标题。重新命名任意字段列很好,我们可以重新命名列标题。重新命
24、名任意字段列标题的语法格式:列名标题的语法格式:列名 别名别名(注意它们之间有空格)(注意它们之间有空格)加号还可以作为字符操作符,后面你将看到这种用法。加号还可以作为字符操作符,后面你将看到这种用法。中国科学院西安网络中心35建立虚拟列我们想把原来的折扣和新折扣加以对照,键入:我们想把原来的折扣和新折扣加以对照,键入:w select discounttype,stor_id,lowqty,highqty,discount 旧折扣旧折扣,discount+0.5 新折扣新折扣 from discounts太好了!我们不仅建立了一个新的列,还可以重新命太好了!我们不仅建立了一个新的列,还可以重
25、新命名任意列标题。名任意列标题。中国科学院西安网络中心36算术操作符(-)减号也有两种用法:可以用某列减去一个常数,或者减号也有两种用法:可以用某列减去一个常数,或者用一列减去另一列。另一种用法是改变某数的符号。用一列减去另一列。另一种用法是改变某数的符号。我们先来改变一列数的符号,键入:我们先来改变一列数的符号,键入:w select discounttype,stor_id,lowqty,highqty,discount-3 from discounts用一列减去另一列,键入:用一列减去另一列,键入:w select discounttype,stor_id,lowqty,highqty,
展开阅读全文