第三章关系数据库标准语言sql讲述.ppt

  1. 1、本文档共179页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学生-选课数据库 学生-课程模式 S-T : 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) sql server为例 数据库(DB)在磁盘上是以文件为单位存储的,由数据文件(mdf)和日志文件(ldf)组成。 数据文件中实际存放DB所有数据和对象,日志文件用来存放(记录)用户对DB所进行的所有操作,它是维护DB完整性的重要工具。 创建一个DB,就是定义了一个存储空间。 注意:不同的数据库产品在遵循SQL标准的基础上具体实现细节和处理策略上会与标准有差别。 教材 P89 处理策略比较 1.索引的特点 是一个指向表中数据的指针,与书籍的目录类似,由DBA或表的拥有者负责创建或撤销,提高数据检索的性能,占用物理空间。 2. 创建索引的原则 (1) 是否创建索引取决于表的数据量大小和对查询的要求 (2) 一个基本表,不要建过多索引 索引前后的考试基本表 避免使用索引的情形 : ⑴ 包含太多重复值的列 ⑵ 查询中很少被引用的列; ⑶ 值特别长的列; ⑷ 查询返回率很高的列 ⑸ 具有很多NULL值的列; ⑹ 需要经常插、删、改的列; ⑺ 记录较少的基本表; ⑻ 需进行频繁、大批量数据更新的基本表。 补充 identity(标识种子,标识递增量) 要创建一个表user_info,设置的主键名称是user_id,那么可以如下设置: create table user_info (user_id int primary key identity(1,1),//主键初值为1,每次自增1,数值可变化,但要符合之前定义的类型 user_name varchar(20) not null, .... ) 1. 并操作 形式 查询块 UNION 查询块 [例 ] 查询计算机科学系的学生及年龄不大于19岁的学生。 方法一: SELECT * FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19; 方法二: SELECT DISTINCT * FROM Student WHERE Sdept= CS OR Sage=19; 注:使用UNION将多个查询结果合并起来时,系统会自动去掉重复元组。 如果要保留重复元组则用UNION ALL操作符。 2. 交操作 形式 查询块 INTERSECT 查询块 [例] 查询计算机科学系的学生与年龄不大于19岁的学生的交集 SELECT * FROM Student WHERE Sdept= CS‘ INTERSECT SELECT * FROM Student WHERE Sage=19; 本例实际上就是查询计算机科学系中年龄不大于19岁的学生 SELECT * FROM Student WHERE Sdept= CS AND Sage=19; [例 ] 查询选修课程1的学生集合与选修课程2的学生集合的交集。 SELECT Sno FROM SC WHERE Cno= 1 INTERSECT SELECT Sno FROM SC WHERE Cno= 2 本例实际上是查询既选修了课程1又选修了课程2的学生 SELECT Sno FROM SC WHERE Cno= 1 AND Sno IN (SELECT Sno FROM SC WHERE Cno= 2 ); 3. 差操作 形

文档评论(0)

6952225 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档