数据库实验指导书2011(4)

2020-04-18 04:04

from sc

例5:使用LIKE运算符

SELECT * FROM 学生 WHERE 姓名 LIKE '%李%' 例6:使用BETWEEN运算符

SELECT * FROM 学生 WHERE 入学成绩 BETWEEN 550 AND 580 例7:对查询结果分组

在“学生”表中按性别统计所有学生的最高成绩。 USE 学生管理 SELECT CASE 性别

WHEN 0 THEN '女' ELSE '男' END AS 性别,

MAX(入学成绩) AS 最高成绩 FROM 学生

GROUP BY 性别

注意:在使用GROUP BY子句时,SELECT子句中每一个非聚合表达式内的所有列都应包含在GROUP BY列表中。否则将会返回错误信息。 实验习题:

对于“Student”数据库的三个基本表:

S(Sno,Sname,Sage,Ssex,Sdept),C(Cno,Cname,Teacher),SC(Sno,Cno,Grade)

1. 使用SQL Server Management Studio 中为 “学生”数据库的学生表(student)、

课程表(course)、选课表(sc)添加记录。 2. 完成如下查询语句:

(1) 查询LIU老师所授课程的课程号和课程名。 (2) 查询年龄大于23岁的男生的学号和姓名。

(3) 查询学号为S3学生所学课程的课程名与任课教师名。

(4) 查询至少选修LIU老师所授课程中一门课程的女学生姓名。 (5) 查询Wang同学不学的课程的课程号。 (6) 查询至少选修两门课程的学生学号。

(7) 查询全部学生都选修的课程的课程号与课程名。 (8) 查询选修课程包含LIU老师所授课程的学生学号。 (9) 统计有学生选修的课程门数。

(10)求选修C4课程的女学生的平均年龄。

(11)求LIU老师所授课程的每门课程的平均成绩。 (12)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,

查询结果按人数降序排列,若人数相同,按课程号升序排列。 (13)检索学号比Wang同学打,而年龄比他小的学生姓名。 (14)在表SC中查询成绩为空值的学生学号和课程号。 (15)查询姓名以L打头的所有学生的姓名和年龄。 (16)求年龄大于女同学平均年龄的男学生姓名和年龄。 (17)求年龄大于所有女同学年龄的男学生姓名和年龄。 实验报告要求: ? 实验目的

? 实验习题的源程序清单

15

? 写出在实验过程中遇到的问题及解决方法 ? 要求字迹端正、条理清晰、概念正确

16

实 验 四

实验名称:数据更新 实验学时:2 实验目的:

1) 掌握在SQL Server Management Studio 中对表进行插入、修改和删除数据的操作。 2) 掌握使用T-SQL语句对表进行插入、修改和删除数据的操作。 3) 重点掌握带查询的更新方法。 实验内容及步骤:

(一) 在SQL Server Management Studio 中对数据库中的表进行插入、修改和删除

数据

例1:在SQL Server Management Studio 中向数据库gzgl中的表输入数据 在SQL Server Management Studio 中向jbxx表插入记录,选择并用鼠标右击表jbxx →选择“打开表”→逐字段输入各记录值,输入完后保存,关闭窗口。

例2:在SQL Server Management Studio 中将表jbxx中employee_id为020805的记录的部门号改为003

在SQL Server Management Studio 中选择表并用鼠标右击表jbxx →选择“打开表”→将光标定位至employee_id为020805的记录的department_id字段,改为003后保存,关闭窗口。

例3:在SQL Server Management Studio 中删除数据库gzgl表数据 在SQL Server Management Studio 中删除表jbxx的第3、6行操作步骤:在SQL Server Management Studio 中选择表并用鼠标右击表jbxx →选择“打开表”→选择要删除行前面的小方块 →单击鼠标右键 →删除 →保存,关闭窗口。

(二) 使用T-SQL语句对表进行插入、修改和删除数据的操作 a. 使用INSERT语句插入数据 语法:INSERT [ INTO]

{ table_name | view_name }

{[( column_list )] { VALUES

( { DEFAULT | NULL | expression } [ ,...n] ) | derived_table }

例1:向数据库gzgl中的表输入数据 use gzgl go

insert into jbxx

values(‘0111112’,’李子林’,’1973_5_3’,’1’,’310107196206088243’,’交通路5号’,’sql@126.com’) go

单击快捷工具栏的执行图标或按F5,执行上述语句。

b. 使用UPDATE语句更新数据

17

语法:UPDATE

{ table_name | view_name }

[ FROM { < table_source > } [ ,...n ] SET

column_name = { expression | DEFAULT | NULL }[ ,...n ] [ WHERE search_condition > ]

例2:将表jbxx中编号为020805的记录的部门号改为003 use gzgl go

update jbxx

set department_id=’003’ where employee_id=’020805’ go

例3:将表jbxx中的年龄增加1岁。 use gzgl go

update jbxx

set age=age+1 go

例4:将表jbxx中所有记录的党员属性改为“党员” use gzgl go

update jbxx

set polity=’ 党员’ &&如果没有where子句,则将修改表中的每一行数据

单击快捷工具栏的执行图标或按F5,执行上述语句。 c. 使用DELETE语句删除数据

语法:DELETE [ FROM ]

{ table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name } [ WHERE

< search_condition > ]

例4:删除jbxx表中编号为020805的记录。use gzgl

go

delete from jbxx

where employee_id=’020805’ 例5:删除数据库gzgl中jbxx表的所有数据

use gzgl go

delete from jbxx

18

或者使用TRUNCATE TABLE name

use gzgl go

truncate table jbxx 实验习题:

对于“Student”数据库的三个基本表:

S(Sno,Sname,Sage,Ssex,Sdept),C(Cno,Cname,Teacher),SC(Sno,Cno,Grade) 完成如下更新:

(1) 往C表中插入一个课程元祖(’c8’,’VC++’,’BAO’)

(2) 查询平均成绩大于80分的课程名称,并把查询到结果送到另一个已存在的表

tem_table(cname)。

(3) 在sc中删除尚无成绩的选课元组。

(4) 把选修LIU老师课程的女生选课元组全部删去。 (5) 把MATHS课不及格的成绩全改为60分。

(6) 把低于所有课程总平均成绩的女生成绩提高5%。

(7) 在表SC中修改C4课程的成绩,若成绩小于等于70分时提高5%,若成绩大于70

分时提高4%。

(8) 在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。 实验报告要求: ? 实验目的

? 实验习题的源程序清单

? 写出在实验过程中遇到的问题及解决方法 ? 要求字迹端正、条理清晰、概念正确

19


数据库实验指导书2011(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:有机化学第二版 - 夏百根 - 黄乾明 - 主编 - 课后答案1 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: