《sqlserver数据库》复习提纲.docx
《《sqlserver数据库》复习提纲.docx》由会员分享,可在线阅读,更多相关《《sqlserver数据库》复习提纲.docx(30页珍藏版)》请在冰豆网上搜索。
《sqlserver数据库》复习提纲
1创建表
1、在bookdb下创建employees(员工信息表),该表包含如下字段(见如下表格)
列名
数据类型
是否允许为空
说明
id
int
否
员工编号,主键
name
char(20)
否
姓名
gender
char
(2)
否
性别
salary
money
否
工资
createtableemployees
(
idintprimarykey,
namechar(20)notnull,
genderchar
(2)notnull,
salarymoneynotnull
)
Go
2、在bookdb下创建students(学生信息表),该表包含如下字段(见如下表格)
列名
数据类型
是否允许为空
说明
id
int
否
学生编号,主键
name
char(20)
否
姓名
gender
char
(2)
否
性别
age
smallint
否
年龄
createtablestudents
(
idintprimarykey,
namechar(20)notnull,
genderchar
(2)notnull,
agesmallintnotnull
)
Go
3、在bookdb下创建parents(家长信息表),该表包含如下字段(见如下表格)
列名
数据类型
是否允许为空
说明
id
int
否
家长编号,主键
father_name
char(10)
否
父亲姓名
mother_name
char(10)
否
母亲姓名
phone
char(15)
否
家庭电话
createtableparents
(
idintprimarykey,
father_namechar(10)notnull,
mother_namechar(10)notnull,
phonechar(15)notnull
)
go
4、在bookdb下创建teachers(教师信息表),该表包含如下字段(见如下表格)
列名
数据类型
是否允许为空
说明
id
int
否
教师编号,主键
name
char(20)
否
教师姓名
gender
char
(2)
否
教师性别
subject
char(10)
否
所教科目
createtableteachers
(
idintprimarykey,
namechar(20)notnull,
genderchar
(2)notnull,
subjectchar(10)notnull
)
go
5、在bookdb下创建products(商品表),该表包含如下字段(见如下表格)
列名
数据类型
是否允许为空
说明
pno
INT
否
商品编号,主键
pname
CHAR(20)
否
商品名称
price
FLOAT
否
单价
num
INT
否
数量
createtableproducts
(
pnointprimarykey,
pnamechar(20)notnull,
pricefloatnotnull,
numintnotnull
)
go
6、在bookdb下创建banks(银行储户信息表),该表包含如下字段(见如下表格)
列名
数据类型
是否允许为空
说明
deposit_id
int
否
储蓄账户编号,主键
name
char(20)
否
储蓄账户名称
deposit
money
否
储蓄额
createtablebanks
(
deposit_idintprimarykey,
namechar(20)notnull,
depositmoneynotnull
)
go
㈡DML操作
1.在图书表(books)中插入如下记录:
图书编号
Isbn号
图书名称
图书作者
出版社
单价
118801
TP4/15
计算机网络
黄丽君
高教出版社
21.80
insertintobooks
values(118801,'TP4/15','计算机网络','黄丽君','高教出版社',21.80)
go
2.在图书表(books)中插入如下记录:
图书编号
Isbn号
图书名称
图书作者
出版社
单价
118802
TP6/15
Linux基础
唐延庆
科学出版社
30.80
insertintobooks
values(118802,'TP6/15','Linux基础','唐延庆','科学出版社',30.80)
go
3.在读者表(readers)中插入如下记录:
图书证编号
所在部门
姓名
性别
职位
所在地址
116
经贸系
刘莹
女
讲师
1#414
insertintoreaders
values(116,'经贸系','刘莹','女','讲师','1#414')
go
4.在读者表(readers)中插入如下记录:
图书证编号
所在部门
姓名
性别
职位
所在地址
119
服装系
白雪
女
讲师
1#413
insertintoreaders
values(119,'服装系','白雪','女','讲师','1#413')
go
5.在借阅表(borrowing)中插入如下记录:
图书证编号
图书编号
借阅时间
113
445502
2013-11-11
insertintoborrowing
values(113,445502,'2013-11-11')
go
6.在借阅表(borrowing)中插入如下记录:
图书证编号
图书编号
借阅时间
114
665544
2013-10-21
insertintoborrowing
values(114,665544,'2013-10-21')
go
7.将读者表(readers)中,借书证号为111的职位更改为‘副教授’
updatereaders
setposition='副教授'
wherelibcardno=111
go
8.将读者表(readers)中,借书证号为112的职位更改为‘教授’
updatereaders
setposition='教授'
wherelibcardno=112
go
9.将图书表(books)中,图书编号为112233的单价更新为16.80
updatebooks
setprice=16.80
wherebno=112233
go
10.将图书表(books)中,图书编号为112233的单价更新为22.80
updatebooks
setprice=22.80
wherebno=112233
go
11.将读者表(readers)中,图书证编号为114的所在地址更新为‘1#323’
updatereaders
setaddress='1#323'
wherelibcardno=114
go
12.将读者表(readers)中,图书证编号为113的所在地址更新为‘1#123’
updatereaders
setaddress='1#123'
wherelibcardno=113
go
13.将图书表(books)中,图书编号为118802的图书信息删除
deletefrombooks
wherebno=118802
go
14.将图书表(books)中,图书编号为118801的图书信息删除
deletefrombooks
wherebno=118801
go
15.将读者表(books)中,图书证编号为116的读者信息删除
deletefromreaders
wherelibcardno=116
go
16.将读者表(books)中,图书证编号为119的读者信息删除
deletefromreaders
wherelibcardno=119
go
17.将借阅表(borrowing)中,图书证编号为111的借阅信息删除
deletefromborrowing
wherelibcardno=111
go
18.将借阅表(borrowing)中,图书证编号为114的借阅信息删除
deletefromborrowing
wherelibcardno=114
go
㈢数据查询
1.查询姓李的读者姓名及所在单位
selectname,companyfromreaders
wherenamelike'李%'
go
2.查询图书表(books)中,所有的书名及出版单位
selectbname,pressfrombooks
go
3.查找‘高教出版社’的所有图书,并按价格降序排列
select*frombooks
wherepress='高教出版社'
orderbypricedesc
go
4.查询所有图书的最高单价
selectmax(price)as'最高单价'frombooks
go
5.查询姓张的读者姓名及所在单位
selectname,companyfromreaders
wherenamelike'张%'
go
6.查询图书表(books)中的所有图书并按图书编号的降序排列
select*frombooks
orderbybnodesc
go
7.查找‘科学出版社’的所有图书
select*frombooks
wherepress='科学出版社'
8.查询所有图书的平均单价
selectavg(price)as'平均单价'frombooks
go
9.查询不同书名的图书名称
selectdistinctbnamefrombooks
go
10.查询读者表中性别为‘男’和‘女’的人数各占几个
selectcount(libcardno)as'人数',sexas'性别'
fromreaders
groupbysex
go
11.查询日期‘2013-11-11’以后借出的图书名称
selectbnamefrombooksinnerjoinborrowing
onbooks.bno=borrowing.bno
whereborrowing.bordate>'2013-11-11'
go
12.查询读者表的所有信息,并按图书证号的降序排列
select*fromreaders
orderbylibcardnodesc
go
13.查询藏书中的价值总额
selectsum(price)as'藏书价值总额'frombooks
go
14.查询图书证号为‘113’的老师借阅图书的名称
selectbnamefrombooksinnerjoinborrowing
onbooks.bno=borrowing.bno
whereborrowing.libcardno=113
15.查询到目前为止没有借书的读者信息
select*fromreaders
wherelibcardnonotin(selectlibcardnofromborrowing)
go
16.查询各出版社图书的最高价格
selectmax(price)as'图书最高价格',pressas'出版社名称'
frombooks
groupbypress
go
17.查询借阅了图书编号为‘665544’的借阅者姓名
selectr.nameas'读者姓名'
fromreadersrinnerjoinborrowingb
onr.libcardno=b.libcardno
whereb.bno=665544
go
18.查询没有借阅图书的图书证号
selectlibcardnofromreaders
wherelibcardnonotin(selectlibcardnofromborrowing)
go
19.查询最高图书单价与最低图书单价之间的差值
selectmax(price)-min(price)as'最高单价与最低单价的差值'frombooks
go
20.查询单价介于18元和20元之间的图书信息
select*frombooks
wherepricebetween18and20
go
21.查询借阅了图书编号为‘112233’的借阅者姓名
selectr.nameas'读者姓名'
fromreadersrinnerjoinborrowingb
onr.libcardno=b.libcardno
whereb.bno=112233
go
22.统计借阅图书的不同图书证号
selectdistinctlibcardnofromborrowing
23.查询图书单价高于平均单价的图书信息
select*frombooks
whereprice>(selectavg(price)frombooks)
go
24.查询单价介于10元和19元之间的图书信息
select*frombooks
wherepricebetween10and19
go
25.查询书名以‘计算机’开头的所有图书及作者
selectbname,authorfrombooks
wherebnamelike'计算机%'
go
26.显示图书表的前两条记录
selecttop2*frombooks
go
27.查询所有借阅了图书的姓名及单位(重复信息不显示)
selectdistinctr.name,pany
fromreadersrinnerjoinborrowingb
onr.libcardno=b.libcardno
go
28.查询所有图书的最低单价
selectmin(price)as'最低单价'frombooks
go
29.查询藏书中各个出版单位的册数、价值总额
selectpressas'出版社名称',
count(press)as'出版社册数',
sum(price)as'价格总和'frombooks
groupbypress
go
30.查询图书证号为‘111’的老师借阅图书的名称
selectbnamefrombooks
wherebno=(selectbnofromborrowingwherelibcardno=111)
31.查询图书单价低于平均单价的图书信息
select*frombooks
whereprice<(selectavg(price)frombooks)
go
32.查询有哪些不重复的图书的名称
selectdistinctbname
frombooks
33.查询书名以‘数据库’开头的所有图书及作者
selectbname,authorfrombooks
wherebnamelike'数据库%'
go
34.显示读者表的前两条记录
selecttop2*fromreaders
go
35.查询所有借阅了图书的读者姓名及职称(重复信息不显示)
selectdistinctr.name,r.position
fromreadersrinnerjoinborrowingb
onr.libcardno=b.libcardno
go
36.查询所有图书的最高单价
selectmax(price)as'最高单价'frombooks
go
37.查询藏书中各个出版单位的册数、价值总额
selectpressas'出版社名称',
count(press)as'出版社册数',
sum(price)as'价格总和'frombooks
groupbypress
go
38.查询图书证号为‘112’的老师借阅图书的名称
selectbnamefrombooks
wherebnoin(selectbnofromborrowingwherelibcardno=112)
39.查询图书单价高于平均单价的图书信息
select*frombooks
whereprice>(selectavg(price)frombooks)
go
40.统计读者表中职称为‘讲师’的人数
selectcount(position)as'讲师人数'fromreaders
whereposition='讲师'
41.查询作者不同的作者人数
selectcount(distinctauthor)as'不同作者人数'frombooks
go
42.查询读者表中职称为‘教授’和‘讲师’的人数各占几个
selectcount(position)as'人数',position
fromreaders
groupbyposition
go
43.查询日期‘2013-11-11’以前借出的图书名称
selectbnamefrombooksinnerjoinborrowing
onbooks.bno=borrowing.bno
whereborrowing.bordate<'2013-11-11'
go
44.查询读者表的所有信息,并按图书证号的升序排列
select*fromreaders
orderbylibcardnoasc
go
45.查询藏书中的价值总额
selectsum(price)as'藏书价值总额'frombooks
go
46.查询图书证号为‘112’的老师借阅图书的名称
selectbnamefrombooksinnerjoinborrowing
onbooks.bno=borrowing.bno
whereborrowing.libcardno=112
47.查询借书的读者信息
select*fromreaders
wherelibcardnoin(selectlibcardnofromborrowing)
go
48.查询各出版社图书的最高价格
selectmax(price)as'图书最高价格',pressas'出版社名称'
frombooks
groupbypress
go
4数据完整性
1.将图书表(books)的bno和bisbn列设为联合主键,名称为pk_books_bno_bisbn
altertablebooks
altercolumnbnointnotnull
go
altertablebooks
altercolumnbisbnchar(20)notnull
go
altertablebooks
addconstraintpk_books_bno_bisbnprimarykey(bno,bisbn)
go
2.在图书表(books)中,添加price列的check约束,规定价格>0
altertablebooks
addconstraintck_books_pricecheck(price>0)
go
3.将图书表(books)的bno和bisbn列设为联合主键,名称为pk_books_bno_bisbn
altertablebooks
altercolumnbnointnotnull
go
altertablebooks
altercolumnbisbnchar(20)notnull
go
altertablebooks
addconstraintpk_books_bno_bisbnprimarykey(bno,bisbn)
go
4.在读者表(readers)中,添加position列为默认值约束,默认值设为‘讲师’
altertablereaders
addconstraintdf_books_positiondefault('讲师')forposition
go
5.将读者表(readers)的libcardno列设为主键,名称为pk_readers_libcardno
altertablereaders
altercolumnlibcardnointnotnull
go
altertablereaders
addconstraintpk_readers_libcardnoprimarykey(libcardno)
go
6.在图书表(books)中,添加company列的默认值约束,默认值为‘信息系’
altertablereaders
addconstraintdf_books_companydefault('信息系')forcompany
go
7.将读者表(readers)的libcardno列设为主键,名称为pk_readers_libcardno
altertablereaders
altercolumnlibcardnointnotnull
go
altertablereaders
addconstraintpk_readers_libcardnoprimarykey(libcardno)
go
8.将图书表(books)的bno设为唯一性约束
altertablebooks
addconstraintuk_books_bnounique(bno)
go
9.在读者表(readers)中,添加position列为默认值约束,默认值设为‘副教授’
altertablereaders
addconstraintdf_books_positiondefault('副教授')forposition
go
10.在图书表(books)中,添加company列的默认值约束,默认值为‘经贸系’
altertablereaders
addconstraintdf_books_companydefault('经贸系')forcompany
go
11.将图书表(books)的bno列设为主键,名称为pk_books_bno
altertablebooks
altercolumn