当前位置:首页 > 数据库题目
P30:准确型数值;近似型数值;字符串类型;日期时间 P32:定义基本表(CREAT TABLE) P32:非空;默认值;不能重复;取值范围;主码;外码英文 P33:定义主码约束;定义外码约束; P34:创建表
P34:删除表(DROP TABLE) P34:删除test表
P35:修改表(ALTER TABLE) P35:为student表添加“专业”列,此列的定义为:…; 将新添加的“专业”列的类型改为char(20);
删除新添加的“专业”列;
P36:主码约束(PRIMARY KEY) P37:对雇员表和工作表分别添加主码约束; P37:UNIQUE约束(不能有重复) 为雇员表的“电话号码”列添加UNIQUE约束; 外码约束(FOREIGN KEY) 为雇员表的工作编号添加外码引用约束; DEFAULT约束(默认值) P38:定义雇员表的工资的默认值为1000;
CHECK约束(取值范围) 在雇员表中,添加限制雇员的工资必须大于等于1000的约
束; 添加限制工作表的最低工资小于等于最高工资的约束;
第四章数据操作语句 4.1数据查询功能
4.1.1 查询语句的基本结构??????????????P41 4.1.2单表查询????????????????????P41 P41:1、选择表中若干列
(1)、查询指定的列 ? 查询全体学生的学号与姓名; ?
查询全体学生的姓名、学号和所在系;
(目标列的选择顺序与表中定义的字段顺序没有必然的对应关系,它们的顺序可以不一致)
(2)查询全部列 ?
查询全体学生的详细信息; P42:
(3)查询经过计算的列
? 查询全体学生的姓名及出生年份;
?
查询全体学生的姓名和出生年份,并在“出生年份”列前加一个新列,新列的每行数据均为“出生年份”常量指;
指定列别名 [AS] 2、选择表中的若干元组
(1)、消除取值相同的行 ?
在选课表中查询有哪些学生选修了课程,列出选课学生的学号;(用 DISTINCT P43)
P43:DISTINCT去掉查询结果重复行
P43: (2)查询满足条件的元组 WHERE;常用的查询条件
①、比较大小
? 查询计算机系全体学生的姓名;
? 查询所有年龄在20岁以下的学生的姓名和年龄; ?
查询考试成绩有不及格的学生的学号; ②、确定范围
P44:BETWEEN AND;NOT BETWEEN AND ? 查询年龄在20-23之间的学生的姓名、所在系和年龄;
?
查询年龄不在20-23之间的学生姓名、所在系和年龄; ③、确定集合
IN;NOT IN ? 查询信息系、数学系和计算机系学生的姓名和性别;
?
查询既不是信息系、数学系,也不是计算机系学生的姓名和性别; P45: ④、字符串匹配
LIKE 查找指定列中与匹配串匹配的元组;4种通配符 ? 查询姓“张”的学生的详细信息;
?
查询学生表中姓“张”“李”“刘”的学生的详细信息; ? 查询名字中第二个字为“小”或“大”的学生的姓名与学号;
?
查询所有不姓“王”也不姓“张”的学生姓名; P46:
查询姓“王”且名字是2个子的学生姓名; ? 查询姓王且名字是三个字的学生姓名; RTTIM 去掉指定列中尾随的空格
⑤、涉及空值的查询
NULL;IS NOT NULL ? 查询没有考试成绩的学生的学号和相应的课程号;
?
查询所有有考试成绩的学生的学号和课程号; P47: ⑥、多重条件查询
AND; OR ? 查询计算机系年龄在20岁以下的学生姓名; ?
查询计算机系和信息系年龄大于等于20岁的学生姓名、所在系和年龄;
(需要用括号来改变运算顺序) 3、对查询结果进行排序
ORDER BY; ASC(升序);DESC(降序); ? 将学生按年龄的升序排序;
? 查询选修了“c02”号课程的学生的学号及其成绩,查询结果按成绩降序排列;
?
查询全体学生的信息,查询结果按所在系名升序排列,同一系的学生按年龄降序排列;
P48:4、使用聚合函数汇总数据
COUNT;SUM;AVG;MAX;MIN
1
(除COUNT外,其他函数在计算过程中忽略NULL值)
? 统计学生总人数;
? 统计选修了课程的学生人数(distinct); ? 计算“9512101”学生的选课门数和考试总成绩; ? 计算“C01”课程的考试平均成绩; ? 查询“c01”课程的考试最高分和最低分; ? 查询“9512101”学生的选课门数、已考试课程门数以及考试最高分、最低分和平均分;
P49:COUNT在计算时不考虑空值;聚合函数不能出现在WHERE子句中; 5、对查询结果进行分组统计
(1)使用GROUP BY子句 ? 统计每门课程的选课人数,列出课程号和选课人数;
?
统计每个学生的选课门数和平均成绩; P50: 统计每个系的学生人数和平均年龄;
(2)使用WHERE子句
? 带WHERE子句的分组。统计每个系的女生人数; ?
按多列分组。统计每个系的男生人数和女生人数,以及男生的最大年龄和女生的最大年龄,结果按系名的升序排序; (3)使用HAVING子句
(HAVING功能像WHERE,但它子句中可以使用统计函数,WHERE则不能,HAVING通常与GROUP BY子句一起使用) ? 查询选修了3门以上课程的学生的学号和选课门数;
?
查询选课门数大于等于4门的学生的平均成绩和选课门数;
(WHERE;GROUP BY;HAVING 子句的作用及执行顺序) 4.1.3 多表连接查询?????????????????P51 P51:1、内连接
FROM JOIN P52:
查询每个学生及其选课的详细信息; ? 去掉例40中的重复列;
?
查询计算机系学生的修课情况,要求列出学生的名字、所选的课程号和成绩;
FORM [AS] 为表提供别名 P53:
查询“信息系”选修了“计算机文化学”课程的学生的成绩,要求列出学生的姓名、课程名和成绩; ? 查询所有选修了VB课程的学生情况,列出学生姓名和所在系;
? 有分组的多表连接查询。统计每个系的学生的考试平均成绩;
?
有分组和行选择条件的夺标连接查询。统计计算机系每门课程的选课人数、平均成绩、最高成绩和最低成绩;
2、自连接(考试不要求)
P54:3、外连接(不考)
4.1.4 使用TOP限制结果集?????????????P55 TOP:只希望列出结果集中的前几行结果; WITH TIES P56:查询年龄最大的三个学生的姓名、年龄及所在系;
?
查询VB课程考试成绩前三名的学生的姓名、所在系和成绩;
4.1.5 子查询????????????????????P56 P56:1、使用子查询进行基于集合的测试
WHERE [NOT ] IN P57:查询与“刘晨”在同一系学习的学生;
?
查询考试成绩大于90分的学生的学号和姓名;
P58:统计选修了“VB”课程的这些学生的选课门数和平均成绩; 2、使用子查询进行比较测试
?
查询选了“C04”号课程且成绩高于此课程的平均成绩的学生的学号和成绩;
P59: 查询计算机系年龄最大的学生的姓名和年龄;
不相关子查询;嵌套子查询;
?
查询VB考试成绩高于VB平均成绩的学生的姓名、所在系和VB成绩;
3、使用子查询进行存在性测试(不考)EXISTS 4.2 数据更该功能
4.2.1 插入数据???????????????????P62 INSERT P62: 将新生记录(XXX,XXX,XX,XX,)插入到student表中; P63:在SC表中插入一条新纪录,学号为“”,选得课程号为“”,
成绩暂缺;
4.2.2更新数据????????????????????P63 UPDATE P63:将所有的学生的年龄加1;
? 将“”学生的年龄改为21岁。 ?
将计算机系全体学生的成绩加5分;
4.2.3. 删除数据???????????????????P64
DELETE P64:删除所有学生的选课记录;
? 删除所有不及格学生的选课记录; ?
删除计算机系不及格学生的选课记录; 第五章视图 5.1视图概念????????????????P66
5.2定义视图????????????????P66
CREAT VIEW P68:1、定义单源表视图
? 建立信息系学生的视图;
2、定义多源表视图
?
建立查询信息系选了“c01”号课程的学生的视图,列出学号、姓名和年龄;
3、在已有视图上定义新视图
P68:
利用例2所建立的视图,建立信息系选了“c01”号
2
课程且成绩在90分以上的学生的学号、姓名和成绩的视图; ?
利用例1所建的视图,简历查询信息系VB考试成绩大于等于80分的学生的姓名和成绩的视图;
P69:4、定义带表达式的视图
?
定义一个查询学生学号、姓名和出生年份的视图;
5、含分组统计信息的视图
?
定义一个查询每个学生的学号及考试平均成绩的视图;
5.3通过视图查询数据
P69:利用已经建立的视图,查询信息系年龄小于等于20岁的学
生的学号、姓名和年龄; ?
查询信息系选了“c01”号课程的学生的学号、姓名和年龄;
P70: 查询信息系学生的学号、姓名、所选课程的课程名;
?
利用已经建立的视图,查询考试平均成绩80分以上的学生的学号和平均成绩;
5.4修改和删除视图
ALTER VIEW;DROP VIEW P71:修改例6定义的视图,使其统计每个学生的考试平均成绩
和修课总门数; ?
删除例1定义的视图;
5.5.视图的作用???????????????P71
3
共分享92篇相关文档