数据库原理与应用(SQL Server)练习题 - 11 -
实验4 数据更新
1.表中插入数据
操作4.1:向dept表插入一条记录,系号11,系名自动控制系,系主任为李其余,电话81234567
INSERT INTO dept VALUES('11', '自动控制系', '李其余', '81234567')
操作4.2:向student表插入一条记录,学号070201001,姓名为王小五,性别为男,出生日期为1990年9月9日,系号为11,其余字段为NULL或默认值
INSERT INTO student(st_id, st_nm, st_sex, st_birth, st_dpid)
VALUES ('070201001', '王小五', '男', '1990.9.9', '11' ) 操作4.3:向couse表插入一条记录,课程号1234,课程名为操作系统,其余字段为NULL或默认值
INSERT INTO couse(cs_id, cs_nm) VALUES ('1234', '操作系统')
操作4.4:向slt_couse表插入一条记录,课程号1234,学名070201001,其余字段为NULL或默认值
INSERT INTO slt_couse(cs_id, st_id) VALUES ('1234', '070201001') 2.修改表中数据
操作4.5:修改student表记录,将王小五的入学成绩改为88
数据库原理与应用(SQL Server)练习题 - 12 -
UPDATE student SET st_score=88 WHERE st_nm='王小五' 操作4.6:修改couse表记录,将所有记录的学分改为4,学时改为64
UPDATE couse SET cs_tm=64, cs_sc=4
操作4.7:修改slt_couse表记录,将课程号为1234,学名为070201001的记录的成绩改为77
UPDATE slt_couse SET score=77 WHERE cs_id='1234' AND st_id='070201001' 3.删除表中数据
操作4.8:删除slt_couse表记录,将课程号为1234,学名为070201001的记录删除
DELETE
FROM
slt_couse
WHERE
cs_id='1234'
AND
st_id='070201001'
操作4.9:删除couse表记录,将课程号为1234的记录删除 DELETE FROM couse WHERE cs_id='1234'
实验5 数据查询(1)——简单查询
(1)查询表中所有的列 操作5.1:查询所有系的信息 SELECT * FROM dept (2)查询表中指定列的信息
操作5.2:查询所有的课程号与课程名称
数据库原理与应用(SQL Server)练习题 - 13 -
SELECT cs_id, cs_nm FROM couse (3)在查询列表中使用列表达式
操作5.3:在查询student表时使用列表达式:入学成绩+400 SELECT st_id, st_nm, st_score, st_score+400 AS new_score FROM student (4)重新命名查询结果
操作5.4:使用AS关键字为dept表中属性指定列名:系号、系名、系主任、联系电话
SELECT dp_id AS 系号, dp_nm AS 系名, dp_drt AS 系主任, dp_tel AS联系电话 FROM dept
操作5.5:使用\号为couse表中属性指定列名:课程号、课程名、学时(=cs_sc*16)、学分
SELECT 课程号=cs_id, 课程名=cs_nm, 学分=cs_sc, 学时=cs_sc*16 FROM couse (5)增加说明列
操作5.6:查询dept表的系号、系名和系主任,向查询结果中插入说明列:系号、系名和系主任
SELECT '系号:', st_id, '系名:', st_nm, '系主任:', st_drt FROM dept
(6)查询列表中使用系统函数
操作5.7:显示所有学生的学号、姓名、性别和入学年份
数据库原理与应用(SQL Server)练习题 - 14 -
SELECT st_id, st_nm, st_sex, DATEPART(yy,st_birth) AS 入学年份 FROM student
操作5.8:显示所有学生学号、姓名、性别和班级(学号前6位) SELECT st_id, st_nm, st_sex, LEFT(st_id, 6) AS 班级 FROM student
(7)消除查询结果中的重复项 操作5.9:显示所有学生班级
SELECT DISTINCT LEFT(st_id,6) AS 班级 FROM student (8)取得查询结果的部分行集 操作5.10:显示前5条学生记录信息 SELECT TOP 5 * FROM student 操作5.11:显示前25%条学生记录信息 SELECT TOP 25 PERCENT * FROM student
操作5.12:显示前n条学生记录信息,n为局部变量 DECLARE @n INT SET @n = 4
SELECT TOP @n * FROM student
实验6 数据查询(2)——条件查询
1.使用关系表达式表示查询条件
操作6.1:查询dept表中系号为11的院系信息
数据库原理与应用(SQL Server)练习题 - 15 -
SELECT * FROM dept WHERE dp_id = '11'
操作6.2:查询student表中11系的学生学号、姓名、性别和所在系编号
SELECT st_id, st_nm, st_sex, st_dpid FROM student WHERE st_dpid = '11'
操作6.3:查询student表中2008年及以后入学的学生信息 SELECT * FROM student
WHERE DATEPART( yy, st_date )>= 2008
操作6.4:在查询student表080808班学生的学号、姓名、性别和入学成绩
SELECT st_id, st_nm, st_sex, st_score FROM student WHERE Left(st_id,6)='080808' 2.使用逻辑表达式表示查询条件
操作6.5:查询student表中非11系的学生信息 SELECT * FROM student WHERE NOT (st_dpid = '11') 操作6.6:查询选修了1002号课程且成绩在60以下的学生学号 SELECT st_id FROM slt_couse
WHERE (cs_id='1002') AND (score<60) 操作6.7:查询2007年入学的11系所有男生信息 SELECT * FROM student
WHERE DATEPART(yy,st_date)=2007 AND st_dpid='11' AND st_sex='男'