实验5sql语句练习-图书馆数据库答案

实验5sql语句练习——图书馆数据库

实验5 sql语句练习——图书馆数据库

实验目的

(1)了解SQL Server数据库的逻辑结构和物理结构;

(2)了解表的结构特点;

(3)了解SQL Server的基本数据类型;

(4)了解空值概念;

(5)学会在企业管理器中创建数据库和表;

(6)学会使用T-SQL语句创建数据库和表。

(7)学会使用T-SQL语句更新数据。

(7)学会使用T-SQL语句创建多种查询。

实验准备

首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。

其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。

然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。

此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DATABASE 语句。

实验内容

假设有5本书

设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图:

图书表结构

列名说明数据类型约束说明

书号图书唯一的编号定长字符串,长度为10主键

书名图书的名称定长字符串,长度为50空值

作者图书的编著者名定长字符串,长度为30空值

出版社图书的出版社定长字符串,长度为30空值

单价出版社确定的图书的单价浮点型,Float空值

假设有10位读者

借阅表结构

Create database Lab05

(2)用Sql语句创建上述3个表

create table book

(

bookId char(10)primary key,

bookName varchar(50),

bookWriter varchar(30),

bookPublish varchar(30),

bookPrice float

)

create table reader

(

readerId char(10) primary key,

readerName varchar(8)not null,

readerSex char(2)not null,

readerOfficeTel char(8),

readerDepartment varchar(30)

)

create table 借阅表

(

readerId char(10),

bookId char(10),

checkOutTime char(8),

checkInTime char(8),

primary key(readerId,bookId),

foreign key (readerId) references reader(readerId),

foreign key (bookId) references book(bookId),

)

(3)基于图书馆数据库的3个表,用sql语言完成一下操作:

1)为图书表增加一列“ISBN”,数据类型为CHAR(10)

alter table book add ISBN char(10)

2)为刚添加的ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为‘7111085949’ALTER TABLE book ADD CONSTRAINT ISBNDEF DEFAULT ('7111085949') FOR ISBN 3)删除图书表中ISBN列增加的缺省值约束

alter table book drop ISBNDEF

4)删除图书表中新增的ISBN列

ALTER TABLE book DROP COLUMN ISBN

5)查询全体图书的图书号、书名、作者、出版社和单价

select bookId,bookName,bookWriter,bookPublish,bookPrice

from book

6)查询全体图书的信息,其中单价打8折,并设置该列的别名为‘打折价’

select bookId,bookName,bookWriter,bookPublish,(bookPrice*0.8) as打折价

from book

7)显示所有借阅者的读者号,并去掉重复行

select distinct readerId

from 借阅表

8)查询所有单价在20—30元之间的图书信息

select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBN

from book

where bookPrice between 20 and 30

9)查询机械工业出版社、科学出版社、人民邮电出版社的图书信息

select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBN

from book

where bookPublish in('机械工业出版社' , '科学出版社','人民邮电出版社') 10)查询既不是机械工业出版社、人民邮电出版社、也不是科学出版社出版的图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBN

from book

where bookPublish not in('机械工业出版社' , '科学出版社','人民邮电出版社') 11)查询姓名的第二个字符是’建’,并且只有2个字的读者的读者号及姓名

select readerId,readerName

from reader

where readerName like '_建'

12)查询姓名不是以‘王’、‘张’或‘李’开头的所有读者的读者号及姓名

【方式一】查询出来的结果有问题!

select readerId,readerName

from reader

where readerName not in ('王%','张%','李%')

【方式二】

select readerId,readerName

from reader

where readerName not in

(

select readerName

from reader

where readerName like'王%'or readerName like'张%'or readerName like'李%' )

13)查询无归还日期的借阅信息

select book.bookId,book.bookName,reader.readerId,

reader.readerName,借阅表.checkOutTime as 借书时间,

借阅表.checkInTime as 还书时间

from 借阅表,book,reader

where 借阅表.bookId = book.bookId

and 借阅表.readerId = reader.readerId

and 借阅表.checkInTime is null

14)查询机械工业出版社图书的平均价格、最高价、最低价

