sql 数据库 实验6答案

合集下载

sql实训答案

sql实训答案

sql实训答案【篇一:新sql——server实验练习答案】txt>答案上海师范大学计算机系目录第一部分企业管理器的使用 ....................................................................................................... .. 3试验一注册服务器 ............................................................................... 错误!未定义书签。

试验二创建数据库 ............................................................................... 错误!未定义书签。

试验三创建表 ....................................................................................... 错误!未定义书签。

实验四数据输入 ................................................................................... 错误!未定义书签。

实验五登录到数据库服务器 ............................................................... 错误!未定义书签。

第二部分 sql语言 ....................................................................................................... ................. 3 第二部分 sql语言 ....................................................................................................... .. (3)试验一数据库创建 ....................................................................................................... .......... 3 试验二创建表 ....................................................................................................... .................. 3 试验三创建数据完整性 ....................................................................................................... .. 5 试验四数据完整性试验 ....................................................................................................... .. 6 试验五索引 ....................................................................................................... .................... 10 试验六更新数据 ....................................................................................................... ............ 11 试验七 sql 查询语句 ....................................................................................................... .... 12 试验八视图 ....................................................................................................... .................... 15 试验九安全性控制实验 .......................................................................................................16 试验十存储过程 ....................................................................................................... ............ 17 试验十二触发器 ....................................................................................................... ............ 21 试验十二恢复技术 ....................................................................................................... ........ 25 试验十三事务 ....................................................................................................... ................ 26 试验十四锁 ....................................................................................................... .. (27)第一部分企业管理器的使用第二部分 sql语言试验一数据库创建目的:1掌握利用sql语言进行数据库的创建、维护。

数据库技术与应用SQL习题答案

数据库技术与应用SQL习题答案

实验2 SQL Server 数据库的管理4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATE DATABASE创建studb数据库。

然后通过系统存储过程sp_helpdb查看系统中的数据库信息CREATE DATABASE studbsp_helpdb5.在查询分析器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。

ALTER DATABASE studbMODIFY FILE(NAME=studb,SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=1MB)7.使用企业管理器将studb数据库的名称更改为student_db。

ALTER DATABASE studbMODIFY NAME=student_db8.使用Transact-SQL语句DROP DATABASE删除student_db数据库。

DROP DATABASE student_db实验3 SQL Server 数据表的管理5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade 表。

CREATE TABLE grade(学号 char(4),课程编号 char(4),分数 decimal(5))8.使用Transact_SQL语句INSERT INTO...VALUES向studentsdb数据库的grade表插入以下数据:学号课程编号分数0004 0001 80USE studentsdbGOINSERT INTO gradeVALUES('0004','0001','80')9.使用Transact_SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。

SQL数据库原理实验指导书及答案

SQL数据库原理实验指导书及答案

数据库原理SQLServer实验指导书数据库系统原理实验一、基本操作实验实验1:数据库的定义实验本实验的实验目的是要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL语句和进行结果分析。

本实验的内容包括:l)创建数据库和查看数据库属性。

2)创建表、确定表的主码和约束条件,为主码建索引。

3)查看和修改表结构。

4)熟悉SQL Server Enterpriser Manager和 Query Analyzer工具的使用方法具体实验任务如下。

1.基本提作实验1)使用Enterpriser Manager建立图书读者数据库2)在Enterpriser Manager中查看图书读者数据库的属性,并进行修改,使之符合要求。

3)通过Enterpriser Manager,在建好了图书借阅数据库中建立图书、读者和借阅3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价,版次);读者(编号,姓名,单位,性别,电话):借阅(书号,读者编号,借阅日期人)要求为属性选择合适的数据类型,定义每个表的主键,Allow Null(是否允许空值)和Default Value(缺省值)等列级数据约柬。

4)在Enterpriser Manager建立图书、读者和借阅3个表的表级约束:每个表的PrimaryKey (主键)约束;借阅表与图书表间、借阅表与读者表之间的FOREIGNKEY(外码)约柬,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的UNIQUE(惟一性)约束;实现读者性别只能是“男”或“女”的check(检查)约束。

2.提高操作实验建立学生_课程库操作,在查询分析器中用SQL命令实现。

库中表结构为:Student(sno,sname,sage,ssex,sdept):course(cno,cname,cpno,ccredit);sc(sno,cno,grade)。

数据库SQL实验操作答案

数据库SQL实验操作答案

数据库SQL实验操作答案1、创立数据库:创立一个教学管理数据库,以自己的名字拼音首字母+下划线+SC作为库名〔如名字叫张三,那么:ZC_SC〕,〔1〕确定数据库名称;数据库用于学生管理,命名为如ZS_SC〔2〕确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。

〔3〕确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。

〔4〕确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。

请利用查询分析器〔Query Analyzer〕,使用SQL语句指定参数创立数据库,给出实现代码和截图。

实现代码及截图样例: SQL语句: create database CYR_SC on primary ( name='CYR_SC_DATA', filename='E:\\CYR_SC_DATA.MDF', size=30MB, filegrowth=20% ) log on ( name='CYR_SC_LOG',filename='E:\\CYR_SC_LOG.LDF', size=3mb, filegrowth=1mb )……………查询分析器执行情况: SQL语句及执行结果截图显示 2、创立根本表:〔注意:请在表名前加上自己的姓名拼音的首字母,主键前加上自己的姓名拼音的首字母,例如张三为ZC_〕其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。

