数据库sql基础知识大全_第1页
数据库sql基础知识大全_第2页
数据库sql基础知识大全_第3页
数据库sql基础知识大全_第4页
数据库sql基础知识大全_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Spring, 2009. 1主讲:赵海霞主讲:赵海霞河南科技大学电信学院河南科技大学电信学院Spring, 2009. 2n 概述概述n SQL的数据定义的数据定义n SQL的数据操纵的数据操纵n SQL的视图定义的视图定义n SQL的数据控制的数据控制n 嵌入式嵌入式SQL第三章关系数据库语言SQLSpring, 2009. 3nSQL(Structured Query Language)是)是1974年由年由Boyde和和Chamberlin提出的提出的F 1974年年 IBM的的System RF 1979年年 OracleF 1982年年 IBM的的DB2F 1984年年 Sybas

2、en1986年年10月月ANSI公布公布SQL-86标准标准n1989年年ISO公布公布SQL-89标准(标准(120页)页)n1992年公布年公布SQL-92标准(标准(622页)页)n1999年公布年公布SQL-99标准(标准(1700页)页)n2003年公布年公布SQL-2003标准(标准(3600页)页)第三章关系数据库语言SQL3.1 概述Spring, 2009. 4n综合统一综合统一F 集集DDL、DML、DCL为一体为一体F 实体和联系都是关系,因此每种操作只需一种操作符实体和联系都是关系,因此每种操作只需一种操作符n高度非过程化高度非过程化n面向集合的操作方式面向集合的操作方

3、式n以同一种语法结构提供两种使用方式(以同一种语法结构提供两种使用方式(交互式和嵌入式交互式和嵌入式)n语言简捷,易学易用语言简捷,易学易用F数据定义数据定义 CREATE、DROP、ALTERF数据查询数据查询 SELECTF数据更新数据更新 INSERT、UPDATE、DELETEF数据控制数据控制 GRANT、REVOKE第三章关系数据库语言SQL3.1 概述Spring, 2009. 5n支持三级模式结构支持三级模式结构 视图视图 外模式外模式 基本表(的集合)基本表(的集合) 模式模式 存储文件和索引存储文件和索引 内模式内模式第三章关系数据库语言SQL3.1 概述Spring, 2

4、009. 6用户2用户3用户4视图V1视图V2基本表B1基本表B2基本表B3基本表B4存储文件S1存储文件S2存储文件S3存储文件S4用户1SQLSQL用户用户视图视图基本表基本表存储文件存储文件第三章关系数据库语言SQL3.1 概述Spring, 2009. 7 数据定义语言(The Data Definition Language, DDL) 数据操作语言(The Data Manipulation Language, DML) 嵌入式和动态SQL 事务管理 安全性管理 触发器和高级完整性约束 客户服务器执行和远程数据库存取 高级特性第三章关系数据库语言SQL3.1 概述Spring, 2

5、009. 8n定义和修改基本表(定义模式中的关系):定义和修改基本表(定义模式中的关系):F CREATE TABLEF DROP TABLEF ALTER TABLEn定义视图(定义外模式):定义视图(定义外模式):F CREATE VIEWF DROP VIEWn定义索引(定义内模式):定义索引(定义内模式):F CREATE INDEXF DROP INDEX第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 9n基本格式基本格式 CREATE TABLE ( , , ););:所要定义的基本表的名字:所要定义的基本表的名字:组成该表的各个属性(列):组成该表的

