数据库系统原理第一章第5章 SQL.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库系统原理第一章第5章 SQL

SQL(Structured Query Language, 结构化查询语言)是关系数据库的标准语言。 1974年首次提出; 1975-1979年IBM公司在System R上首次实现; 1986年ANSI把SQL作为关系数据库的标准语言(SQL-86标准); 1987年把SQL-86定为国际标准; 1989年ANSI发布SQL-89标准; 1992年ANSI发布SQL-92标准; 1999年ANSI发布SQL-99标准; 一、定义数据库 1. 删除数据库语句: drop database 数据库名; go --go是批处理命令,表示先执行上面 --的语句,执行完后再执行下面的语句。 2.定义数据库: create database 数据库名; 3. 例:定义学生选课数据库 drop database 学生选课; go create database 学生选课; go 二、基本表的定义和维护功能 1. 定义基本表语句的一般格式为: CREATE TABLE [〈库名〉]〈表名〉 ( 〈列名1〉〈数据类型1〉[〈列级完整性约束条件〉] [,〈列名2〉〈数据类型3〉[〈列级完整性约束条件〉]] [,…n] [,〈表级完整性约束条件〉][,…n] ); (2) 列级完整性的约束条件:针对属性值设置的限制条件 NOT NULL或NULL约束。NOT NULL约束不允许字段值为空,而NULL约束允许字段值为空。 2) UNIQUE约束。UNIQUE约束是惟一性约束,即不允许列中出现重复的属性值。 3) DEFAULT约束。DEFAULT为默认值约束。 格式为:constraint〈约束名〉default 〈默认值〉 4) CHECK约束。CHECK为检查约束。 格式为:CONSTRAINT〈约束名〉CHECK (〈约束条件表达式〉) --以下检查check约束的效果 insert into 学生(学号,姓名,性别,年龄,所在系) values(‘98002’,‘li’,‘sd’,19,‘IS’);--违反check约束 2 定义课程表 CREATE TABLE 课程 ( 课程号 CHAR(5) PRIMARY KEY, 课程名 CHAR(20), 先行课 CHAR(5) ); 注意单属性主码的另一种定义方法 1)向选课表添加记录,并检查外码约束的效果 Insert into 选课(学号,课程号,成绩) Values(‘98001’,’C01’,90 --以上语句不能成功是因为违反外码约束: --当前课程表中还没有“C01”这门课 Insert into 课程(课程号,课程名) Values(‘C01’,’数据库’) go Insert into 选课(学号,课程号,成绩) Values(‘98001’,’C01’,90) --在课程表中增加“C01”课程后,此插入语句可成功执行 2. 建立索引的原则 1) 索引的建立和维护由DBA和DBMS完成。 2) 大表应当建索引,小表则不必建索引。 3) 对于一个基本表,不要建立过多的索引。 4) 根据查询要求建索引。 CREATE VIEW 学生成绩(学号,姓名,课程名,成绩) AS SELECT 学生.学号,学生.姓名,课程.课程名,选课.成绩 FORM 学生,课程,选课 WHERE 学生.学号=选课.学号 AND 课程.课程号=选课.课程号 AND 学生.所在系=计算机系; --以下定义的视图包含有计算列: 【例5-8】将学生的学号、总成绩、平均成绩定义成一个视图。 视图不仅可以从基本表中导出,也可以从已定义好的视图中导出 --以下是一个从学生成绩统计视图中导出的一个视图: 例: 定义一个平均成绩大于80分的学生视图。 5.3.2 SQL的查询实例及分析 学生选课数据库包括3个基本表,其结构为: 学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课); 选课(学号,课程号,成绩). 为操作方便我们采用以下结构的学生选课数据库为演示数据库: Student(sno, sname, ssex , sage, sdept); Course(cno, cname, cpre); SC(sno, cno, grade). 【例4】求全体学生的姓名及其出生年份。 select sname,2004-sage from student; 4)给列命别名 【例5】求全体学生的姓名及其出生年份,要求输出字段为姓名和出生年份。 select sname 姓

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档