创立:student表(学生信息表)、course表〔课程信息表)、teacher表〔教师信息表)、student _course表〔学生选课成绩表)、teacher_course表〔教师上课课表〕等。

请利用查询分析器,使用SQL语句将下面各表建立到教学管理数据库中。

写出SQL语句〔注意级联删除设置〕,查看各数据表之间的关系,画出实体关系图〔ER图〕。

sql实验指导答案3--6

sql实验指导答案3--6

create database employeesonprimary(name='employee1',filename='D:\data\employee1.mdf',size= 10 MB,maxsize=UNLIMITED,filegrowth= 10%),(name='employee2',filename='D:\data\employee2.mdf',size= 20 MB,maxsize= 100 MB,filegrowth= 1 MB)log on(name='employeelog1',filename='D:\data\employeelog1.ldf',maxsize= 50 MB,filegrowth= 1 MB),(name='employeelog2',filename='D:\data\employeelog2.ldf',maxsize= 50 MB,filegrowth= 1 MB)alter database employeesadd filegroup fgroupgoalter database employeesadd file(name='employee3',filename='D:\data\employee3.mdf',size= 20 MB,maxsize= 100 MB,filegrowth= 1 MB),(name='employee4',filename='D:\data\employee4.mdf',size= 20 MB,maxsize= 100 MB,filegrowth= 1 MB),(name='employeelog3',filename='D:\data\employeelog3.ldf',maxsize= 50 MB,filegrowth= 1 MB)to filegroup fgroupgouse employeesgoCREATE TABLE employee(number int NOT NULL,name varchar(20)NOT NULL,sex char(2)NULL,birthday date NULL,hire_date date NOT NULL DEFAULT (getdate()),professional_title varchar(10)NULL,salary money NULL,memo ntext NULL,constraint pk_id primary key clustered(number))use employeesgoselect*from employeeuse employeesgodrop table employeeuse MASTERgoalter database employees set offline with rollback immediate drop database employeesgocreate table products(id char(10)not null,name char(20)not null,price money default 0.01,quantity smallint null,constraint pk_id primary key clustered (id))create table student(Id char(8),name char(8),sex char(2),phonenum char(11),constraint chk_sex check(sex in('F','M')),Constraint chk_phonenum check(phonenum like'(010)[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') )alter table studentdrop constraint chk_phonenumalter table studentadd constraint chk_phonenum check(phonenum like'(010)[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') create database storeon(name=store,filename='D:\data\store.mdf',size= 5 MB,maxsize= 10 MB,filegrowth= 1 MB)log on(name=storelog,filename='D:\data\storelog.ldf',size= 5 MB,maxsize= 10 MB,filegrowth= 1 MB)use storegocreate table商品(商品号char(8)not null primary key,商品名char(16)not null,单价float not null,商品类别char(10),供应商char(10),constraint p_p check(单价>0.0))create table顾客(顾客号char(10)not null primary key,姓名char(10)not null,住址varchar(50))create table购买(顾客号char(10)not null,商品号char(8)not null,购买数量int not null,primary key(顾客号,商品号),foreign key (顾客号)references顾客(顾客号),foreign key (商品号)references商品(商品号),constraint b_n check(购买数量>0 and购买数量<20))create table购买(顾客号char(10)not null,商品号char(8)not null,购买数量int not null,primary key(顾客号,商品号),constraint buy_c foreign key (顾客号)references顾客(顾客号), constraint buy_p foreign key (商品号)references商品(商品号),constraint b_n check(购买数量>=0 and购买数量<=20))insert into商品values('M01','佳洁士',8.00,'牙膏','宝洁');insert into商品values('M02','高露洁',6.50,'牙膏','高露洁');insert into商品values('M03','洁诺',5.00,'牙膏','联合利华');insert into商品values('M04','舒肤佳',3.00,'香皂','宝洁');insert into商品values('M05','夏士莲',5.00,'香皂','联合利华');insert into商品values('M06','雕牌',2.50,'洗衣粉','纳爱斯');insert into商品values('M07','中华',3.50,'牙膏','联合利华');insert into商品values('M08','汰渍',3.00,'洗衣粉','宝洁');insert into商品values('M09','碧浪',4.00,'洗衣粉','宝洁');insert into顾客values('C01','Dennis','海淀');insert into顾客values('C02','John','朝阳');insert into顾客values('C03','Tom','东城');insert into顾客values('C04','Jenny','东城');insert into顾客values('C05','Rick','西城');insert into购买values('C01','M01',3);insert into购买values('C01','M05',2);insert into购买values('C01','M08',2);insert into购买values('C02','M02',5);insert into购买values('C02','M06',4);insert into购买values('C03','M01',1);insert into购买values('C03','M05',1);insert into购买values('C03','M06',3);insert into购买values('C03','M08',1);insert into购买values('C04','M03',7);insert into购买values('C04','M04',3);insert into购买values('C05','M06',2);insert into购买values('C05','M07',8);select distinct姓名from顾客,商品,购买where顾客.顾客号=购买.顾客号and商品.商品号=购买.商品号and商品.供应商='宝洁'select distinct姓名from顾客where顾客.顾客号in(select购买.顾客号from购买where购买.商品号in(select商品.商品号from商品where商品.供应商='宝洁'))select distinct姓名from顾客where exists(select*from购买where exists(select*from商品where顾客.顾客号=购买.顾客号and商品.商品号=购买.商品号and商品.供应商='宝洁'))select distinct姓名from顾客,商品,购买where顾客.顾客号=购买.顾客号and商品.商品号=购买.商品号and商品.商品号in(select distinct商品.商品号from顾客,商品,购买where顾客.顾客号=购买.顾客号and商品.商品号=购买.商品号and姓名='Dennis') and姓名<>'Dennis'select姓名from顾客where顾客号in(select顾客号from购买where商品号in(select商品号from购买where顾客号in(select顾客号from顾客where姓名='Dennis')))and姓名<>'Dennis'select top 1 供应商,sum(购买数量)from购买,商品where商品.商品号=购买.商品号and商品类别='牙膏'group by供应商order by SUM(购买数量)descupdate商品set单价=单价*1.1where商品类别='牙膏'deletefrom商品where商品号not in(select商品号from购买)CREATE TABLE S(sno char (10)primary key,sname char (10)not null,age tinyint,sex char (10)CHECK(sex='男'OR sex='女'))INSERT INTO S VALUES ('98601','李强',20,'男')INSERT INTO S VALUES ('98602','刘丽',21,'女')INSERT INTO S VALUES ('98603','张兵',20,'男')INSERT INTO S VALUES ('98604','陈志坚',22,'男')INSERT INTO S VALUES ('98605','张兵',21,'女')CREATE TABLE C(cno char (10)primary key,cname char (10)not null,teacher char(8),office char (10))INSERT INTO C VALUES ('C601','高等数学','周振兴', 416) INSERT INTO C VALUES ('C602','数据结构','刘建平', 415) INSERT INTO C VALUES ('C603','操作系统',' 刘建平', 415)INSERT INTO C VALUES ('C604','编译原理',' 王志伟', 415) CREATE TABLE SC(sno char (10)not null,cno char (10)not null,score tinyint,primary key (sno,cno),foreign key (sno)references S(sno),foreign key (cno)references C(cno))INSERT INTO SC VALUES ('98601','C601',90)INSERT INTO SC VALUES ('98601','C602',90)INSERT INTO SC VALUES ('98601','C603',85)INSERT INTO SC VALUES ('98601','C604',87)INSERT INTO SC VALUES ('98602','C601',90)INSERT INTO SC VALUES ('98603','C601',75)INSERT INTO SC VALUES ('98603','C602',70)INSERT INTO SC VALUES ('98603','C604',56)INSERT INTO SC VALUES ('98604','C601',90)INSERT INTO SC VALUES ('98604','C604',85)INSERT INTO SC VALUES ('98605','C601',95)INSERT INTO SC VALUES ('98605','C603',80)SELECT cno,cname FROM CWHERE teacher='周振兴'SELECT sno,sname FROM SWHERE age>21 and sex='男'--youwentiSELECT sname FROM SWHERE NOT EXISTS(SELECT*FROM CWHERE teacher='刘建平'AND NOT EXISTS(SELECT*FROM SCWHERE SC.sno=S.sno AND o=o)) SELECT cno FROM CWHERE cno NOT in(SELECT cno FROM SCWHERE cno=o and sno in(SELECT sno FROM SWHERE sname='刘丽'))SELECT cno FROM CWHERE NOT EXISTS(SELECT cno FROM SCWHERE cno=o and sno in(SELECT sno FROM SWHERE sname='刘丽'))SELECT sno FROM SCGROUP BY sno HAVING COUNT(*)>=2SELECT cno,cname FROM CWHERE NOT EXISTS(SELECT*FROM SWHERE NOT EXISTS(SELECT*FROM SCWHERE o=o AND SC.sno=S.sno)) SELECT sno FROM SWHERE sno IN(SELECT sno FROM SCWHERE cno IN(SELECT cno FROM CWHERE teacher='王志伟'))SELECT SC2.sno FROM SC SC1JOIN SC SC2ON SC1.sno=SC2.snoWHERE o='C601'and o='C603'SELECT sname FROM SWHERE NOT EXISTS(SELECT*FROM CWHERE NOT EXISTS(SELECT*FROM SCWHERE SC.sno=S.sno AND o=o)) SELECT sno FROM SWHERE sno IN(SELECT sno FROM SCWHERE cno IN(SELECT cno FROM SCWHERE sno='98603'))AND sno!='98603'SELECT DISTINCT sno FROM SCWHERE cno IN(SELECT cno FROM SCWHERE sno='98603')AND sno!='98603'SELECT S.sno,sname FROM S,SC,CWHERE S.sno=SC.sno and o=o and ame='操作系统' select*FROM S,SC,CWHERE S.sno=SC.sno and o=o。