6、各个属性(列):涉及相应属性列的完整性约束条件:涉及相应属性列的完整性约束条件:涉及一个或多个属性列的完整性约:涉及一个或多个属性列的完整性约束条件束条件 第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 10例例1 建立一个建立一个“学生学生”表表Student,它由学号,它由学号Sno、姓名、姓名Sname、性别、性别Ssex、年龄、年龄Sage、所、所在系在系Sdept五个属性组成。其中学号不能为空,五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。值是唯一的,并且姓名取值也唯一。 CREATE TABLE Student (Sno CHAR(5

7、) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1) , Sage INT, Sdept CHAR(15); 第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 11n说明:说明:FSQL支持空值的概念。允许空值的列未输入支持空值的概念。允许空值的列未输入数据时系统自动置为空值。数据时系统自动置为空值。F SQL支持的数据类型随系统不同而有所差支持的数据类型随系统不同而有所差异,但一般都有:异,但一般都有:全字长整型、半字长整型、定点实型、全字长整型、半字长整型、定点实型、浮点实型、浮点实型、CHAR(n)、)、

8、VARCHAR(n) 、TEXT、DATE第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 12n常用完整性约束常用完整性约束F 主码约束:主码约束: PRIMARY KEYF 唯一性约束:唯一性约束:UNIQUEF 非空值约束:非空值约束:NOT NULLF 参照完整性约束参照完整性约束 FOREIGN KEYF checkcheck约束约束思考:思考:PRIMARY KEY与与 UNIQUE的区别?的区别?nPrimary key在建立的时候会默认地建立此在建立的时候会默认地建立此field的索引,的索引,且此且此primary key可以作为作为另外的表的可以

9、作为作为另外的表的foreign key;n再者再者primary key跟跟unique的区别是是Primary key 一定是一定是not null,而,而unique则没有此限制则没有此限制第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 13精确数字精确数字bigintdecimalintnumericsmallintmoneytinyintsmallmoneybit 近似数字近似数字floatreal日期和时间日期和时间datetimesmalldatetime字符串字符串chartextvarchar Unicode 字符串字符串ncharntextnv