select avg(bookPrice)as 平均价格,max(bookPrice) as 最高价 ,min(bookPrice) as 最低价

from book

where bookPublish = '机械工业出版社图书'

15)查询读者的基本信息及借阅情况

select reader.readerId,reader.readerName ,借阅表.bookId,book.bookName,book.bookPublish

from reader , 借阅表 ,book

where reader.readerId = 借阅表.readerId

and book.bookId = 借阅表.bookId

and 借阅表.readerId ='1000000007'

16)查询至少借阅过1本机械工业出版社出版的图书的读者的读者号、姓名、书名及借阅本数,并按借阅本书多少降序排列

select r.Rno,Rname,count(borrow.Bno) 借阅册数

from borrow,b,r

where b.bno=borrow.bno and press='机械工业出版社' and borrow.rno=r.rno

group by r.rno,Rname

order by count(borrow.Bno) desc

17)查询与‘王小平’的办公电话相同的读者的姓名

/* 使用“自连接方式”求解 */

select b.readerName,b.readerId,a.readerOfficeTel

from reader a, reader b

where a.readerName like '王小平'and a.readerOfficeTel = b.readerOfficeTel

/*

18)查询所有单价小于平均单价的图书的书号、书名及出版社

select bookId,bookName,bookPublish,bookPrice

from book

where bookPrice <

(

select avg(bookPrice) as averagePrice

from book

)

19)查询‘科学出版社’的图书单价比‘机械工业出版社’最高单价还高的图书书名及单价select bookId,bookName,bookPublish,bookPrice

from book

where bookPublish like '科学出版社' and bookPrice >

(

select max(bookPrice)

from book

where bookPublish = '机械工业出版社'

)

20)查询‘科学出版社’的图书中单价比‘机械工业出版社’最低单价高的图书书名及单价select bookId,bookName,bookPublish,bookPrice

from book

where bookPrice <

(

select max(bookPrice)

from book

where bookPublish = '机械工业出版社'

)

and bookPublish like '科学出版社'

21)创建机械工业出版社图书的视图

CREATE VIEW 机械工业出版社View

AS

SELECT bookId,bookName,bookPrice

FROM book

WHERE bookPublish = '机械工业出版社'

22)创建一个借阅统计视图,名为CountView,包含读者的读者号和总借阅本数CREATE VIEW CountView

AS

SELECT readerId as 读者号,count(*) as 总借阅本数

FROM 借阅表

GROUP BY readerId

23)创建一个借阅统计视图,名为CountView10,包含借阅总本数打于2的读者号和总借阅本数CREATE VIEW 借阅统计视图View

AS

SELECT readerId as 读者号,count(*) as 总借阅本数

FROM 借阅表

GROUP BY readerId

HAVING COUNT(*) >2

sql语句练习题及答案

sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库School ,其各自的数据结构如下: 学生Student (Sno,Sname,Ssex,Sage,Sdept) 序号列名含义数据类型长 度 1 Sno 学号字符型 (char) 6 2 Sname 姓名字符型 (varchar) 8 3 Ssex 性别字符型 (char) 2 4 Sage 年龄整数 (smallint) 5 sdept 系科字符型 (varchar) 15 课程表course(Cno,Cname,Cpno,Ccredit) 序列名含义数据类型长

号度 1 Cno 课程 号字符型(char) 4 2 cname 课程 名字符型(varchar) 20 3 Cpno 先修 课字符型(char) 4 4 Ccredi t 学分短整数 (tinyint) 学生选课SC(Sno,Cno,Grade) 序号列名含义数据类型长 度 1 Sno 学号字符型 (char) 6 2 Cno 课程 号字符型(char) 4 3 Grade 成绩小数 (decimal) 12, 2 二设定主码 1 Student表的主码:sno

2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句 2在student表中插入信息 学号姓名性别年龄系科 4001 赵茵男20 SX 4002 杨华女21 JSJ 3 删除student表中的元组 4在数据库school中删除关系student 5在student表添加属性sbirthdate 类型datetime 练习 Delete 1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’;

3-SQL语句练习题参考答案

标准SQL语言 一、选择题 1、下面关于SQL标准的叙述中,不正确的是(B )。 A.SQL语言是集数据定义、数据操纵、数据控制功能为一体的语言。 B.SQL语言是一种高度过程化的语言。 C.SQL标准规定数据库是按三级模式结构构建。 D.SQL语言是关系型数据库的标准语言。 E.SQL语言是面向集合的语言。 2、SQL语言中,修改基本表结构的语句是( B )。 A.UPDATE B.ALTER C.DROP D.CREATE 3、SQL语言中,删除基本表结构的语句是( C )。 A.DELETE B.ALTER C.DROP D.CREATE 4、下面关于“视图”的叙述中,不正确的是( C )。 A.视图是一种“虚表”,它的数据被存放在基本表中。 B.视图提供了逻辑数据独立性。 C.不能通过视图来更新数据库中的数据。 D.视图能提供对数据的安全保护。 5、下面关于SELECT语句的叙述中,不正确的是(C)。 A.SELECT产生的结果是一个集合。 B.HA VING子句必须与GROUP BY子句一起使用。 C.可以省略FROM子句。 D.可以省略WHERE子句。 二、填空题 1、在使用INSERT语句向一个表中插入元组时,“值列表”中值的个数、(顺序)、类型必须与“列名表”保持一致。 2、在向一个表中插入元组时,对于未指定默认值且(不能取空值)的字段必须赋值。 3、向表中插入元组时,主键的值不能取(NULL )值。 4、在使用DELETE语句时,如果不指定(where 条件)就会将整个表的数据删除。 5、视图是从一个或几个基本表或(视图)导出的表,它与基本表不同,是一个虚表。 三、判断题 1、SQL语言是面向集合操作的语言。√ 2、可以通过视图来查询数据,但不能通过视图来更新数据库中的数据。× 3、在SQL Server数据库系统中,向表中插入元组时,系统自动为具有标识属性的列赋值。√ 4、在SQL Server数据库系统中,向表中插入元组时,对取值类型为timestamp(时间戳)的列不能赋值,系统自动赋值。√

数据库实验5答案

实验五:数据库综合查询 一、实验目的 1.掌握SELECT语句的基本语法和查询条件表示方法; 2.掌握查询条件种类和表示方法; 3.掌握连接查询的表示及使用; 4.掌握嵌套查询的表示及使用; 5.了解集合查询的表示及使用。 二、实验环境 已安装SQL Server企业版的计算机(120台); 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SELECT语句的基本语法格式和执行方法; 2.了解连接查询的表示及使用; 3.了解嵌套查询的表示及使用; 4.了解集合查询的表示及使用; 5.完成实验报告; 五、实验内容及步骤 1.利用Transact-SQL嵌套语句实现下列数据查询操作。 1) 查询选修了计算机体系结构的学生的基本信息。 select*from student where Sno in(select Sno from course where Cno in(select Cno from sc where Cname='计算机体系结构')) 2) 查询年龄比李勇小的学生的学号和成绩。 select a.sno,grade from student a,course where a.sno=course.sno and sage<(select sage from student where sname='李勇') 3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。 select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1') 4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。 select*from student where dnum<>'D3'AND SAGE>all(select

sql数据库习题与答案

sql数据库习题与答案 SQL数据库习题与答案 SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言。在数据库管理系统中,SQL可以用于执行各种操作,如插入、更新、删除和查询数据。对于学习SQL的人来说,练习SQL数据库习题是非常重要的。下面将为大家提供一些常见的SQL数据库习题以及相应的答案。 1. 查询所有学生的信息 答案:SELECT * FROM students; 2. 查询所有学生的姓名和年龄 答案:SELECT name, age FROM students; 3. 查询所有学生的姓名,并按照年龄从小到大进行排序 答案:SELECT name FROM students ORDER BY age; 4. 查询学生表中年龄大于18岁的学生信息 答案:SELECT * FROM students WHERE age > 18; 5. 查询学生表中姓“张”的学生信息 答案:SELECT * FROM students WHERE name LIKE '张%'; 6. 查询学生表中的姓名和对应的课程名称 答案:SELECT https://www.360docs.net/doc/a219233377.html,, https://www.360docs.net/doc/a219233377.html, FROM students INNER JOIN course ON students.course_id = course.id; 7. 查询学生表中每个班级的学生人数 答案:SELECT class, COUNT(*) FROM students GROUP BY class; 通过以上SQL数据库习题与答案的练习,可以帮助大家更好地理解和掌握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 student set Sname='李咏' where Sname='李勇' 3.修改课程“数据处理”的学分为3学分; 3.update course set Ccredit=3 where Cname ='数据处理' 4.将选修课程“1”的同学成绩加5分; 4.update sc set Grade =Grade+5 where Cno='1' 5.将选修课程“大学英语”的同学成绩加5分; update sc set Grade=Grade+5 from course,sc where https://www.360docs.net/doc/a219233377.html,o=https://www.360docs.net/doc/a219233377.html,o and https://www.360docs.net/doc/a219233377.html,ame='大学英语'

学生选课数据库SQL语句练习题(详细分解答案)

一、设有一数据库,包括四个表:学生表(Student)、课程表 (Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 表1-1数据库的表结构 表(一)Student 属性名数据类 型可否为 空 含义 Sno Char(3)否学号(主 键)Sname Char(8)否学生姓名Ssex Char(2)否学生性别Sbirthday datetime可学生出生年 月 Class Char(5)可学生所在班 级 表(二)Course 属性名数据类型可否为 空 含义Cno Char(5)否课程号(主 键)Cname Varchar(10)否课程名称Tno Char(3)否教师编号 (外键)表(三)Score 属性名数据类型可否为 空 含义 Sno Char(3)否学号(外 键) Cno Char(5)否课程号(外 键)

Degree Decimal(4,1)可成绩 主码:Sno+ Cno 表(四)Teacher 含义 属性名数据类型可否为 空 Tno Char(3)否教师编号 (主键)Tname Char(4)否教师姓名Tsex Char(2)否教师性别Tbirthday datetime可教师出生年 月 Prof Char(6)可职称Depart Varchar(10)否教师所在部 门 表1-2数据库中的数据 表(一)Student Sno Sname Ssex Sbirthday class 95033 108曾华男1977-09- 01 105匡明男1975-10- 95031 02 95033 107王丽女1976-01- 23 95033 101李军男1976-02- 20 109王芳女1975-02- 95031 10 95031 103陆君男1974-06- 03 表(二)Course Cno Cname Tno

数据库原理及应用(SQL-Server-2008)全书答案--清华大学出版社-马建红-李占波主编第五

第五章习题及实验答案 习题答案 一、选择题 1、A 2、A 3、B 4、B 5、D 6、B 7、A 8、C 二、填空题 1、用该数据库管理系统自带的SQL Server Management Studio可视化地创建数据表、使用Transact-SQL语言直接创建数据表 2、DROP TABLE 3、DEFAULT约束、CHECK约束、主键约束、UNIQUE约束、外键约束 三、简答题 1、答:使用CREATE TABLE语句创建数据表的格式如下: CREATE TABLE 数据表名字( 字段名称1 (对字段的定义部分) 字段名称2 (对字段的定义部分) ...... 字段名称n (对字段的定义部分) ); 2、答:不一样。DELETE是删除数据表中的所有数据,而DROP是删除数据表的结构。 3、答:INSERT INTO table_or_view_name (column_list) VALUES (expression) 4、答:域完整性,也可以称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常是经过使用有效性检查来实现的,还可以通过限制数据类型、格式或者可能的取值范围来实现。例如,设置员工进入公司的日期大于员工的出生日期,在“性别”列中,限制其取值范围为“男”和“女”,这样就不能在该列输入其他一些无效的值。最简单的域完整性方法是数据类型,例如,在出生日期列中定义该列的数据类型是DATETIME,则该列就不会出现其他一些不符合日期格式的数据。 实体完整性,也可以称为行完整性,要求表中的所有行有一个唯一的标识符,这种标识符一般称为主键值。例如,对于所有的中国公民来说,居民身份证号码是唯一的,使用居民身份证号码可以唯一地确定某一个人,因此可以把公民的居民身份证号码作为主键对待。主键值是否能够被修改或表中的全部数据是否能够被全部删除都要依赖于主键表和其他表之

实验五答案SQL语句查询

1、列出所有不姓刘的所有学生 select sname,sno from student where sname not like'刘%' 2、列出姓“沈“且全名为3个汉字的学生 select sname from student where sname like'沈____' 3、显示在1985年以后出生的基本信息 select sno学号,sname姓名,出生年份=year(getdate())-sage from student where year(GETDATE())>1985 4、按照“性别、学号、姓名、年龄、院系“的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男生,性别为女显示为女生,其它显示为”条件不明“ select ssex= case when ssex='男'then'男生' when ssex='女'then'女生' else'情况不明' end,sno,sname,sage,sdept from student 5、查询出课程名含有‘数据‘字串的所有课程基本信息 select sno,https://www.360docs.net/doc/a219233377.html,o,cname,grade,ccredit from sc,course where cname like'数据%'and https://www.360docs.net/doc/a219233377.html,o=https://www.360docs.net/doc/a219233377.html,o 6、显示学号第八位或者第九位是1、2、3、4或9的学生的学号、姓名、性别、年龄、及院系select sno,sname,ssex,sage,sdept from student where sno like'2005150[1-4]%'or sno like'2005150[0-9][1-4]' or sno like'20051509%'or sno like'2005150[0-9]9' 7、列出选修了‘1‘课程的学生,按成绩的降序排列 select student.sno,sname,grade from student,sc where Cno='1' order by Grade desc 8、列出同时选修‘1‘号课程和’2‘号课程的所有学生的学号 select sno,Cno from sc where cno=1 or cno=2 9、列出课程表中全部信息,按先选修课的升序排列 select* from course order by cpno asc

sql数据库练习题参考答案

第1章数据库基础 练习题 一、单项选择题 1.C 2.A 3.C 4.D 5.D 6.B 7.A 8.B 9.B 10.D 11.C 12.A 13.C 14.B 15.A 16.B 17.A 18.D 19.B 20.B 21.A; D 22.A 23.C 24.D 25.B 26.B 27.B 28.D 29.B 30.B 二、填空题 1.概念;数据 2.属性 3.码 4.一对一联系;一对多(或多对一)联系;多对多联系 5.候选码 6.候选码 7.关系名(属性1,属性2,…,属性n) 8.关系数据结构;关系操作集合;关系完整性约束 9.实体;参照;用户定义的;实体;参照 10.空值 11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段 12.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的依据。 13.将需求分析得到的用户需求抽象为信息结构即概念模型。 14.将概念结构进一步转化为某一DBMS支持的数据模型,并对其进行优化。 15.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。 三、指出以下各缩写的英文意思和中文意思 1.DB:Database 2.DBMS:Database Management System 3.RDBMS: 4.DBS:Database System 5.DBA:Database Administrator

实验5数据库的安全性控制(含答案)

实验五数据库的安全性控制 一、实验目的: 1. 通过实验加深对数据安全性的理解,并掌握SQL Server 中有关用户登录的认证以及管理办法; 2.通过实验加深对数据库存储控制机制的理解,通过自主存取控制进行权 限管理,熟悉 SQL Server 中角色管理; 3.通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。 二、实验内容 1.设置 SQL Server 的混合安全认证模式。在SQL Server 中的对象资源管理器中设置安全认证模式。 2.在 SQL Server 中,利用“对象资源管理器”创建一个名为“U1”的登录用户和数据库用户,密码为111,并允许其登录S-T 数据库。

3.在 SQL Server中,利用代码创建一个名为“ U2”的登录用户,密码为 111;

其相应的数据库用户名为lucky ,并允许其登录S-T 数据库。 4.用“ u1”用户名登录后,执行对students表的查询操作,说明执行结果,并分析原因(建议:在启动一个SQL Server 2008窗口)。 分析:没有对u1 进行其他操作的授权,只能登录而不能进行插入,修改等操作 5.将 students表的操作权限select 和 insert 赋予数据库用户u1,并允许其向其它用户授权。

6.以“u1”用户名登录,执行对students和 teacher表的查询操作,将该运行结果进行分析。 分析:对比第 4 题,对 U1 进行授权后可以进行相应的操作 7.执行下列代码后,分析用户u2 能否对 s_t 数据库的 student 表进行 select 和 update操作,为什么?并用相应的语句验证。

SQL数据库实验五答案

(1) insert into Student(Sno,Sname,Ssex,Sdept) values('06011','王文娟','女','计算机') (2) 不能将值NULL 插入列'Sno',表'AA.dbo.Student';列不允许有Null 值。INSERT 失败。语句已终止。 因为Sno为主码,主码不能为空。 (3) create table CP_Student (Sno char(5)Not Null, Sname varchar(10)Null, Ssex char(2)Null, Sbirth smalldatetime Null, Sdept varchar(20)Null, Total decimal(4,1)Null) (4) insert into CP_Student select* from Student where Sdept='计算机'OR Sdept='外国语' (5) update Teacher set Tname='王芳龄' where Tname='王芳' (6) update Teacher set Tpay=Tpay*(1+0.02) where Tprof='副教授' (7) update SC set Grade=Grade+1 where Sno=(select Sno from Student where Sname='李强') (10) delete from Student where Sno='06011' (11) \delete from CP_Student

where Sbirth<='1987' (12) delete from CP_Student (13) select* into CP_Teacher from Teacher where Tno IS NULL (14) insert into CP_Teacher select* from Teacher where Tprof='副教授' (15) insert into CP_Teacher select* from Teacher where Tprof<>'副教授' (16) SELECT。。。INTO。。。和INSERT。。。INTO。。。都是将源表中的记录插入到目标表中,SELECT。。。INTO。。。在插入记录的时候目标表不存在,而是在插入记录时自动创建。 INSERT。。。INTO。。。在插入记录的时候目标表存在

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(外码)

SQL数据库实验和参考答案

数据库实验和参考答案 上机实验七 1.声明一个字符串型的局部变量,并对其赋值:‘我的变量’,然后显示出此值。 declare @a char(10) set @a='我的变量' --select @a as 变量的值 print @a 2.编程实现如下功能: 1)声明两个整形的局部变量:@i1和@i2,对@i1赋初值:10,@i2的值为:@i1乘以5,再显示@i2

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

set @i=@i+1 end print @sum 3)输出100以内的素数。 declare @i smallint,@j smallint,@k smallint set @i=2 while(@i<=100) begin set @k=0 set @j=2 while(@j<@i) begin if(@i%@j=0) begin set @j=@I

end set @j=@j+1 end if @k=0 print @I set @i=@i+1 end 4)将字符数在20以内的字符串变量C的值逆序输出。要求输出界面为: declare @i varchar(20),@j int,@k varchar(20) set @j=1 set @k='' while @j<=len(@i)

实验5 sql语句练习——图书馆数据库答案

实验5sql语句练习——图书馆数据库 实验5sql语句练习——图书馆数据库 实验目得 (1)了解SQLServer数据库得逻辑结构与物理结构; (2)了解表得结构特点; (3)了解SQL Server得基本数据类型; (4)了解空值概念; (5)学会在企业管理器中创建数据库与表; (6)学会使用T—SQL语句创建数据库与表。 (7)学会使用T-SQL语句更新数据。 (7)学会使用T—SQL语句创建多种查询. 实验准备 首先要明确,能够创建数据库得用户必须就是系统管理员,或就是被授权使用CREATE DA TABASE语句得用户。 其次创建数据库必须要确定数据库名、数据库大小(最初得大小、最大得大小、就是否允许增长及增长方式)与存储数据库得文件. 然后,确定数据库包含哪些表,以及所包含得各表得结构,还要了解SQL Server得常用数据类型,以创建数据库得表。 此外还要了解两种常用得创建数据库、表得方法,即在企业管理器中创建与使用T-SQL得CREATE DAT ABASE语句. 实验内容 假设有5本书 设有一图书馆数据库,其中包括3个表,即图书表、读者表与借阅表。三个表得结构如图: 图书表结构 列名说明数据类型约束说明 书号图书唯一得编号定长字符串,长度为10 主键 书名图书得名称定长字符串,长度为50 空值 作者图书得编著者名定长字符串,长度为30 空值 出版社图书得出版社定长字符串,长度为30 空值 单价出版社确定得图书得单价浮点型,Float 空值 读者表结构 列名说明数据类型约束说明 读者号读者唯一得编号定长字符串,长度为10 主键

(1)用Sql语句创建图书馆数据库 Create databaseLab05 (2)用Sql语句创建上述3个表 createtable book ( ﻩbookId char(10)primary key, ﻩbookNamevarchar(50), ﻩbookWritervarchar(30), bookPublishvarchar(30), ﻩbookPricefloat ) create tablereader ( readerId char(10)primarykey, readerName varchar(8)notnull, readerSex char(2)not null, ﻩreaderOfficeTel char(8), readerDepartment varchar(30) ) create table借阅表 ( readerIdchar(10), bookIdchar(10), checkOutTime char(8), checkInTime char(8), primarykey(readerId,bookId), ﻩforeignkey (readerId) references reader(readerId), foreignkey (bookId)references book(bookId), ) (3)基于图书馆数据库得3个表,用sql语言完成一下操作: 1)为图书表增加一列“ISBN”,数据类型为CHAR(10) alter table book add ISBN char(10) 2)为刚添加得ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为‘7111085949' ALTER TABLE bookADDCONSTRAINT ISBNDEFDEFAULT ('7111085949’) FOR

数据库中SQL查询语句习题含的答案

查询问题:设教学数据库Education有三个关系:学生关系S (SNO t SNAME, AGE, SEX, SDEPT);学习关系SC (SNO, CNO, GRADE);课程关系C (CNO, CNAME, CDEPT, TNAME) (5)检索至少选修课程号为C2和C4的学生学号;SELECT Sno FROM SC X, SC Y WHERE X. Sno=Y. Sno AND X. Cno=

select sno,cno from sc where grade is null; 7.查所有有成绩的学生学号和课程号。 select sno,cno from sc where grade is not null; 8.查询计算机系年龄在20岁以下的学生姓名。 select sname from student where sdept= 'cs' and sage<20; 9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 select sno, grade from sc where cno= ' 3 ' order by grade desc;10.查询学生总人数。 select count(*) from student; 11.查询选修了课程的学生人数。 select count(distinct sno) from sc; 12.计算1号课程的学生平均成绩。 select avg(grade) from sc where cno= ' 1 '; 13.查询选修1号课程的学生最高分数。 select max(grade) from sc where cno= ' 1 '; 14.查询学生200215012选修课程的总学分数。 select sum(grade) from sc,course where sno= ' 200215012 ' and sc o=course o;

数据库SQL语句练习题含答案

SQL语句练习 练习5. 1. 2: 基于不断滚动的电影数据库的实例: Movie( 电影名title,拍摄年代year ,长度length, inColor ,制片厂名studioName, 制片人证书号producerC# ) StarsIn(电影名movieTitle,拍摄年份movieYear ,影星名starName) MovieStar (姓名name,地址address,性别gender ,生日birthdate) MovieExec( 姓名name,地址address ,证书号cert # ,净资产netWorth ) Studio(姓名name, 地址address,总裁证书号presC# ) 请写出下列SQL 查询语句: * ( a) 找出米高梅制片公司(MGM studios)的地址。 SELECT address AS Studio_Address FROM Studio WHERE name = 'MGM'; ( b) 找出桑德拉·布洛克( Sandra Bullock ) 的出生日期( birthdate) 。SELECT birthdate AS Star_Birthdate FROM MovieStar WHERE name = 'Sandra Bullock'; * ( c) 找出在1980 年拍摄过电影的所有影星, 或者拍摄过电影名中含有“Love”的电影的所有影星。 SELECT starName FROM StarsIn WHERE movieYear = 1980 OR movieTitle LIKE '%Love%'; ( d) 找出净资产至少1 000 万美元的所有行政长官。

相关主题
相关文档
最新文档