SQL数据库实验和参考答案

SQL数据库实验和参考答案

数据库实验和参考答案上机实验七1.声明一个字符串型的局部变量,并对其赋值:‘我的变量’,然后显示出此值。

declare @a char(10)set @a='我的变量'--select @a as 变量的值print @a2.编程实现如下功能:1)声明两个整形的局部变量:@i1和@i2,对@i1赋初值:10,@i2的值为:@i1乘以5,再显示@i2的结果值。

declare @i1 int,@i2 intset @i1=10set @i2=@i1*5print @i22)用While语句实现5000减1,减2,……一直减到50的计算,并显示最终的结果。

declare @sum int,@i intset @sum=5000set @i=1while(@i<=50)beginset @i=@i+1endprint @sum3)输出100以内的素数。

declare @i smallint,@jsmallint,@k smallintset @i=2while(@i<=100)beginset @k=0set @j=2while(@j<@i)beginif(@i%@j=0)beginset @j=@Iendset @j=@j+1endif @k=0print @Iset @i=@i+1end4)将字符数在20以内的字符串变量C的值逆序输出。

要求输出界面为:declare @i varchar(20),@j int,@k varchar(20)set @j=1set @k=''while @j<=len(@i)beginset @k=substring(@i,@j,1) set @j=@j+1endprint '字符串C的值:'+@iprint 'C的逆序字符串:'+@k5)从SC表中查询所有学生的选课成绩情况,分别统计各分数段人数,并输出统计结果。