10、archar 二进制字符串二进制字符串binaryimagevarbinary 其他数据类型其他数据类型cursortimestampsql_variantuniqueidentifiertablexmlSpring, 2009. 14n例例2 建立一个建立一个“课程课程”表表C,它由课程,它由课程号号Cno,课程名称,课程名称Cname,教师,教师Teacher组成,其中组成,其中Cno为主码。为主码。FCREATE TABLE C(F Cno CHAR(5) ,F Cname CHAR(10) , F Teacher CHAR(10),F Primary key (Cno);F或像书上写的

11、将或像书上写的将Primary key 直接定义在属性列后。直接定义在属性列后。Spring, 2009. 15n例例3 建立一个建立一个“学生选课学生选课”表表SC,它由学号,它由学号Sno、课程号、课程号Cno,修课成绩,修课成绩Grade组成,其中组成,其中(Sno, Cno)为主码。为主码。FCREATE TABLE SC(F Sno CHAR(5) ,F Cno CHAR(3) , F Grade int,F Primary key (Sno, Cno), F FOREIGN KEY(Sno) REFERENCES S(Sno),F FOREIGN KEY(Cno) REFERENC

12、ES C(Cno)F);第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 16n(1)数值型(数值型(DB2)F SMALLINT 半字长二进制整数半字长二进制整数F INTEGER 全字长二进制整数全字长二进制整数F DECIMAL(P,q)或者)或者DEC(p,q) 压缩十进制数,共p位,其中小数点后q位F FLOAT 双字长浮点数双字长浮点数n(2)字符串型字符串型F CHARTER(n)或或CHAR(n)F VARCHAR(n)n(3)时间型时间型F DATEF TIMEn(4)位串型位串型F BIT(n)Spring, 2009. 17n基本格式基本格式

13、DROP TABLE 表名表名 ;n示例示例 DROP TABLE S;第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 18n基本格式基本格式 ALTER TABLE ADD 完整性约束完整性约束 DROP ALTER COLUMN ;:要修改的基本表:要修改的基本表ADD子句子句:增加新列和新的完整性约束条件:增加新列和新的完整性约束条件DROP子句子句:删除指定的完整性约束条件:删除指定的完整性约束条件ALTER COLUMN子句子句:用于修改列名和数据类型:用于修改列名和数据类型第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 1

14、9n增加列基本格式增加列基本格式ALTER TABLE 表名表名 ADD 列名列名 类型;类型;F示例示例 ALTER TABLE S ADD ADDRESS VARCHAR (30)n修改列基本格式修改列基本格式 ALTER TABLE 表名表名 ALTER COLUMN 列名列名 类型;类型;FALTER TABLE S ALTER COLUMN SA SMALLINT;n删除列基本格式删除列基本格式 ALTER TABLE 表名表名 DROP 列名;列名;FALTER TABLE S DROP UNIQUE(Sn);第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 200

15、9. 20ALTER TABLE studentADD sno CHAR(5) NULL -向向student表中添加一列表中添加一列snoALTER TABLE student -修改修改sno的定义保障此列不为空的定义保障此列不为空MODIFY sno CHAR(5) NOT NULL ALTER TABLE student -向向student表添加主键约束表添加主键约束ADD PRIMARY KEY(sno)ALTER TABLE student -从从student表删除列表删除列sexDROP COLUMN sexSpring, 2009. 21-向向study表中添加外键约束表中

16、添加外键约束ALTER TABLE studyADD CONSTRAINT fkcno FOREIGN KEY(cno) REFERENCES course(cno) ON DELETE CASCADE ON UPDATE CASCADE-向向study表中添加外键约束表中添加外键约束 ALTER TABLE study ADD CONSTRAINT fksno FOREIGN KEY(sno) REFERENCES student(sno) ON DELETE CASCADE ON UPDATE CASCADESpring, 2009. 22n基本操作基本操作F CREATE VIEWF D

17、ROP VIEWn后面详细讨论后面详细讨论第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 23n建立索引是加快查询速度的有效手段建立索引是加快查询速度的有效手段n建立索引建立索引FDBA或表的属主(即建立表的人)根据需要建立或表的属主(即建立表的人)根据需要建立F有些有些DBMS自动建立以下列上的索引自动建立以下列上的索引 PRIMARY KEY UNIQUEn维护索引维护索引F DBMS自动完成自动完成 n使用索引使用索引F DBMS自动选择是否使用索引以及使用哪些索引自动选择是否使用索引以及使用哪些索引第三章关系数据库语言SQL3.2 SQL的数据定义Spri

18、ng, 2009. 24n索引的结构RDBMS中,索引一般采用中,索引一般采用B+树或树或HASH索引实现,具体由索引实现,具体由RDBMS决定。决定。B+树具有动态平衡的优点树具有动态平衡的优点HASH索引查找速度快。索引查找速度快。索引是关系数据库的内部实现技术,属内索引是关系数据库的内部实现技术,属内模式范畴。模式范畴。用户创建索引时,可创建唯一索引、非唯用户创建索引时,可创建唯一索引、非唯一索引或聚簇索引。一索引或聚簇索引。Spring, 2009. 25n在在SQL86和和SQL89标准中,基本表没有关键码概念,标准中,基本表没有关键码概念,可以用可以用索引索引机制来弥补。机制来弥补

19、。n索引属于物理存储的路径概念,而不是逻辑的概念。索引属于物理存储的路径概念,而不是逻辑的概念。n在定义基本表时,还要定义索引,就把数据库的物理在定义基本表时,还要定义索引,就把数据库的物理结构和逻辑结构混在一块了。结构和逻辑结构混在一块了。n因此在因此在SQL2中引入了主码(主键)的概念,用户在创中引入了主码(主键)的概念,用户在创建基本表时用主码子句建基本表时用主码子句Primary key直接定义主码。直接定义主码。n但至今大多数但至今大多数DBMS仍使用索引机制,有索引创建和仍使用索引机制,有索引创建和撤销语句,其功能仅限于查询时起作用。撤销语句,其功能仅限于查询时起作用。Spring

20、, 2009. 26n索引建立的基本格式索引建立的基本格式 ASCDESC,列名,列名 ASCDESC););一个索引项对应一个记录一个索引项对应一个记录升序或降序升序或降序 CREATE UNIQUE CLUSTER INDEX 索引名索引名 ON 表名(列名表名(列名 第三章关系数据库语言SQL3.2 SQL的数据定义聚簇索引表明此索引的每个索引值只对应唯一的数据记录又称聚簇索引,必须维护表中行的物理存储顺序和索引顺序一致,经常进行更新操作的表不宜建立聚簇索引。Spring, 2009. 27例、例、为学生为学生-课程数据库中的课程数据库中的S,C,SC三个表建三个表建立索引。其中立索引。

21、其中S表按学号升序建唯一索引,表按学号升序建唯一索引,C表表按课程号升序建唯一索引,按课程号升序建唯一索引,SC表按学号升序和表按学号升序和课程号降序建唯一索引。课程号降序建唯一索引。CREATE UNIQUE INDEX Ssno ON S(Sno);CREATE UNIQUE INDEX Ccno ON C(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); 第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 28n唯一值索引唯一值索引F对于已含重复值的属性列不能建对于已含重复值的属性列不能建UNIQUE索

22、引索引F对某个列建立对某个列建立UNIQUE索引后,插入新记录时索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。会自动检查新记录在该列上是否取了重复值。这相当于增加了一个这相当于增加了一个UNIQUE约束约束第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 29n聚簇索引聚簇索引F建立聚簇索引后,基表中数据也需要按指定的聚簇建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致顺序与表中记录的物理顺序一致例:例:CREATE CLUSTER

23、INDEX Ssname ON S(SN);在在S表的表的SN(姓名)列上建立一个聚簇索引,而(姓名)列上建立一个聚簇索引,而且且S表中的记录将按照表中的记录将按照SN值的升序存放值的升序存放 第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 30F在一个基本表上最多只能建立一个聚簇索引在一个基本表上最多只能建立一个聚簇索引F聚簇索引的用途:对于某些类型的查询,可以提高聚簇索引的用途:对于某些类型的查询,可以提高查询效率查询效率F聚簇索引的适用范围聚簇索引的适用范围 很少对基表进行增删操作很少对基表进行增删操作 很少对其中的变长列进行修改操作很少对其中的变长列进行修

24、改操作 第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 31n索引删除的基本格式索引删除的基本格式 DROP INDEX 索引名索引名F删除索引时,系统会从数据字典中删去有关该索引删除索引时,系统会从数据字典中删去有关该索引的描述。的描述。第三章关系数据库语言SQL3.2 SQL的数据定义Spring, 2009. 32nSQL的数据查询(检索)的数据查询(检索) SELECTnSQL的数据更新(增、删、改)的数据更新(增、删、改) INSERT,DELETE,UPDATE第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 33n一般格式

25、一般格式SELECT 目标列目标列FROM 基本表(或视图)基本表(或视图) WHERE 条件表达式条件表达式 GROUP BY 列名列名1 HAVING 内部函数表达式内部函数表达式 ORDER BY 列名列名2 ASCDESC相当于投影相当于投影相当于选择或连接相当于选择或连接被查询的关系被查询的关系对查询结果排序对查询结果排序分组分组统计统计第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 34n常用格式常用格式(SELECT- FROM- WHERE句型句型) SELECT A1,A2, ,AnFROM R1,R2, ,RmWHERE F其中,条件表达式其中

26、,条件表达式F可使用下列操作符:可使用下列操作符:F算术比较运算符(算术比较运算符( , =, , =, ,)F逻辑运算符(逻辑运算符(AND,OR,NOT)F集合运算符集合运算符 (UNION,INTERSECT,EXCEPT)F集合成员资格运算符集合成员资格运算符 (IN,NOT IN)F谓词谓词 (EXISTS,ALL,SOME,UNIQUE)F聚合函数聚合函数 (AVG,MIN,MAX,SUM,COUNT)F嵌套的嵌套的SELECT语句语句第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 35学生学生-课程数据库课程数据库n学生表:学生表:Student(S

27、no,Sname,Ssex,Sage,Sdept)n课程表:课程表:Course(Cno,Cname,Cpno,Ccredit)n 学生选课表:学生选课表:SC(Sno,Cno,Grade)第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 36n查询仅涉及一个表,是一种最简单的查查询仅涉及一个表,是一种最简单的查询操作询操作F选择表中的若干列选择表中的若干列F选择表中的若干元组选择表中的若干元组F对查询结果排序对查询结果排序F使用集函数使用集函数F对查询结果分组对查询结果分组 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 37例例1

28、查询全体学生的学号与姓名。查询全体学生的学号与姓名。SELECT Sno,SnameFROM Student; 例例2 查询全体学生的姓名、学号、所在查询全体学生的姓名、学号、所在系。系。SELECT Sname,Sno,SdeptFROM Student;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 38例例3 查询全体学生的详细记录。查询全体学生的详细记录。SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 或或SELECT *FROM Student;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring,

29、 2009. 39例例4 查全体学生的姓名及其出生年份。查全体学生的姓名及其出生年份。SELECT Sname,2009-SageFROM Student; 输出结果:输出结果: Sname 2009-Sage - - 李勇李勇 1976 刘晨刘晨 1977 王名王名 1978 张立张立 1978 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 40例例5 查询全体学生的姓名、出生年查询全体学生的姓名、出生年份和所有系,要求用小写字母表示份和所有系,要求用小写字母表示所有系名。所有系名。SELECT Sname,Year of Birth: ,2009-Sage,

30、 ISLOWER(Sdept)FROM Student; 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 41输出结果:输出结果: Sname Year of Birth: 2009-Sage ISLOWER(Sdept) - - - - 李勇李勇 Year of Birth: 1976 cs 刘晨刘晨 Year of Birth: 1977 is 王名王名 Year of Birth: 1978 ma 张立张立 Year of Birth: 1977 is第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 42SELECT Sname

31、NAME,Year of Birth: BIRTH, 2009-Sage BIRTHDAY,ISLOWER(Sdept) DEPARTMENTFROM Student;输出结果:输出结果: NAME BIRTH BIRTHDAY DEPARTMENT - - - - 李勇李勇 Year of Birth: 1976 cs 刘晨刘晨 Year of Birth: 1977 is 王名王名 Year of Birth: 1978 ma 张立张立 Year of Birth: 1977 is第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 43n消除取值重复的行消除取值重

32、复的行n查询满足条件的元组查询满足条件的元组 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 44n在在SELECT子句中使用子句中使用DISTINCT短语短语假设假设SC表中有下列数据表中有下列数据 Sno Cno Grade - - - 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 45例例6 查询选修了课程的学生学号。查询选修了课程的学生学号。(1) SELECT Sno FROM SC;或或(默认默认 ALL) SEL

33、ECT ALL Sno FROM SC; 结果:结果: Sno - 95001 95001 95001 95002 95002 (2) SELECT DISTINCT Sno FROM SC; 结果:结果: Sno - 95001 95002 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 46n注意注意 DISTINCT短语的作用范围是所有目标列短语的作用范围是所有目标列例:查询选修课程的各种成绩例:查询选修课程的各种成绩F错误写法错误写法SELECT DISTINCT Cno,DISTINCT GradeFROM SC;F正确写法正确写法 SELECT DIS

34、TINCT Cno,Grade FROM SC; 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 47F比较大小比较大小F确定范围确定范围F确定集合确定集合F字符串匹配字符串匹配F涉及空值的查询涉及空值的查询F多重条件查询多重条件查询第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 48在在WHERE子句的子句的中使用比较运算符中使用比较运算符F =,=,=,!= 或或 ,!,!, F 逻辑运算符逻辑运算符NOT + 比较运算符比较运算符例例8 查询所有年龄在查询所有年龄在20岁以下的学生姓名及其年龄。岁以下的学生姓名及其年龄。SELE

35、CT Sname,Sage FROM Student WHERE Sage = 20; 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 49使用谓词使用谓词 BETWEEN AND NOT BETWEEN AND 例例10 查询年龄在查询年龄在2023岁(包括岁(包括20岁和岁和23岁)之间的学岁)之间的学生的姓名、系别和年龄生的姓名、系别和年龄。 SELECT Sname,Sdept,SageFROM StudentWHERE Sage BETWEEN 20 AND 23;相当于若干相当于若干 AND 的缩写的缩写第三章关系数据库语言SQL3.3 SQL的数据操

36、纵Spring, 2009. 50例例11 查询年龄不在查询年龄不在2023岁之间的学生姓名、岁之间的学生姓名、系别和年龄。系别和年龄。SELECT Sname,Sdept,SageFROM StudentWHERE Sage NOT BETWEEN 20 AND 23; 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 51使用谓词使用谓词 IN , NOT IN :用逗号分隔的一组取值例例12查询信息系(查询信息系(IS)、数学系()、数学系(MA)和计)和计 算机科学系(算机科学系(CS)学生的姓名和性别。)学生的姓名和性别。SELECT Sname,Ssex

37、FROM StudentWHERE Sdept IN ( IS,MA,CS );相当与若干相当与若干 OR 的缩写的缩写第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 52nNOT LIKE ESCAPE FDB2中,下划线中,下划线 _ 表示匹配任何单个字符表示匹配任何单个字符 百分号百分号 % 表示匹配任何字符串表示匹配任何字符串F当用户要查询的字符串本身含有当用户要查询的字符串本身含有 % 或或 _ 时,要使用时,要使用ESCAPE 短语对通配符进行转义短语对通配符进行转义第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 53匹配

38、模板为固定字符串匹配模板为固定字符串 例例14 查询学号为查询学号为95001的学生的详细情况。的学生的详细情况。 SELECT * FROM Student WHERE Sno LIKE 95001;等价于:等价于: SELECT * FROM Student WHERE Sno = 95001;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 54匹配模板为含通配符的字符串匹配模板为含通配符的字符串例例15 查询所有(不)姓刘学生的姓名、查询所有(不)姓刘学生的姓名、学号和性别。学号和性别。 SELECT Sname,Sno,Ssex FROM Student

39、WHERE Sname (NOT)LIKE 刘刘%;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 55匹配模板为含通配符的字符串(续)匹配模板为含通配符的字符串(续)例例16 查询姓查询姓欧阳欧阳且全名为三个汉字的且全名为三个汉字的学生的姓名。学生的姓名。 SELECT Sname FROM Student WHERE Sname LIKE 欧阳欧阳_;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 56匹配模板为含通配符的字符串(续)匹配模板为含通配符的字符串(续)例例17 查询名字中第查询名字中第2个字为个字为阳阳字的学字的学生

40、的姓名和学号。生的姓名和学号。 SELECT Sname,Sno FROM Student WHERE Sname LIKE _阳阳%;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 57使用换码字符将通配符转义为普通字符使用换码字符将通配符转义为普通字符 例例19 查询查询DB_Design课程的课程号和学分。课程的课程号和学分。 SELECT Cno,Ccredit FROM Course WHERE Cname LIKE DB_Design ESCAPE 第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 58n使用谓词使用谓词 I

41、S NULL 或或 IS NOT NULLn “IS NULL” 不能用不能用 “= NULL” 代替代替例例21 某些学生选修课程后没有参加考试,所以有选课某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。和相应的课程号。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 59例例22 查所有有成绩的学生学号和课程号。查所有有成绩的学生学号和课程号。 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL;第三章关系数据库语言SQL3.3 SQL的数据操纵Spring, 2009. 60用逻辑运算符用逻辑运算符AND和和 OR来联结多个查询条件来联结多个查询条件F AND的优先级高于的优先级高于ORF 可以用括号改变优先级可以用括号改变优先级可用来实现多种其他谓词可用来实现多种其他谓词F NOT INF NOT BET

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论