关系数据库标准语言-SQL课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《关系数据库标准语言-SQL课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 标准 语言 SQL 课件
- 资源描述:
-
1、第第3章章 关系数据库标关系数据库标准语言准语言-SQL参考书籍参考书籍v曹军生等曹军生等.SQL Server 2000实用教程实用教程.北京:北京:北京理工大学出版社,北京理工大学出版社,2003.v教育部考试中心教育部考试中心.全国计算机等级考试二级教全国计算机等级考试二级教程:程:Visual FoxPro程序设计(程序设计(2011年版)年版)M.北京:高等教育出版社,北京:高等教育出版社,2011.v刘丽刘丽.Visual FoxPro程序设计(第三版)程序设计(第三版)M.北京:中国铁道出版社,北京:中国铁道出版社,2011.3.1 SQL概述(1)SQL 发展:发展:vSQL(
2、Structured Query Language):结构化结构化查询语言查询语言v1974年,年,Boyce 和和Chamberlin 最早提出;最早提出;v1975-1979年,年,IBM公司通过公司通过System R实现实现了商业用途;了商业用途;v版本:版本:SQL86(ANSI)-89SQL92SQL99v同样同样 Visual FoxPro也引入了也引入了SQL语言语言3.1 SQL概述(2)v一、一、SQL语言的特点:语言的特点:vSQL是结构化查询语言,其功能不仅仅是查是结构化查询语言,其功能不仅仅是查询,他是一个通用的功能极强的关系数据库询,他是一个通用的功能极强的关系数据
3、库语言。语言。1、综合统一:、综合统一:SQL语言集数据定义语言语言集数据定义语言(DDL)、数据操纵语言()、数据操纵语言(DML)、数据控制语)、数据控制语言言(DCL)功能于一体;功能于一体;2、高度非过程化高度非过程化:3、面向集合的操作方式:可以同时对多个记录、面向集合的操作方式:可以同时对多个记录进行查询、插入、更新、删除等操作;进行查询、插入、更新、删除等操作;4、以同一种语法结构提供两种使用方式:即可、以同一种语法结构提供两种使用方式:即可独立使用,也可嵌入其它语言程序中;独立使用,也可嵌入其它语言程序中;5、功能丰富,语言简练:、功能丰富,语言简练:SQL功能功能命令动词命令
4、动词数据查询数据查询SELECT数据定义数据定义CREATE,DROP,ALTER数据操纵数据操纵INSERT,UPDATE,DELETE3.1 SQL概述(3)v二、二、VFP中中SQL的功能:的功能:数据查询:数据查询:数据定义:数据定义:数据操纵:数据操纵:v三、视图的定义:三、视图的定义:视图是从一个或几个数据库表中导出的视图是从一个或几个数据库表中导出的“表表”,它本身不独立存储在数据库中,是虚表。它本身不独立存储在数据库中,是虚表。3.2 数据定义功能(1)v3.2.1 表的定义表的定义一般格式如下:一般格式如下:CREATE TABLE|DBF ;(字段字段1的完整性约束条件的完
5、整性约束条件;,字段字段2的完整性约束条件的完整性约束条件;,表的完整性约束条件(表间关系),表的完整性约束条件(表间关系))3.2 表数据的定义功能(2)v说明:说明:v1.Table与与DBF是等价的,是等价的,Table是标准是标准SQL的关键的关键字,字,DBF是是VFP的关键字;的关键字;v2.是基本表的名称,它可包含多个字段;是基本表的名称,它可包含多个字段;v3.字段的完整约束条件包括:字段的完整约束条件包括:1)满足实体完整性的主关键字(主索引)可用)满足实体完整性的主关键字(主索引)可用PRIMARY KEY|UNIQUE 说明,说明,UNIQUE也可指定关也可指定关键字内容
6、的唯一性。键字内容的唯一性。2)定义字段值(字段内容)的有效性用)定义字段值(字段内容)的有效性用CHECK约束,约束,出错提示信息用出错提示信息用ERROR说明(说明的内容为字符型数说明(说明的内容为字符型数据)据),定义默认值用定义默认值用 DEFAULT3)用)用NULL或或NOT NULL 说明字段值是否可以为空值。说明字段值是否可以为空值。3.2 表数据的定义功能(3)v4此外还有描述表之间联系的此外还有描述表之间联系的 FOREIGN KEY和和 REFERENCES(用(用FOREIGN KEY指定普通索引,用指定普通索引,用REFERENCES限限定索引与表建立关系)等。定索引
7、与表建立关系)等。v5字段类型用字母表示(见下页)有些类型字段类型用字母表示(见下页)有些类型需要用户给定字段宽度和小数位。需要用户给定字段宽度和小数位。3.2 表数据的定义功能(4)字段类型表示字段类型表示字段宽度字段宽度小数位数小数位数说明说明Cm-字符型(字符型(character),宽度位),宽度位mD-日期型(日期型(Date)T-日期时间型(日期时间型(DateTime)Nmn数字型(数字型(Numeric),宽度位),宽度位m,小数位数位,小数位数位nL-逻辑型(逻辑型(Logical)M-备注型(备注型(Memo)G-通用型(通用型(General)Y-货币型(货币型(Curr
8、ency)I-整数型(整数型(Integer)B-m双精度型(双精度型(Double),小数位数为),小数位数为 mFmn浮点型(浮点型(Float),宽度为),宽度为m,小数位数为,小数位数为n3.2 表数据的定义功能()v【例例3.1】用命令建立一个名为用命令建立一个名为“YYGL”的医院科室数的医院科室数据库,再用据库,再用SQL新建一个名为新建一个名为“BUMEN”的科室信息的科室信息表表(要求有:科室编号,科室名,床位数,并对床位数要求有:科室编号,科室名,床位数,并对床位数进行有效性规则检查)。进行有效性规则检查)。vCreate Database YYGL vCREATE TAB
9、LE BUMEN(科室编号科室编号 C(3)PRIMARY KEY,科室名科室名 C(10),床位数床位数 I CHECK(床位数床位数0)ERROR 床位数应该大于床位数应该大于0!)3.2 表数据的定义功能(6)v【例例3.2】用用SQL的命令建立医生信息表(的命令建立医生信息表(YSXX)于医院管理库。于医院管理库。v create table ysxx(编号编号 c(6)primary key,姓名姓名 c(6),性别性别 c(2),职称职称 c(10),年龄年龄 I check(年龄年龄=15 and 年龄年龄0 error 年龄值不合法!年龄值不合法!,科室编号科室编号 c(3),
10、主治大夫编主治大夫编号号 c(6),foreign key 科室编号科室编号 tag 科室编号科室编号 references bumen,foreign key 主治大夫编号主治大夫编号 tag 编号编号 references ysxx)v通过通过3个例题,共建立个例题,共建立3个关系:个关系:BUMEN 科室编号科室编号-YSXX 科室编号科室编号BUMEN 科室编号科室编号-BRXX 科室编号科室编号YSXX 编号编号BRXX 主治大夫编号主治大夫编号3.2 表数据的定义功能(7)v3.2.2修改基本表的结构修改基本表的结构【格式一格式一】ALTER TABLE ADD|ALTERCOLU
11、MN 完整性约束完整性约束该用法可以添加(该用法可以添加(ADD)新的字段或修改()新的字段或修改(ALTER)己)己有的字段,它的句法基本可以与有的字段,它的句法基本可以与 CREATE TABLE 的句的句法相对应。法相对应。注意:该用法用于增加字段或修改字段的类型、宽度。注意:该用法用于增加字段或修改字段的类型、宽度。以及重新定义有效性规则、错误信息、默认值,主关键以及重新定义有效性规则、错误信息、默认值,主关键字和联系等;字和联系等;但是不能修改字段名,不能删除字段等。但是不能修改字段名,不能删除字段等。3.2 表数据的定义功能(8)v【例例3.4】为科室信息表(为科室信息表(BUME
12、N)增加一)增加一个个“职工数职工数”字段,并且要求该字段值不能字段,并且要求该字段值不能为零。为零。v【例例3.5】将医生信息表(将医生信息表(YSXX)的)的“姓名姓名”字段的宽度改为字段的宽度改为8。3.2 表数据的定义功能(9)v【格式二格式二】ALTER TABBLE vALTERCOLUMNvNULL|NOT NULLvSET DEFAULT vSET CHECK 有效性规则有效性规则 ERROR 提示信提示信息息vDROP DEFAULTvDROP CHECKv注意:该格式主要用于修改和删除有效性规则和默注意:该格式主要用于修改和删除有效性规则和默认值定义。认值定义。3.2 表数
13、据的定义功能(10)v【例例3.6】修改或定义科室信息表(修改或定义科室信息表(BUMEN)“职工数职工数”字段的有效性规则。字段的有效性规则。【例例3.7】删除科室信息表(删除科室信息表(BUMEN)的有效)的有效性规则。性规则。3.2 表数据的定义功能(11)v【格式三格式三】ALTER TABLE vDROPCOLUMN字段名字段名v ADD PRIMARY KEY 关键字关键字 TAG 索引名索引名 FOR 条件条件v DROP PRIMARY KEYv ADD UNIQUE 关键字关键字 TAG索引名索引名FOR 条件条件v DROP UNIQUE TAG索引名索引名v ADD FO
14、REIGN KEY关键字关键字TAG索引名索引名FOR 条件条件v REFERENCES 表名表名TAG 索引名索引名v DROP FOREIGN KEY TAG索引名索引名SAVEv RENAME COLUMN 字段名字段名 TO 新字段名新字段名 v该用法可以删除字段(该用法可以删除字段(DROPCOLUMN)、可以修改)、可以修改字段名(字段名(RENAME COLUMN)。可以定义、修改和删除)。可以定义、修改和删除表一级的有效性规则等。表一级的有效性规则等。3.2 表数据的定义功能(12)v【例例3.8】将科室信息表(将科室信息表(BUMEN)的)的“职工数职工数”字段名改为字段名改
15、为“职工人数职工人数”。v【例例3.9】删除科室信息表(删除科室信息表(BUMEN)中的)中的“职工职工人数人数”字段。字段。v【例例3.10】将科室信息表(将科室信息表(BUMEN)的)的“床位数床位数”为候选索引(候选关键字),索引名是为候选索引(候选关键字),索引名是TEMP_CWS 。v【例例3.11】删除科室信息表(删除科室信息表(BUMEN)的候选索)的候选索引引TEMP_CWS。v alter table bumen drop unique tag Temp_cws3.2 表数据的定义功能(13)v3.2.3 表的删除表的删除Drop Table 注意:删除数据库中表时,数据库要
16、打开。注意:删除数据库中表时,数据库要打开。3.3 数据查询功能(1)v数据库查询是数据库查询是SQL的核心操作的核心操作Select一般格式:一般格式:SELECT ALL|DISTINCT ,FROM表名表名1,表名,表名2 WHERE GROUP BY HAVING ORDER BY ASC|DESC3.3 数据查询功能(2)v3.3.1 简单查询(单表查询):简单查询(单表查询):v一、选择表中的任意列一、选择表中的任意列(字段字段):1、查询指定列:、查询指定列:【例例3.12】查询全体医生的姓名与学历。查询全体医生的姓名与学历。select 姓名姓名,学历学历 from ysxx【
17、例例3.13】查询全体医生的姓名、学历和编号。查询全体医生的姓名、学历和编号。select 姓名姓名,学历学历,编号编号 from ysxxv 2查询全部列查询全部列:【例例3.14】查询全体医生的详细记录。查询全体医生的详细记录。Select*from ysxx3.3 数据查询功能(3)v 3、查询经过计算的值查询经过计算的值:SELECT子句的子句的不仅可以是表中不仅可以是表中的字段,也可以是表达式。的字段,也可以是表达式。【例例3.15】查询全体医生的姓名及其出生年份。查询全体医生的姓名及其出生年份。Select 姓名姓名,2012-年龄年龄 from ysxxSelect 姓名姓名,y
18、ear(date()-年龄年龄 as 出生年份出生年份 from ysxx3.3 数据查询功能(4)v二、选择表中的若干记录(行):二、选择表中的若干记录(行):1、消除取值重复的行:、消除取值重复的行:Distinct2、查询满足条件的记录:、查询满足条件的记录:where查查 询询 条条 件件谓词谓词比比 较较=,=,=,!,!确定范围确定范围BETWEEN AND,NOT BETWEEN AND确定集合确定集合IN,NOT IN字符匹配字符匹配LIKE,NOT LIKE空空 值值IS NULL,IS NOT NULL多重条件多重条件AND,OR3.3 数据查询功能(5)v【例例3.17】
19、查询所有年龄在查询所有年龄在30岁以下的医生姓名及岁以下的医生姓名及其年龄。其年龄。v【例例3.18】查询年龄在查询年龄在30-40岁岁(包括包括30岁和岁和40岁岁)之之间的医生的姓名和年龄。间的医生的姓名和年龄。v【例例3.19】查询科室编号为查询科室编号为“101”、“102”,“103”的医生的全部信息。的医生的全部信息。v【例例3.20】查询编号为查询编号为“101001”的医生的详细情的医生的详细情况。况。v SELECT*FROM YSXX WHERE 编号编号 LIKE“101001”v等价于:等价于:SELECT*FROM YSXX WHERE 编号编号=“101001”3.
20、3 数据查询功能(6)v【例例3.21】查询所有姓查询所有姓“雷雷”的医生的全部信息。的医生的全部信息。v SELECT*FROM YSXX WHERE 姓名姓名 LIKE “雷雷%”v【例例3.22】查询姓名中姓查询姓名中姓“刘刘”,且姓名只有两个字的医生,且姓名只有两个字的医生的姓名。的姓名。v SELECT 姓名姓名 FROM YSXX WHERE 姓名姓名 LIKE “刘刘_”v 【例例3.23】查询所有不姓刘的医生的姓名。查询所有不姓刘的医生的姓名。v SELECT 姓名姓名 FROM YSXX WHERE NOT 姓名姓名 LIKE “刘刘”3.3 数据查询功能(7)v【例例3.2
21、4】某些医生有来医院工作意向但没某些医生有来医院工作意向但没有报到上班,所以有个人信息而没有参加工有报到上班,所以有个人信息而没有参加工作日期。作日期。查询缺少参加工作日期的医生的姓查询缺少参加工作日期的医生的姓名。名。v SELECT 姓名姓名 FROM YSXX WHERE 参加工作日期参加工作日期 IS NULL 3.3 数据查询功能(8)v【例例3.25】查询科室编号为查询科室编号为“101”的年龄在的年龄在40岁以下的医生姓名。岁以下的医生姓名。vSELECT 姓名姓名FROM YSXX WHERE 科室科室编号编号=“101”AND 年龄年龄403.3 数据查询功能(9)v三三.对
22、查询结果排序:对查询结果排序:用户可以用用户可以用ORDER BY子句对查询结果按照一个或多个子句对查询结果按照一个或多个字段的升序字段的升序(ASC)或降序或降序(DESC)排列,缺省值为升序。排列,缺省值为升序。【例例3.26】查询所有医生的姓名和年龄,查询结果按年查询所有医生的姓名和年龄,查询结果按年龄的降序排列。龄的降序排列。select 姓名姓名,年龄年龄 from ysxx order by 年龄年龄 desc注:注:SELECT命令要显示的行数可以是命令要显示的行数可以是 TOP n Percent(TOP 必须与必须与Order by 同时使用同时使用)3.3 数据查询功能(1
展开阅读全文