sql数据库实验6答案

sql数据库实验6答案

实验六:数据表综合查询四、实验内容以数据库原理实验4数据为基础,请使用T-SQL 语句实现进行以下操作:1.查询名字中第2个字为‘向’的学生姓名和学号及选修的课程号、课程名;select a.sname,a.sno,o,ame from student a,course b,sc c where a.sname like'_向%'and a.sno=c.sno and o=o2.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;Select a.sno,sname,sdept,o,grade from student a,course b,sc c Where ame in('数学','大学英语')and a.sno=c.sno and o=o3.查询缺少成绩的所有学生的详细情况;Select*from studentWhere sno in(select sno from sc where grade is null)4.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;Select*from studentWhere sage<>(select sage from student where sname='张力')5.按照‚学号,姓名,所在院系,已修学分‛的顺序列出学生学分的获得情况。

其中已修学分为考试已经及格的课程学分之和;Select a.sno,sname,sdept,sum(ccredit)as已修学分from student a,course b,sc cWhere grade>60 and a.sno=c.sno and o=ogroup by a.sno,sname,sdept6.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;Select a.sno,a.sname,o from student a,sc cwhere Cno in(select Cno from sc where sno in(select sno from student where sname='张力'))and a.sno=c.sno7.查询只被一名学生选修的课程的课程号、课程名;select cno,cname from coursewhere cno in(select cno from sc group by cno having COUNT(*)=1)8.使用嵌套查询出选修了‚数据结构‛课程的学生学号和姓名;select sno,sname from studentwhere sno in(select sno from sc where Cno=(select Cno from course where cname='数据结构'))9.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;select sname,sage,sdept from studentwhere sage<any(select sage from student where sdept='cs') and sdept<>'cs'10.使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;select sname from studentwhere sage<all(select sage from student where sdept='wm') and sdept<>'wm'11.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;select b.*from student a,student bwhere a.sname='张力'and a.sdept=b.sdept或SELECT*FROM StudentWHERE Sdept IN(SELECT Sdept FROM Student WHERE sname='张力')12.使用集合查询列出CS系的学生以及性别为女的学生学号及姓名;SELECT sno,sname from studentwhere sdept='cs'unionselect sno,sname from studentwhere ssex='女'13.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;SELECT *FROM Student WHERE Sdept='CS' EXCEPTSELECT *FROM Student WHERE Sage <=19 SELECT *FROM Student WHERE Sdept='CS' INTERSECT SELECT *FROM Student WHERE Sage <=1914.使用集合查询列出选修课程1的学生学号集合与选修课程2的学生学号集合的交集;SELECT Sno FROM SC WHERE Cno='1'IntersectSELECT Sno FROM SC WHERE Cno='2'。

数据库实验示例带答案

数据库实验示例带答案

示例1实验一实验名称:SQL语句的应用(6课时)一、实验目的通过使用SQL SERVER企业管理器建立表。

模式为人事表、客户表、销售表、销售明细表、产品表。

理解数据库模式的概念,理解主键约束、外键约束、UNIQUE约束和CHECK 约束。

通过SQL SERVER企业管理器建立表间的约束。

将得到的表生成脚本,保存。

二、实验环境是MS SQL SERVER 2000的中文客户端。

三、实验示例create table employee1(emp_no char(5) not null,constraint emp_nochk check(emp_no like '[E-F][0-9][0-9][0-9][0-9]'),emp_name char(10) not null,emp_sex char(1) not null,constraint emp_sexchk check(emp_sex in ('m','f')),emp_phone char (13) not null,constraint emp_phonechk check(emp_phone like '([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'), emp_add varchar(60) not null,emp_salary char(5) not null,constraint emp_salarychk check (emp_salary between 60000 and 80000))go四、实验内容与步骤1、建立五张表,每张表至少需要20条记录。

(1)/*员工人事表employee */(3)/*销售主表sales */(4)/*销货明细表sale_item */2、建立表的同时创建表的约束。

(1)为每张表建立主键约束。

SQL_Server数据库试题六及答案范文

SQL_Server数据库试题六及答案范文

SQL_Server数据库试题六及答案范⽂SQL Server数据库试卷6⼀、单项选择题(每题2分,共15题)1、DBMS是什么?()(A)操作系统(B)数据库管理系统(C)数据库(D)数据库管理员2、SQL Server 2000是⼀个()的数据库系统。

(A)⽹状型(B)层次型(C)关系型(D)以上都不是3、SQL Server 2000 采⽤的⾝份验证模式有()。

(A)仅Windows⾝份验证模式(B)仅SQL Server⾝份验证模式(C)仅混合模式(D)Windows⾝份验证模式和混合模式4、关于主键描述正确的是:()(A)包含⼀列(B)包含两列(C)包含⼀列或者多列(D)以上都不正确5、下列()数据库不属于SQL Server 2000在安装时创建的系统数据库。

