1、(1)用CREATE DATABASE命令建立数据库(自己命名数据库的名称)。用CREATE SCHEMA命令建立架构(自己命名架构名称)。在定义的架构下参照图5-1所示的样本数据库和表5-8的具体要求使用CREATE TABLE命令建立表并定义完整性约束。用ALTER TABLE命令按如下要求修改表结构:为学生表增加一个“平均成绩”字段,类型为短整数,默认是空值;为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值;将院系表的名称字段的类型修改为varchar(30)。 为教师表增加一个工资字段,类型为5位整数、2位小数的数值型。建立数据库create database 教务信息
2、on (name = juxx_dat, filename = C:Program FilesMicrosoft SQL Server90ToolsBinnVSShellCommon7林碧娴, size=10mb, maxsize=50mb, filegrowth=5mb)log on (name=juxx_log, filename=Program FilesMicrosoft SQL Server90ToolsBinnVSShellCommon7lin size=5mb, maxsize=25mb,建立架构create schema 教务信息定义表及完整性约束create table 教务
3、信息.院系 (编号smallint primary key,名称char(20)not null,负责人char(10),办公地点char(20)create table 教务信息.学生(学号char(8)primary key,院系smallint foreign key references 教务信息.院系(编号),姓名char(10)not null,性别char(2)check(性别= 男 or 性别= 女),生源char(6),状态char(4)check(状态= 正常 or 状态= 留级休学退学)create table 教务信息.教师(教师编号char(8)primary key
4、,职称char(6)check(职称= 教授 or 职称= 副教授讲师助教专业char(10)create table 教务信息.课程(课程编号char(8)primary key,课程名称char(20)not null,责任教师char(8)foreign key references 教务信息.教师(教师编号),学时int not null,课程性质char(10)check(课程性质= 公共基础 or 课程性质= 专业基础专业选修任意选修create table 教务信息.选课(学号char(8)primary key foreign key references 教务信息.学生(学号
5、),课程编号char(8)foreign key references 教务信息.课程(课程编号),成绩int check(成绩=0 and 成绩=100)default null)修改表结构alter table 教务信息.学生add 平均成绩smallint default nullalter table 教务信息.课程add constraint sb check (学时% 8=0)alter table 教务信息.院系alter column 名称varchar(30)alter table 教务信息.教师add 工资numeric (7,2)通过此次的实验,让我对使用CREATE D
6、ATABASE命令建立数据库有了更加熟练的认识,对CREATE SCHEMA命令建立架构的基本掌握,学会了使用CREATE TABLE命令建立表并定义数据完整性约束,也ALTER TABLE命令修改表架构。学到了更多,懂得了更多。实验3 数据操作及完整性约束体验数据操作及完整性约束体验在实验2的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。熟练掌握SQL的INSERT、UPDATE和DELETE命令,深刻理解数据完整性约束的作用以及约束时机。在实验2的基础上首先用INSERT命令插入各个表的记录,然后使用UPDATE和DELETE命令对部分记录进行
7、修改和删除操作。(1)读者自行设计各个表的记录,记录院系表至少10条记录、学生表至少30条记录、课程表至少10条记录、教师表至少10条记录、选课表至少50条记录。(2)使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户完整性约束的插入操作,并分析原因。(3)设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除、和级联删除等不同的处理方式)。(4)设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和定义完整性规则的效果。(5)在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的分
8、析和讨论。插入数据insert into 教务信息.院系values(01,理学院E1二教)02财经学院E2三教03电气学院E3四教04土建学院E405医学院E506外语学院E607管理学院E708麓山学院E8五教09汽车学院E9六教10生化学院E10insert into 教务信息.学生values(2012001林一南宁802012002雷一崇左902012003莫一河池2012004曹一北海2012005董一百色2012006封一insert into 教务信息.教师values(001林二统计学4000002雷二信计学3000003莫二004曹二数应学2000insert into 教
9、务信息.课程values(101数学分析40102概率论103数据库24104计量经济学insert into 教务信息.选课values(7060设计若干操作违反完整性约束的操作职教院E11删除操作delete 教务信息.选课where 学号= 更新操作update 教务信息.学生set 学号= where 学号=2012007初次使用SQL软件的灵敏度的欠缺,也基本掌握了SQL的INSERT、UPDATE和DELETE命令,能理解数据完整性约束的作用以及约束时机。各个表格的设计也偶尔出现了命令行出错,然后在进行解决。实验4 数据查询使用SQL SELECT 语句的数据查询操作。在实验2和实
10、验3的基础上完成规定的查询操作。熟练掌握SQL SELECT 的命令。在实验2和实验3的基础上使用SQL SELECT命令完成实验要求中所规定的各种查询。实验要求:在实验2和实验3的基础上按要求设计查询,并用SQL SELECT 命令查询。1.一般简单查询不带条件的查询指定字段。查询某个表的全部信息。使用单个条件的简单查询。使用多个条件(AND关系)的简单查询。使用多个条件(OR关系)大简单查询。使用多个条件(AND和OR关系)的查询。使用带NOT运算的查询。使用BETWEEN.AND.的查询。使用NOT.BETWEEN.AND.的查询。使用LIKE运算符的字符串的匹配查询。使用LIKE的模板
11、匹配查询。使用空值和非空值查询。结果要求排序的查询。查询结果按多列排序,并分别按升序和降序查询。使用TOP显示前若干记录的查询。使用TOP显示前若干记录的查询,如果有满足条件的记录一并列入。连接查询两个关系的简单查询。带其他条件的两个关系的连接查询。多个关系的连接查询。两个关于的而广义笛卡儿积运算结果。根据两个关系的广义笛卡儿积运算结果得出两个关系自然连接结果。查询教师-课程信息,结果包含教师姓名、职称、课程名称和课程性质等4个字段。查询教师-课程信息,结果包含教师姓名、职称、课程名称和课程性质等4个字段,要求结果中列出所有教师信息。查询教师-课程信息,查询结果中包含教师姓名、职称、课程名称和
12、课程性质等4个字段,要求结果中能够反应目前没有确定责任教师的课程信息。查询教师-课程信息,查询结果中包含教师姓名,职称,课程名称和课程性质的4个字段,要求结果中技既能反应目前不是责任教师的信息,有能反应目前没有确认责任教师的课程信息。使用嵌套查询使用IN运算符查询。使用NOT IN 运算符查询。使用关系运算符查询。使用ANY或SOME的简单嵌套查询。使用ALL的嵌套查询。查询院系名称为含“计算机”、职称为教授、所负责课程为必修课的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接查询完成,分析各自的效率)。设计两个内外层互相关的嵌套查询。使用EXISTS的嵌套查询。使用 NOT E
13、XISTS的嵌套查询。汇总和分组查询使用COUNT统计数目的查询。使用SUM计算合计的查询。一次完成求和、计数、计算平均值大查询。查询所有课程的成绩都大于60分的学生的平均成绩。查询数据库的成绩大于70分的、所有课程平均分最高的学生信息。查询每个学生的平均成绩。 查询每个学生的所有课程的最高成绩、最低成绩、平均成绩、和所考课 程的门数。查询至少有10门必修课程考试成绩的每个学生的平均成绩。设计2个使用COMPUTE.BY和COMPUTE的查询。设计1个使用COMPUTE的查询。设计一个使用COMPUTBY的查询。一般简单查询select 姓名,性别from 教务信息.学生-查询学生的姓名,性别
14、select*from 教务信息.选课-查询选课表的信息select 姓名,院系from 教务信息.教师where 工资!2000select 姓名,专业,课程名称,院系.名称from 教务信息.教师join 教务信息.课程join 教务信息.院系on 教师.院系= 院系.编号select*from 教务信息.教师cross join 教务信息.院系select 姓名,职称,课程.课程名称,课程性质from 教务信息.教师join 教务信息.课程on 教师编号= 责任教师from 教务信息.教师left join 教务信息.课程from 教务信息.教师right join 教务信息.课程fro
15、m 教务信息.教师full join 教务信息.课程嵌套查询select 院系.编号from 教务信息.院系where 编号in(select 院系from 教务信息.学生where 平均成绩= 80)select 院系.编号from 教务信息.院系where 编号not in(select 姓名from 教务信息.学生where 平均成绩=(select 平均成绩from 教务信息.学生where 姓名=select distinct 姓名from 教务信息.学生where 平均成绩=any(select 平均成绩from 教务信息.学生where 院系=1)select distinct
16、姓名from 教务信息.学生where 平均成绩=all(select 课程名称,学时,课程性质from 教务信息.课程outawhere 学时=(select max(学时) from 教务信息.课程where 责任教师in(select 教师编号from 教务信息.教师where 教师编号= 责任教师)select*from 教务信息.院系where not exists(select*from 教务信息.学生where 院系= 编号)select sum(工资),count(*),avg(工资),max(工资),min(工资) from 教务信息.教师select avg(平均成绩) f
17、rom 教务信息.学生select distinct 工资from 教务信息.教师compute count(工资)select*from 教务信息.教师order by 教师编号compute avg(工资),sum(工资)by 教师编号compute avg(工资),sum(工资)通过实验,学会使用SQL SELECT的数据查询操作 ,对左连接、右连接、内连接全连接的掌握,对简单嵌套查询、条件查询等等各种查询的练习的基本熟悉,同时也对SQL SELECT查询命令的基本框架的熟悉与理解。让自己的能力有了更好的提升。实验5 视图的应用视图的建立和应用在实验2和实验3的基础上定义视图,并在视图上
18、查询以及插入、删除、和更新和操作。掌握视图定义和应用方法,体会视图和基本表的异同。在实验2和实验3的基础上用CREATE VIEW命令定义视图,然后使用SELECT 命令完成查询,使用INSERT、UPDATE和DELETE命令分别完成插入 、更新和删除操作。在实验2建立的基本表的基础上,按如下要求设计和建立视图:基于单个表按投影操作定义视图。基于单个表按选择操作定义视图。基于单个表按选择和投影操作定义视图。基于多个表根据连接操作定义视图。基于多个表根据嵌套查询定义视图。定义含有虚字段的视图。分别在定义的视图上设计一些查询(包括基于视图和基本表的连接或嵌套查询)。在不同的视图上分别设计一些插入
19、、更新和删除操,分情况讨论那些操作可以成功,那些操作不能完成,并分析原因。在实验报告中要给出具体的视图定义要求和操作要求,并针对各情况做出具体的分析和讨论。建立视图create view 教师as select 教师编号,姓名,职称from 教务信息.教师-基于单个表的按投影操作定义视图create view 教师as select 教师编号,姓名,专业from 教务信息.教师where 性别= -基于单个表的按选择和投影操作定义视图create view 教师课程as select 教师编号,姓名,课程编号,课程名称from 教务信息.教师join 教务信息.课程on 教师编号= 责任教师-基于多个表的连接操作定义视图CREATE VIEW 教师与课程视图ASSELECT 教师编号,工资,性别,课程名称,课程编号,责任教师FROM 教务信息.教师JOIN 教务信息
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1