数据库基础知识63377学习教案.pptx
《数据库基础知识63377学习教案.pptx》由会员分享,可在线阅读,更多相关《数据库基础知识63377学习教案.pptx(102页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1数据库基础知识数据库基础知识63377第一页,共102页。23.2 3.2 查询查询(chxn)(chxn)所用数据库所用数据库:1)1)学生学生-课程数据库课程数据库 Students(Sno,Sname,Ssex,Sage,Sdept)Students(Sno,Sname,Ssex,Sage,Sdept)Courses(Cno,Cname,Cpno,Ccredit)Courses(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)SC(Sno,Cno,Grade)第1页/共102页第二页,共102页。32)电影电影(dinyng)数据库数据库 Movi
2、es(title,year,length,genre,studioName,producerC#)StarsIn(movieTitle,movieYear,starName)MovieStars(name,address,gender,birthdate)MovieExecs(name,address,cert#,netWorth)Studios(name,address,presC#)第2页/共102页第三页,共102页。4单表查询单表查询 *选择若干列选择若干列-SQL 投影投影(tuyng)例例:查找学生的学号和姓名查找学生的学号和姓名 SELECT Sno,Sname FROM Stu
3、dents 例例:查找学生的姓名、学号和所在系查找学生的姓名、学号和所在系 SELECT Sname,Sno,Sdept FROM Students第3页/共102页第四页,共102页。5 例例:查找学生查找学生(xu sheng)的相关信息的相关信息 SELECT *FROM Students例例:查找学生查找学生(xu sheng)的姓名和出生年份的姓名和出生年份 SELECT Sname,2011-Sage FROM Students第4页/共102页第五页,共102页。6 去掉重复元组去掉重复元组 例例:查找查找(ch zho)选课学生的学号选课学生的学号 SELECT Sno 等价于
4、等价于 SELECT ALL Sno FROM SC FROM SC SELECT DISTINCT Sno FROM SC 第5页/共102页第六页,共102页。7*查询查询(chxn)满足条件的元组满足条件的元组-SQL 选择选择 WHERE子句子句 运算符运算符/关键字关键字 比较比较 =,=,=,!,!确定范围确定范围 NOT BETWEEN .AND.确定集合确定集合 NOT IN 空值空值 IS NOT NULL 逻辑逻辑 AND OR NOT第6页/共102页第七页,共102页。8例例:查找查找(ch zho)计算机系学生的名字计算机系学生的名字 SELECT Sname FRO
5、M Students WHERE Sdept=计算机计算机第7页/共102页第八页,共102页。9例例:查找查找(ch zho)年龄小于年龄小于19的学生的姓名和年的学生的姓名和年龄龄 SELECT Sname,Sage FROM Students WHERE Sage=19 第8页/共102页第九页,共102页。10例例:查找查找(ch zho)有过不及格成绩的学生的学号有过不及格成绩的学生的学号 SELECT DISTINCT Sno FROM SC WHERE Grade60第9页/共102页第十页,共102页。11P144 例例6.1:查找查找Disney 公司,在公司,在1990年制
6、作的所有年制作的所有(suyu)电影的有关信电影的有关信息息 SELECT*FROM Movies WHERE studioName=Disney AND year=1990第10页/共102页第十一页,共102页。12例:查找例:查找(ch zho)没有成绩的选课记录中的学号和课程号没有成绩的选课记录中的学号和课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NULL 例:查找已有成绩的选课记录例:查找已有成绩的选课记录(jl)中的学号和课程号中的学号和课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL第11
7、页/共102页第十二页,共102页。13例:查找计算机系年龄例:查找计算机系年龄(ninlng)小于小于19的学生的名字的学生的名字 SELECT Sname FROM Students WHERE Sdept=计算机计算机 AND Sage19例:查找计算机系或者年龄例:查找计算机系或者年龄(ninlng)小于小于19的学生的名的学生的名字字 SELECT Sname FROM Students WHERE Sdept=计算机计算机 OR Sage,=,=,连接操作选择满足条件连接操作选择满足条件(tiojin)的行的行 第18页/共102页第十九页,共102页。20例:查询例:查询(chx
8、n)选修选修2号课程且成绩在号课程且成绩在90分以上的学生的分以上的学生的 学号与姓名学号与姓名 SELECT Students.Sno,Sname FROM Students,SC WHERE Students.Sno=SC.Sno AND Cno=2 AND Grade90 第19页/共102页第二十页,共102页。21例例:查询每个学生选修的课程名及其成绩查询每个学生选修的课程名及其成绩,同时同时(tngsh)输出学号、姓名输出学号、姓名 SELECT Students.Sno,Sname,Cname,Grade FROM Students,SC,Courses WHERE Studen
9、ts.Sno=SC.Sno AND SC.Cno=Courses.Cno第20页/共102页第二十一页,共102页。22例例:查询查询(chxn)计算机系每个学生选修的课程名及其成绩计算机系每个学生选修的课程名及其成绩 SELECT Students.Sno,Sname,Cname,Grade FROM Students,SC,Courses WHERE Students.Sno=SC.Sno AND SC.Cno=Courses.Cno AND Sdept=计算机计算机第21页/共102页第二十二页,共102页。23子查询(嵌套查询)子查询(嵌套查询)-多表查询的方法二多表查询的方法二 子查
10、询是在子查询是在SELECT语句语句(yj)的的WHERE子句中嵌套子句中嵌套的的SELECT语句语句(yj)。外层。外层SELECT语句语句(yj)称为主称为主查询。查询。又分为又分为 独立子查询:独立子查询:子查询独立求值,其结果代入主查询。子查询独立求值,其结果代入主查询。相关相关(xinggun)子查询:子查询:子查询对主查询可能选出的每一行均执行一次,子查询对主查询可能选出的每一行均执行一次,不能独立求值。不能独立求值。第22页/共102页第二十三页,共102页。24子查询的几种形式:子查询的几种形式:1.NOT IN(1.NOT IN(子查询子查询)P160P160例例6.20 6
11、.20 查找查找(ch zho)Harrison Ford(ch zho)Harrison Ford 主演的所有电影的制片人主演的所有电影的制片人姓名姓名StarsIn(movieTitle,movieYear,starName)StarsIn(movieTitle,movieYear,starName)Movies(title,year,length,genre,studioName,producerC#Movies(title,year,length,genre,studioName,producerC#)MovieExecs(name,address,cert#,netWorth)Mov
12、ieExecs(name,address,cert#,netWorth)第23页/共102页第二十四页,共102页。251)SELECT name2)FROM MovieExecs3)WHERE cert#IN4)(SELECT producerC#5)FROM Movies6)WHERE(title,year)IN SQL Server 20007)(SELECT movieTitle,movieYear8)FROM StarsIn9)WHERE starName=Harrison Ford)10)第24页/共102页第二十五页,共102页。26分析:由内而外分析:由内而外 7)8)9)返回
13、返回(fnhu)图图6-8 4)5)6)返回返回(fnhu)这些影片的制片人的证书号这些影片的制片人的证书号 1)2)3)返回返回(fnhu)这些制片人的姓名这些制片人的姓名书写次序书写次序:由结果到条件由结果到条件第25页/共102页第二十六页,共102页。27不采用不采用(ciyng)子查询:子查询:SELECT DISTINCT name FROM MovieExecs,Movies,StarsIn WHERE cert#=producerC#AND title=movieTitle AND year=movieYear AND starName=Harrison Ford第26页/共1
14、02页第二十七页,共102页。28例:查询选修例:查询选修(xunxi)(xunxi)了了数据结构数据结构的学生的学号、姓名的学生的学号、姓名 SELECT Sno,Sname SELECT Sno,Sname FROM Students FROM Students WHERE Sno IN WHERE Sno IN (SELECT Sno (SELECT Sno FROM SC FROM SC 过程过程 不相关不相关 WHERE Cno IN WHERE Cno IN (SELECT Cno (SELECT Cno FROM FROM Courses Courses WHERE WHERE
15、Cname=Cname=数据结构数据结构)第27页/共102页第二十八页,共102页。292.比较运算符比较运算符 ANY|ALL(子查询子查询)返回返回(fnhu)单值时可使用单值时可使用,=,=,!,等运算符等运算符 P159例例6.19 查找查找(ch zho)“Star Wars”的制片人的制片人 SELECT name FROM MovieExecs WHERE cert#=(SELECT producerC#返回单值返回单值12345 FROM Movies WHERE title=Star Wars)第28页/共102页第二十九页,共102页。30例:查询例:查询(chxn)与刘
16、雪同系的学生学号、姓名及所在系与刘雪同系的学生学号、姓名及所在系 SELECT Sno,Sname,Sdept FROM Students WHERE Sdept=返回单值返回单值 对比对比IN (SELECT Sdept FROM Students WHERE Sname=刘雪刘雪)第29页/共102页第三十页,共102页。31例:查询选修了例:查询选修了数据结构数据结构的学生的学号、姓名的学生的学号、姓名(xngmng)SELECT Sno,Sname FROM Students WHERE Sno IN 集合集合 (SELECT Sno FROM SC WHERE Cno =单值单值 (
17、SELECT Cno FROM Courses WHERE Cname=数据结构数据结构)过程过程 不相关不相关第30页/共102页第三十一页,共102页。323.3 3.3 数据库更新数据库更新插入插入 INSERT INTO INSERT INTO 关系名关系名 (属性属性(shxng)1(shxng)1,属性,属性(shxng)2.)(shxng)2.)VALUES(VALUES(常量常量1 1,常量,常量2.)|SELECT2.)|SELECT语句语句 说明:插入完整的行,可以省略说明:插入完整的行,可以省略(shngl)属性名表属性名表 建议包含属性名表,关系模式变化时仍可正确插入建
18、议包含属性名表,关系模式变化时仍可正确插入 插入不完整行,必须包含属性名表插入不完整行,必须包含属性名表 没有列出的列填入没有列出的列填入NULL(可为空可为空)或缺省值或缺省值 第31页/共102页第三十二页,共102页。33 P173 例例6.35 INSERT INTO StarsIn(movieTitle,movieYear,starName)VALUES (The Maltese Falcon,1942,Sydney Greenstreet)INSERT INTO StarsIn 插入插入(ch r)完整的行标准顺序完整的行标准顺序 VALUES (The Maltese Falco
19、n,1942,Sydney Greenstreet)第32页/共102页第三十三页,共102页。34例例 6.36 插入所有插入所有(suyu)Movie中有中有,Studio中没有的制片公司中没有的制片公司 INSERT INTO Studios(name)SELECT DISTINCT studioName 子查询子查询 FROM Movies WHERE studioName NOT IN (SELECT name FROM Studios)属性属性 address,presC#取取 NULL 第33页/共102页第三十四页,共102页。35删除删除 DELETE FROM 关系名关系名
20、 WHERE 条件条件 无无WHERE子句子句(z j)删除所有行删除所有行 第34页/共102页第三十五页,共102页。36例例6.37:删除删除Sydney Greenstreet主演主演(zhyn)1942年的影片年的影片 The Maltese Falcon这一事实这一事实.DELETE FROM StarsIn WHERE movieTitle=The Maltese Falcon AND movieYear=1942 AND starName=Sydney Greenstreet 多对多多对多 (年年,片名片名)-影片影片 准确描述要删除的元组准确描述要删除的元组第35页/共102
21、页第三十六页,共102页。37例例6.38:删除所有删除所有(suyu)净收入不足净收入不足1000万美金的高级主管万美金的高级主管 DELETE FROM MovieExecs WHERE netWorth=100000)6位编号位编号(bin ho)第66页/共102页第六十七页,共102页。68CREATE TABLE MovieStars(name CHAR(30)PRIMARY KEY,address VARCHAR(255),gender CHAR(1)CHECK(gender IN(F,M),birthdate DATETIME)第67页/共102页第六十八页,共102页。69
22、触发器及其他触发器及其他 触发器(trigger)事件(shjin)条件 动作仅当触发器声明的事件发生时,触发器被激活仅当触发器声明的事件发生时,触发器被激活事件激活的时候测试触发条件事件激活的时候测试触发条件 条件不满足条件不满足(mnz)不做任何动作不做任何动作 条件满足条件满足(mnz)DBMS执行触发器中定义的执行触发器中定义的动作动作第68页/共102页第六十九页,共102页。70 触发器的相关触发器的相关(xinggun)选项选项1)触发器的条件检查和动作)触发器的条件检查和动作 可以在触发器事件可以在触发器事件(shjin)发生之前执行发生之前执行 BEFORE 也可以在触发器事
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 基础知识 63377 学习 教案
限制150内