(A)master (B)NorthWind (C)model (D)bookdb6、在SQL SERVER中局部变量前⾯的字符为:()(A)* (B)# (C)@@ (D)@7、在SQL Server 2000中,当数据表被修改时,系统⾃动执⾏的数据库对象是()。

(A)存储过程(B)触发器(C)视图(D)其他数据库对象8、SQL Server的字符型系统数据类型主要包括()。

(A)Int、money、char (B)char、varchar、text(C)datetime、binary、int (D)char、varchar、int9、在SELECT语句的WHERE⼦句的条件表达式中,可以匹配0个到多个字符的通配符是()(A)* (B)% (C)- (D)? 10、在WHILE循环语句中,如果循环体语句条数多于⼀条,必须使⽤:(A)BEGIN……END(B)CASE……END(C)IF…………THEN(D)GOTO11、SELECT查询中,要把结果中的⾏按照某⼀列的值进⾏排序,所⽤到的⼦句是:(A)ORDER BY (B)WHERE (C)GROUP BY (D)HA VING 12、要删除视图myview,可以使⽤()语句。

数据库原理中SQL语句实验指导书及答案

数据库原理中SQL语句实验指导书及答案

实验四:管理SQL Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。

二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。

五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)课程信息表(course)选课信息表(sc)insert into student.dbo.sc values('20051501','1',75)insert into student.dbo.course values('1','数据库','5',4)insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname='李咏'where Sname='李勇'3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname ='数据处理'4.将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno='1'5.将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere o=o and ame='大学英语'6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'where Sno='200515010'7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8.删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex='男' and Sage>25 and Sdept='CS'10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit<1实验五:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。

数据库实验1-6参考答案

数据库实验1-6参考答案

数据库实验1-6参考答案实验⼀SQL Server使⽤初步⼀、实验⽬的1、熟悉SQL Server2000的组成及基本功能。

2、掌握SQL Server2000的登录及注册。

3、掌握SQL Server2000企业管理器的使⽤⽅法。

4、熟悉查询分析器的基本使⽤。

⼆、实验预习1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些?答:DBMS是位于⽤户和操作系统之间的⼀层数据管理软件。

常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。

2、SQL Server 2000(2005)的安装步骤?答:以企业版安装为例,步骤为:将企业版安装光盘插⼊光驱后,出现以下提⽰框。

请选择“安装 SQL Server 2000 组件”出现下⾯对话框后,选择 "安装数据库服务器" 。

选择 "下⼀步",然后选择 "本地计算机" 进⾏安装。

在 "安装选择" 窗⼝,选择 "创建新的SQL Server实例..."。

对于初次安装的⽤户,应选⽤这⼀安装模式,不需要使⽤ "⾼级选项" 进⾏安装。

"⾼级选项"中的内容均可在安装完成后进⾏调整。

在 "⽤户信息" 窗⼝,输⼊⽤户信息,并接受软件许可证协议。

在“安装定义”窗⼝,选择“服务器和客户端⼯具”选项进⾏安装。

在“实例名”窗⼝,选择“默认”的实例名称。

在“安装类型”窗⼝,选择“典型”安装选项,并指定“⽬的⽂件夹”。

在 "服务账号" 窗⼝,请选择 "对每个服务使⽤统⼀账户..." 的选项。

在 "⾝份验证模式" 窗⼝,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。

SQL Server数据库技术及应用(第二版)第6章思考习题答案

SQL Server数据库技术及应用(第二版)第6章思考习题答案

思考习题一、选择题1.下列不是混合身份验证模式的优点的是(D )。

A 创建了Windows操作系统上的另外一个安全层次B 支持更大范围的用户C 一个应用程序可以使用多个SQL Server登录口令D 一个应用程序只能使用一个SQL Server登录口令2.如果要对所有的登录名进行数据库访问控制,可采用的方法是(BD)。

A 在数据库中增加guest用户,并对其进行权限设置B 为每个登录名指定一个用户,并对其进行权限设置C 为每个登录名设置权限D 为每个登录名指定一个用户,为用户指定同一个角色,并对角色进行权限设置3.服务器角色中,权限最高的是(D )。

A processadminB securityadminC dbcreatorD sysadmin4.具有最高操作权限的数据库角色是(D )。

A db_securityadminB ddladminC publicD db_owner5.最消耗系统资源的备份方式是(A )。

A 完全备份B 差异备份C 事务日志备份D 文件组备份6.下列关于数据库备份的描述,正确的是(A )。

A 数据库备份可用于数据库崩溃时的恢复B 数据库备份可用于将数据从一个服务器转移到另一个服务器C 数据库备份可用于记录数据的历史档案D 数据库备份可用于转换数据7.能将数据库恢复到某个时间点的备份类型是(C )。

A 完整数据库备份B 差异备份C 事务日志备份D 文件组备份8.下列关于差异备份的描述,错误的是(BD )。

A 备份自上一次完整备份以来数据库改变的部分。

B 备份自上一次差异备份以来数据库改变的部分。

C 差异备份必须在完整备份的基础上进行。

D 备份自上一次日志备份以来数据库改变的部分。

9.下列关于数据库角色的描述,正确的是(D )。

A 将具有相同访问需求或权限的用户组织起来,以提高管理效率。

