数据库技术与应用实验
实验一数据库的基本操作
实验目的:
实验内容:
1.创建数据库
了解SQL Server的系统数据库包含的四个数据库;
熟练掌握使用SQL Server 管理控制台创建数据库;
sql数据库创建表步骤熟练掌握使用T-SQL语句创建数据库;
了解如何查看数据库属性;
熟练掌握使用SQL Server 管理控制台和T-SQL语句来修改数据库容量、更改数据库名称、删除数据库、分离数据库、附加数据库。
实验二表的基本操作
实验目的:
实验内容:
1.定义基本表和结构
按照下图分别使用SQL Server 管理控制台和T-SQL语句来创建四张表:系部表、专业表、班级表、学生表;
修改学生表,增加一个家庭住址列;
更改列的数据类型:把学生表中的姓名列加宽到10位字符宽度;
删除学生表中的专业代码的约束;
重命名表:将学生表的名字更改为STUDENT;(再改回来)
重命名列:将班级表的备注更改为其它;
添加一个新列;
删除一个列;
删除一个表;(删除后不可恢复)
删除表的所有数据;
创建主键约束;
创建外建约束;
实验三数据的基本操作
实验目的:
实验内容:
1.数据的添加.删除.修改
在上面四张表中分别插入几条记录;
设置条件修改表中的各项记录;
为学生表添加年龄项,分别输入各位学生的年龄;
修改年龄为18岁的学生年龄为20;
修改所有学生的入学时间、班级代码等;
设置条件删除表中的无用记录;
2.数据的简单查询
查询学生的全部信息。
查询全体学生的学号、姓名和年龄。
查询系部代码为“01”的学生号、姓名、年龄。
查询年龄高于18的学生的学号、姓名和性别。
查询选修C1或C2课程且分数大于等于85分学生的的学号、课程号和成绩。(需先为学生表添加选修课程、课程号和成绩)
查询选修C1课程并且成绩在80至90之间的学生的学号、姓名及年龄。
查询选修C1或C2的学生的学号、课程号和成绩。
查询没有选修C1,也没有选修C2的学生的学号、课程号和成绩。
查询所有姓张的学生的学号和姓名。
查询姓名中第二个汉字是“力”的学号和姓名。(如果没有该项请添加后在查询) 查询没有考试成绩的学生的学号和相应的课程号。(如果没有该项请添加空值后在查询)
3.数据的统计查询和分组
求所有学生的高考分数总分和平均分。
求选修C1号课程的最高分、最低分及之间相差的分数。
求“01”系学生的总数、高考平均分、高考总分。(要求显示时标出列名)
显示所有系部代码,并求共有多少个系。(要求系部代码不能重复,并且使用compute命令)
求每个系各有多少人,并按照人数递增顺序显示各系名称。(要求使用group by 和order by 命令)
求每个专业方向各有多少人,并按照人数递减顺序显示各专业名称,并计算专业总人数。
显示专业人数大于5人的各个专业方向。(要求使用having命令)
查询选修C2、C3、C4或C5课程的学号、课程号和成绩,查询结果按学号升序排列,学号相同再按成绩降序排列。(请自己创建选课成绩表)
求选课在三门以上且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出。
4.数据的连接查询
对学生表和班级表作交叉连接。
把同一个班级的学生表和班级表连接起来。(要求使用等值连接)
查询所有比刘德华高考分数高的学生姓名、性别、高考分数和刘德华的高考分数。
(要求使用自身连接)
查询所有学生的学号、姓名、选课名称及成绩的左连接、右连接、完整外部连接。
(注:学生表中应该有没有选课的同学,选课表中有没被选的课程) 查询所有学生学号,姓名,性别,班级名称,专业名称和系部名称。(要求使用复合连接条件查询)
查询“软件工程1班”和“软件工程2班”的所有学生的生学号,姓名,性别,并分别把结果集制成表class1和class2;使用union语句把class1和class2合并为一个
结果集。
5.数据的多表查询和子查询
查询大于刘德华的出生日期的学生的学号、姓名、出生日期。
查询课程号为c1的所有学生的学号、姓名。(要求使用子查询和连接查询两种方法。
注意:这里的选课信息和学生信息分别在学生和选课成绩两个表中。) 查询其他系中比02系所有学生高考分数都高的学生的姓名、系部代码和高考分数。
查询其他系中比02系某一学生高考分数高的学生的姓名、系部代码和高考分数。
查询高考分数大于学号为01,04中任意一个的学生的学号、姓名、高考分数。
查询高考分数大于学号为01和04的学生的学号、姓名、高考分数。
查询高考分数大于等于学号为01,04中任意一个的学生的学号、姓名、高考分数。
查询高考分数大于等于学号为01和04的学生的学号、姓名、高考分数。
使用exists语句查询课程号为c1的所有学生的学号、姓名。(注意和不用exists语句的查询语句的比较)
实验四索引
实验目的:
实验内容:
1.索引的创建(要求分别使用SQL Server 管理控制台和T-SQL语句来创建索引) 创建系部表的系部名称的非聚集索引;
创建专业表的专业名称的唯一索引;
创建学生表的学号和姓名的唯一聚集索引,并按照学号降序排列;
2.查看索引
用T-SQL语句查看上面创建的索引
3.索引的删除(要求分别使用SQL Server 管理控制台和T-SQL语句来删除索引) 删除系部表的系部名称的索引;
删除专业表的专业名称的索引;
删除学生表的学号和姓名的索引;
实验五视图
实验目的:
实验内容:
1.视图的创建(要求分别使用SQL Server 管理控制台和T-SQL语句来创建视图) 创建学生的学号、姓名、班级名称、专业名称、系部名称视图
创建一个软件工程1班系学生情况的视图。
插入INSERT、删除DELETE、修改UPDA TE视图中的数据(方法同基本表中对数据的修改)
2.查看视图
3.删除视图
实验六数据控制
实验目的:
实验内容:
1.定义、修改和撤消数据库的用户
创建一个登陆名为“Andrew”的数据库用户;
修改Andrew的用户名;
修改Andrew的登陆名和密码;
删除Andrew用户和相应的登录名;
2.权限与角的授予与收回
将对学生表的修改学号和查询对象权限授予用户Andrew;
将创建表的系统权限授予所有用户
将查询学生表和修改高考分数的权限授予AndrewAndrew,并允许将此对象权限授予其他用户。
撤销用户AndrewAndrew的修改学号对象权限
撤销所有用户的创建表的系统权限
实验七存储过程与触发器
实验目的:
实验内容:
1.创建、执行、查看、删除简单的存储过程
在SQL Server 中使用查询分析器执行SQL语句,为学生表创建一个存储过程;
为学生表创建一个存储过程,其参数为学生的性别,和系部代码;
执行上面新创建的存储过程,并且参数为:性别=男,和系部代码=02;
查看上面新创建的存储过程
删除上面创建的一个存储过程
2.创建、执行、查看、删除触发器
使用SQL 为产品表创建一个inserted表触发,并给触发器插入数据,执行观察结果。
为产品表创建一个deleteed表触发器,并给触发器删除数据,执行观察结果。
查看触发器信息
删除触发器
实验八函数
实验目的:
实验内容:
1.执行SQL语句中的数学函数,查看其结果;
2.执行SQL语句中的配置函数,查看其结果;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。