- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
0数据库理论3_n
相关子查询和不相关子查询 相关子查询: 子查询的条件依赖于外层父查询的某个属性值,这类查询称为相关子查询(Correlated Subquery),处理过程见书P.130,例如: SELECT Sname FROM Student WHERE EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=‘1’); 不相关子查询:子查询的条件不依赖于外层父查询,最简单。 SELECT Sno,Sname,Sdept FROM Student S1 WHERE S1.Sdept IN (SELECT Sdept FROM Student S2 WHERE S2.Sname=‘刘晨’) 实例解析(8) 8.检索所学课程包含学生S3所学课程的学号。 改成双重否定: 在表SC中找学生, 不存在S3学的每一门课(C#), 这个学生没有学过. 算 法 for 关系SC的每个元组x do { s1:=false; for 关系SC的每个元组y, 且NOT s1 do { if Y.S#=‘S3’ then { s2:=false; for 关系SC的每个元组z , 且NOT s2 do if Z.S#=X.S#, 且 Z.C#=Y.C# then s2:=true; if NOT s2 then s1:=true; }; if NOT s1 then print (S.S#); } }; * 北京邮电大学信息与通信工程学院 * SELECT语句完整的句法 PDF P.133 SELECT 目标表的列名或列表达式序列 FROM 基本表和视图序列 [WHERE 行条件表达式] [GROUP BY 列名序列 [HAVING 组条件表达式]] [ORDER BY 列名[ASC|DESC]...] 句法中[]表示该成分可以有,也可无. * 北京邮电大学信息与通信工程学院 * WHERE子句的条件表达式 算术比较运算符: ,=,,=,=,(!=),between…and 逻辑运算符: AND ,OR, NOT 集合运算符: IN,NOT IN 谓词: EXISTS,NOT EXISTS,ANY,ALL 聚集函数: AVG,SUM,MIN,MAX,COUNT * 北京邮电大学信息与通信工程学院 * 3.3 SQL数据定义功能 SQL语言的数据定义功能即指SQL DDL语句。 它包括对数据库用户、基本表、视图、索引、聚集、同义名等数据库对象的定义和撤销。 * 北京邮电大学信息与通信工程学院 * 3.3.1 基本表的定义和修改 1. 定义基本表 定义基本表的语句格式: CREATE TABLE 表名(列定义[{,列定义,表约束}]) * 北京邮电大学信息与通信工程学院 * 3.3.1 基本表的定义和修改 完整性约束类型: NULL/NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK * 北京邮电大学信息与通信工程学院 * 3.3.1 基本表的定义和修改 例如:建立一个学生基本表 CREATE TABLE aa01 (SNO char(5) not null unique, SNAME char(10), AGE int, SEX char(2)); * 北京邮电大学信息与通信工程学院 * 3.3.1 基本表的定义和修改 例: CREATE TABLE bb01 (Sno char(5) not null unique, Cno char(5), GRADE int); * 北京邮电大学信息与通信工程学院 * 3.3.1 基本表的定义和修改 例: CREATE TABLE bb02 (CNO char(5) not null unique, CNAME char(20), TEACHER char(10)); * 北京邮电大学信息与通信工程学院 * 3.3.1 基本表的定义和修改 2. 修改基本表 (1) ADD方式 使用 ADD方式可以向表中增加列定义和表约束 语法格式: ALTER TABLE 表名 ADD 列定义|约束条件[{, (列定义|约束条件}] 例:在TT表中增加一个班号列 ALTER TABLE TT ADD CLASSNO CHAR(6) * 北京邮电大学信息与通信工程学院 * 3.3.1 基本表的定义和修改 例:在TT表中增加一个完整性约束定义,使AGE的取值只能在“15”到“25”之间 ALTER TA
文档评论(0)