B 将用户添加到SQL Server内置的角色中,可以实现不同的管理权限。

C 一个用户只能属于一种角色。

实验6 SQL函数与T-SQL编程参考答案

实验6 SQL函数与T-SQL编程参考答案

实验六 SQL函数与T-SQL编程参考答案多对比多思考,达举一反三,方能灵活掌握。

最惧死记硬背,不问原由--1.集合函数--统计选修了课程的学生人数select count(distinct sno) as '选修了课程的学生数' FROM SCgo--用GROUP BY统计不同职称的教师人数select prof,count(tno) from teacher group by profgo--COMPUTE BY统计不同职称的教师人数select tno,prof from teacher order by prof compute count(tno) by profgo--2、数据类型转换函数--从Teacher表中查询教师的电话号码中的最后8位数字能被9整除的教师信息select *from teacherwhere convert(int,right(mobile,8))%9=0go--查询学生的学号、姓名、出生日期。

要求将出生日期转化为整数后显示select sno,sname,convert(int,birthdate) 出生日期的内部存储形式 FROM student--3、日期函数--把当前日期转换为样式 101select getdate()select convert(char(10),getdate(),101) as CurrentDatego--计算所有学生的平均年龄select avg(datediff(yy,birthdate,getdate())) as 平均年龄from studentgo--查询最近一年选修课程的课程号select distinct cnofrom scwhere datediff(yy,SDate,getdate())<=2go--分别获取数据库当前时间的年、月、日、小时select year(getdate()) as cur_year,month(getdate()) as cur_month,day(getdate()) as cur_day,datepart(hh,getdate()) as cur_hourgo--4、数学函数--以2为随机数种子产生一随机数select rand(2) as rand_sek_2go--对数字1223.75进行整数的四舍五入和取整select round(1223.75,0) as Int1,FLOOR(1223.750) as Int2go--5、字符串函数--求在字符串‘They call me the hunter'中从5个字符开始,"the"出现的位置select charindex('the','They call me the hunter',5) as h_start_positiongo返回Teacher表中的所有学生的姓氏(不重复)。

实验6 SQL 查询附答案

实验6 SQL 查询附答案

实验六SQL 查询一、实验目的:1.熟练掌握SELECT语句的语法格式2.掌握联接的几种方法3.掌握子查询的表示和执行4.能够对SELECT查询结果进行分组、排序及统计5.能够运用T-SQL语句对表进行数据的插入、修改、删除6.能够通过导入/导出向导进行数据的导入导出二、实验内容:利用实验四中的数据库做如下操作:1.在“学生表”中,找出性别为“男”的学生记录,字段包括“姓名”、“出生日期”和“专业”。

2.在“课程表”中,找出“课程名”中包含“计算机”三个字的课程。

3.在“成绩表”中,找出“课程编号”为“001”的课程成绩前三名学生。

4.在“成绩表”、“学生表”和“课程表”中,找出“课程编号”为“001”的课程成绩在[80,90]之间的学生的姓名、课程名和成绩。

5.在“学生表”中,找出“专业”为“计算机软件”、“电子商务”专业的学生信息。

6.统计“计算机应用基础”课程的平均分。

7.查找各门课程的修课人数。

8.在“成绩表”中,找出课程编号为“001”的这门课程的所有学生的分数以及最高分、最低分和平均分。

9.找出所有女生的“计算机应用基础”这门课的成绩,包括字段:姓名、课程名、成绩。

10.查找“成绩表”中,课程编号为“001”的成绩高于平均分的所有学生的学号、姓名、课程名和成绩。

11.查找“成绩表”中,高于各门课程平均分的学生信息。

12.查找“课程表”中,没有被学生修课的课程信息。

13.将“课程表”中的课程编号为“001”的学分增加1学分。

14.删除学号为“20030101”学生的相关信息。

三、实验过程:启动“查询分析器”,在其文本窗口中输入相应的Transcat-SQL语句,分析并执行,观察输出结果。

1.Use 学生select 姓名,出生日期,专业 from 学生表 where 性别='男'2.use 学生select * from 课程表 where 课程名 like '%计算机%'3.use 学生select top 3 * from 成绩表 where 课程编号='001' order by 成绩 desc4.Use 学生select a.姓名,c.课程名,b.成绩 from 学生表 as a join 成绩表 as b on b.课程编号=001 and a.学号=b.学号 and b.成绩 between 80 and 90join 课程表 as c on c.课程编号=b.课程编号select * from 学生表 where 专业 in ('计算机软件','电子商务')6.use 学生select avg(成绩)as 平均成绩 from 成绩表 as a join 课程表 as bon b.课程名='计算机应用基础' and b.课程编号=a.课程编号select 课程编号,count(学号)as 修课人数 from 成绩表 group by 课程编号8.use 学生select * from 成绩表 where 课程编号=001compute max(成绩),min(成绩),avg(成绩)9.use 学生select a.姓名,b.课程名,c.成绩 from 学生表 as a join 成绩表 as con a.学号=c.学号 and a.性别='女'join 课程表 as bon b.课程编号=c.课程编号 and b.课程名='计算机应用基础'10.use 学生select a.学号,a.姓名,b.课程名,c.成绩 from 课程表 as b join 成绩表 as c on b.课程编号=c.课程编号 and c.课程编号=001 and c.成绩>(select avg(成绩) from 成绩表 where c.课程编号=001)join 学生表 as a on a.学号=c.学号select * from 成绩表 as a where 成绩>(select avg(成绩) from 成绩表 as b where a.课程编号=b.课程编号)12.use 学生select * from 课程表 where not exists(select * from 成绩表 where 成绩表.课程编号=课程表.课程编号)13.use 学生update 课程表 set 学分=学分+1 where 课程编号=001delete 成绩表 where 学号='20030101'。

数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析第一篇:数据库sql课后练习题及答案解析先创建下面三个表:(book表)(borrow表)(reader表)1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。

2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。

3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。

4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。

5)查找书名以”计算机”开头的所有图书和作者(WRITER)。

6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。

##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。

8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。

9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

##10)* 找出借阅了一书的借书证号。

11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。

12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。

#13)求”科学出版社”图书的最高单价、最低单价、平均单价。

##14)* 求”信息系”当前借阅图书的读者人次数。

#15)求出各个出版社图书的最高价格、最低价格和总册数。

#16)分别找出各单位当前借阅图书的读者人数及所在单位。

17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。

18)分别找出借书人次数多于1人次的单位及人次数。

19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。

20)查询经济系是否还清所有图书。

如果已经还清,显示该系所有读者的姓名、所在单位和职称。

数据库实验答案_实验六.docx

数据库实验答案_实验六.docx

实验六视图、索引文件的应用(2学时)一、实验目的1.掌握SQL Server中的视图创建及删除的方法,。

2.加深对视图和SQL Server图表作用的理解3.掌握创建主键(PRIMARY KEY)约束的基本操作4.掌握创建唯一(UNIQUE)约束的操作5.掌握创建表间的参照关系的操作6.掌握创建和管理索引的基本操作7.掌握索引文件的使用方法二、实验仪器计算机、SQLServer2000软件,U盘(学生自备)。

三、实验原理1.视图(D启动数据库服务软件SQL Server 2000的查询分析器,用CREATE VIEW语句建立视图(2)用DROP VIEW语句删除视图(3)用SELECT命令对视图建立查询.语法格式同基本表的查询.(4)利用UPDATE INSERT DELETE等命令更新视图数据.语法格式同基本表的数据更新.2.索引(1)使用T-SQL语句中的CREATE INDEX,既可以创建聚集索引或非聚集索引。

(2)使用T-SQL语句中的DROP INDEX,可以从当前数据库中删除一个或多个索引。

(3)用企业管理器创建查看索引、器重命名索引、删除索引四、实验内容与步骤1.视图具体操作任务:(D 利用企业管理器和查询分析器使用SQL语言建立视图(运行并观察结果)1)建立计算机系学生的视图IS_XS文的.LKW) *MKH)O iH* 声!n=Wl叵回2. 鲂i* 夔_]»33 £Z 21 鼠2)建立计算机系选修了 98432号课程的学生的视图IS S1$ SQL Server Enterpry Manage* - '.9 'u.sl'中SIS握~,(local/'g 3t«t(F) «D(W) »»(H)3)将学生的学号及他的平均成绩定义为一个视图S_G.也SQL Server Enterpns« Manager - *»_g"(2)使用SQL语言在查询分析器中查询视图(运行并观察结果)2)在S_G中查询平均成绩在80分以上的学生的学号和平均成绩(3)使用SQL语言在查询分析器中更新视图(运行并观察结果)■fi •□(**) E9至口豆卢!'■r--- @1 2)删除计算机系学生视图IS_S中学号为30531的记录.■□(W) »WH)(4)使用SQL语言在查询分析器中删除视图(运行并观察结果)1)通过企业管理器删除IS_S1视图2)通过SQL命令删除IS S1视图2.索引与数据完整性操作任务(1)利用企业管理器创建和删除主键(PRIMARY KEY)约束1)对xs表中的学号设置主键SQL S«»ver Enterpn*e Manage* - ?St+S «i" fuAS 'xiq" 111 '(local),t) «D(W) WRBIH)列公式2)删除xs表中的学号主键在'sno,前方三角按右键,选择取消'主键’即可(2)通过企业管理器创建索引1)对xs表按照学号建立主键索引,索引组织方式为非聚集索引;2)对xs表按姓名建立唯一索引,索引组织方式为聚集索引;3)对xs kc表按照学号+课程号建立唯一索引,索引组织方式为聚集索引。

实验6-SQL-查询附答案

实验6-SQL-查询附答案

实验六SQL 查询一、实验目的:1.熟练掌握SELECT语句的语法格式2.掌握联接的几种方法3.掌握子查询的表示和执行4.能够对SELECT查询结果进行分组、排序及统计5.能够运用T-SQL语句对表进行数据的插入、修改、删除6.能够通过导入/导出向导进行数据的导入导出二、实验内容:利用实验四中的数据库做如下操作:1.在“学生表”中,找出性别为“男”的学生记录,字段包括“姓名”、“出生日期”和“专业”。

2.在“课程表”中,找出“课程名”中包含“计算机”三个字的课程。

3.在“成绩表”中,找出“课程编号”为“001”的课程成绩前三名学生。

4.在“成绩表”、“学生表”和“课程表”中,找出“课程编号”为“001”的课程成绩在[80,90]之间的学生的姓名、课程名和成绩。

5.在“学生表”中,找出“专业”为“计算机软件”、“电子商务”专业的学生信息。

6.统计“计算机应用基础”课程的平均分。

7.查找各门课程的修课人数。

8.在“成绩表”中,找出课程编号为“001”的这门课程的所有学生的分数以及最高分、最低分和平均分。

9.找出所有女生的“计算机应用基础”这门课的成绩,包括字段:姓名、课程名、成绩。

10.查找“成绩表”中,课程编号为“001”的成绩高于平均分的所有学生的学号、姓名、课程名和成绩。

11.查找“成绩表”中,高于各门课程平均分的学生信息。

12.查找“课程表”中,没有被学生修课的课程信息。

13.将“课程表”中的课程编号为“001”的学分增加1学分。

14.删除学号为“”学生的相关信息。

三、实验过程:启动“查询分析器”,在其文本窗口中输入相应的Transcat-SQL语句,分析并执行,观察输出结果。

1.Use 学生select 姓名,出生日期,专业 from 学生表 where 性别='男'2.use 学生select * from 课程表 where 课程名 like '%计算机%'3.use 学生select top 3 * from 成绩表 where 课程编号='001' order by 成绩 desc4.Use 学生select a.姓名,c.课程名,b.成绩 from 学生表 as a join 成绩表 as b on b.课程编号=001 and a.学号=b.学号 and b.成绩 between 80 and 90 join 课程表 as c on c.课程编号=b.课程编号5.use 学生select * from 学生表 where 专业 in ('计算机软件','电子商务')6.use 学生select avg(成绩)as 平均成绩 from 成绩表 as a join 课程表 as bon b.课程名='计算机应用基础' and b.课程编号=a.课程编号7.use 学生select 课程编号,count(学号)as 修课人数 from 成绩表 group by 课程编号8.use 学生select * from 成绩表 where 课程编号=001compute max(成绩),min(成绩),avg(成绩)9.use 学生select a.姓名,b.课程名,c.成绩 from 学生表 as a join 成绩表 as c on a.学号=c.学号 and a.性别='女'join 课程表 as bon b.课程编号=c.课程编号 and b.课程名='计算机应用基础'10.use 学生select a.学号,a.姓名,b.课程名,c.成绩 from 课程表 as b join 成绩表 as c on b.课程编号=c.课程编号 and c.课程编号=001 and c.成绩>(select avg(成绩) from 成绩表 where c.课程编号=001)join 学生表 as a on a.学号=c.学号11.use 学生select * from 成绩表 as a where 成绩>(select avg(成绩) from 成绩表 as b where a.课程编号=b.课程编号)12.use 学生select * from 课程表 where not exists(select * from 成绩表 where 成绩表.课程编号=课程表.课程编号)13.use 学生update 课程表 set 学分=学分+1 where 课程编号=00114.use 学生delete 成绩表 where 学号='20030101'。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六:数据表综合查询
四、实验内容
以数据库原理实验4数据为基础,请使用T-SQL 语句实现进行以下操作:
1.查询名字中第2个字为‘向’的学生姓名和学号及选修的课程号、课程名;
select a.sname,a.sno,o,ame from student a,course b,sc c where a.sname like'_向%'and a.sno=c.sno and o=o
2.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修
课程号及成绩;
Select a.sno,sname,sdept,o,grade from student a,course b,sc c Where ame in('数学','大学英语')and a.sno=c.sno and o=o
3.查询缺少成绩的所有学生的详细情况;
Select*from student
Where sno in(select sno from sc where grade is null)
4.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;
Select*from student
Where sage<>(select sage from student where sname='张力')
5.按照‚学号,姓名,所在院系,已修学分‛的顺序列出学生学分的获得情况。

其中已修学分为考试已经及格的课程学分之和;
Select a.sno,sname,sdept,sum(ccredit)as已修学分from student a,course b,sc c
Where grade>60 and a.sno=c.sno and o=o
group by a.sno,sname,sdept
6.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;Select a.sno,a.sname,o from student a,sc c
where Cno in(select Cno from sc where sno in(select sno from student where sname='张力'))
and a.sno=c.sno
7.查询只被一名学生选修的课程的课程号、课程名;
select cno,cname from course
where cno in(select cno from sc group by cno having COUNT(*)=1)
8.使用嵌套查询出选修了‚数据结构‛课程的学生学号和姓名;
select sno,sname from student
where sno in(select sno from sc where Cno=(select Cno from course where cname='数据结构'))
9.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和
院系;
select sname,sage,sdept from student
where sage<any(select sage from student where sdept='cs') and sdept<>'cs'
10.使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;select sname from student
where sage<all(select sage from student where sdept='wm') and sdept<>'wm'
11.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;select b.*from student a,student b
where a.sname='张力'and a.sdept=b.sdept

SELECT*FROM Student
WHERE Sdept IN(SELECT Sdept FROM Student WHERE sname='张力')
12.使用集合查询列出CS系的学生以及性别为女的学生学号及姓名;
SELECT sno,sname from student
where sdept='cs'
union
select sno,sname from student
where ssex='女'
13.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;
SELECT *
FROM Student WHERE Sdept='CS' EXCEPT
SELECT *
FROM Student WHERE Sage <=19 SELECT *
FROM Student WHERE Sdept='CS' INTERSECT SELECT *
FROM Student WHERE Sage <=19
14.使用集合查询列出选修课程1的学生学号集合与选修课程2的学生学号集合
的交集;
SELECT Sno FROM SC WHERE Cno='1'
Intersect
SELECT Sno FROM SC WHERE Cno='2'。

相关文档
最新文档