数据库知识点总结.docx
- 文档编号:7304503
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:13
- 大小:25.98KB
数据库知识点总结.docx
《数据库知识点总结.docx》由会员分享,可在线阅读,更多相关《数据库知识点总结.docx(13页珍藏版)》请在冰豆网上搜索。
数据库知识点总结
题型:
一、选择题(每题1分,共10分)
二、简答题:
(每题10分,共30分)
三、应用题:
(第1题15分,第2题45分,共60分)
考试范围:
第一章
1、数据、的定义描述事物的符号记录称为数据。
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
2、数据库、数据库系统的特点(了解)
3、DBMS的功能(了解)
4、实体间联系的三种类型(1:
1,1:
n,m:
n)
5、E-R图的画法
a、不必画出中间步骤。
b、标出实体间联系的类型。
c、只需画出关键字对应的属性。
6、数据库系统的组成、核心
7、数据库设计的步骤
第二章
认识关系运算符
第五章
1、数据库的创建CREATEDATABASE
2、创建表CREATETABLE
3、数据插入INSERT
4、数据修改UPDATE
5、数据删除DELETE
第六章
1、相关子查询和非相关子查询之间的区别
2、视图的优点(了解)
3、数据查询SELECT:
1)内连接
2)分组、统计函数
3)排序
4)非相关子查询
第七章
1、触发器的写法
小结(第一章课件34到56第五章课件64到75
第六章课件(SELECT语句,内连接,分组、统计函数,排序,非相关子查询)重点第七章课件58到71)
数据(DATA,简称D)
定义:
描述事物的符号记录称为数据。
数据库(DataBase,简称DB)
.定义:
是长期储存在计算机内的、有组织的、
可共享的数据集合。
.特点:
(1)数据库中的数据按照一定的数据模型组织、
描述和储存。
(2)具有较小的冗余度。
(3)较高的数据独立性和易扩展性,并可为各种用
户共享。
数据库管理系统(DBMS)
主要功能:
1)数据定义功能:
。
2)数据组织、存储和管理功能:
3)数据操纵功能:
4)数据库的事务管理和运行管理
5)数据库的建立和维护功能
简答题:
1.相关子查询和非相关子查询之间的区别
a)非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
b)相关子查询是内层子查询条件依赖于外层父查询的某个属性值的子查询,外部查询执行一行,子查询就执行一次。
2.数据库设计的步骤
1需求分析;2概念结构设计;3逻辑结构设计;4数据库物理设计数据库实施;5数据库运行和维护
3.视图的优点(了解)
(1)为用户集中数据,简化用户的数据查询和处理。
(2)屏蔽数据库的复杂性。
(3)简化用户权限的管理。
(4)便于数据共享。
(5)可以重新组织数据以便输出到其他用程序中。
例5-1创建一个名为BookSys的数据库。
例5-2创建一个名为KEJI_DB的数据库。
要求
有三个文件,其中,主数据文件为10MB,最
大大小为50MB,每次增长20%;辅助数据文件
属于文件组Fgroup,文件为10MB,大小不受
限制,每次增长10%;事务日志文件大小为
20MB,最大100MB,每次增长10MB。
文件存储
在‘c:
\db’路径下。
CREATEDATABASEKEJI_DB/*数据库名*/
ONPRIMARY/*主文件组*/
(NAME='KEJI_DB_Data1',/*主文件逻辑名称*/
FILENAME='c:
\db\KEJI_DB_Data1.mdf',/*主文件物理名称*/
SIZE=10mb,
MAXSIZE=50mb,
FILEGROWTH=20%),
FILEGROUPFgroup/*文件组*/
(NAME='KEJI_DB_Data2',/*主文件逻辑名称*/
FILENAME='c:
\db\KEJI_DB_Data2.ndf',/*主文件物理名称*/
MAXSIZE=UNLIMITED,/*增长不受限制*/
SIZE=10Mb,
FILEGROWTH=10mb)
LOGON
(NAME='KEJI_DB_Log',/*日志文件逻辑名称*/
FILENAME='c:
\db\KEJI_DB_Log.ldf',
/*日志文件物理名称*/
SIZE=20mb,
MAXSIZE=100mb,
FILEGROWTH=10mb)
使用SQL语句
(1)修改数据库内容
语法:
ALTERDATABASEdatabase_name
{ADDFILE
[TOFILEGROUPfilegroup_name]
/*在文件组中增加数据文件*/
|ADDLOGFILE
/*增加事务日志文件*/
|REMOVEFILElogical_file_name
/*删除数据文件*/
|ADDFILEGROUPfilegroup_name
/*增加文件组*/
|REMOVEFILEGROUPfilegroup_name
/*删除文件组*/
|MODIFYFILE
/*修改文件属性*/
|MODIFYNAME=new_dbname
/*更新数据库名称*/}
例:
使用触发器判断插入的工资数据,如果
工资超过100,000则不允许插入。
CREATETABLEtrig_example
(idINT,
nameVARCHAR(10),
salaryMONEY)
GO
CREATETRIGGERinsertrigONtrig_example
FORINSERT
AS
IF(SELECTCOUNT(*)FROMINSERTED
WHEREsalary>100000)>0
BEGIN
PRINT'数据插入错误:
您试图插入一个大于$100,000的工资数据!
'
ROLLBACKTRANSACTION--事务回滚
END
`
1.使用后级触发器的插入和删除
例题:
使用(后级)触发器判断插入的工资数据,如果工资超过100,000则不允许插入。
CREATETABLEtrig_example
(idINT,
nameVARCHAR(10),
salaryMONEY)
GO
CREATETRIGGERinsertrigONtrig_example
FORINSERT
AS
IF(SELECTCOUNT(*)FROMINSERTED
WHEREsalary>100000)>0
BEGIN
PRINT'数据插入错误:
您试图插入一个大于$100,000的工资数据!
'
ROLLBACKTRANSACTION--事务回滚
END
练习:
使用后级触发器对数据删除操作进行检查,如果删除工资大于5000的记录时提示错误信息,并回滚到删除前的状态。
Insertintotrig_exampleValues(1,'tom',2000)
Insertintotrig_exampleValues(2,'marry',6000)
Insertintotrig_exampleValues(3,'rose',8000)
CREATETRIGGERdeletedONtrig_example
FORdelete
AS
IF(SELECTCOUNT(*)FROMdeleted
WHEREsalary>100000)>0
BEGIN
PRINT'数据插入错误:
您试图删除一个大于$100,000的工资数据!
'
ROLLBACKTRANSACTION--事务回滚
END
.使用前级级触发器的插入和删除
1.使用前级触发器判断插入trig_example表的工资数据,如果工资超过100,000则不允许插入。
CREATETRIGGERinsert_trig_exampleONtrig_example
Insteadofinsert
AS
declare@salarymoney
select@salary=salaryfrominserted
IF@salary>100000
print'wongdata!
'
else
begin
insertintotrig_example
select*frominserted
end
2.使用前级触发器对trig_example表的数据删除操作进行检查,如果删除工资大于5000的记录时提示错误信息,不删除记录;否则删除相应记录。
CREATETRIGGERdelete_trig_exampleONtrig_example
Insteadofdelete
AS
declare@idint,@salarymoney
select@id=idfromdeleted
IF@salary>100000
print'删除的数据大于!
'
else
begin
deletetrig_example
where@id=id
end
五、(12分)某商店管理涉及商店、商品和职工三个实体,它们分别具有下列属性:
商店:
商店编号,店名,店址,店经理
商品:
商品编号,商品名,单价,产地
职工:
职工编号,职工名,性别,工资
这些实体间的联系如下:
百货公司管辖若干个连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。
职工参加某商店工作有开始时间,商店销售商品的有月销售量。
①请画出商店、商品和职工的E—R图。
②将该E—R图转换为关系数据模型。
答:
实体:
商店(商店编号,店号,店址,店经理)(0.5分)
商品(商品编号,商品名,单价,产地)(0.5分)
职工(职工编号,职工名,性别,工资)(0.5分)
联系:
P1-商店销售商品的有销售量间(0.5分)
P2-职工参加某商店工作的开始时(0.5分)
ER图:
(5分)
关系模式集:
商店模式(商店编号,店号,店址,店经理)(0.5分)
商品模式(商品编号,商品名,单价,产地)(0.5分)
职工模式(职工编号,职工名,性别,工资,商店编号,开始时间)(1分)
P1模式(商店编号,商品编号,月销售量)(0.5分)
2.使用sql语句创建表authors,结构如下表所示(本题8分)
列名数据类型大小是否为空默认值说明
authorIDint4N编号(主键),自动增长
authorNamenvarchar50N姓名
Phonenvarchar13Y电话
addressnvarchar255Y地址
2.createtableauthors
(authoridintidentity(1,1)primarykeynotnull,
authornamenvarchar(50)notnull,
phonenvarchar(13)null,
addressnvarchar(255))
3.使用SQL语句对2中创建的authors表进行如下修改:
(每小题5分,共15分)
(1)添加Sex列char
(2),city列varchar(20)。
(2)删除city列。
(3)修改作者信息表authors中的address列将该列的属性的长度更改为500。
3.
(1)altertableauthors
addsexchar
(2)null,citynvarchar(20)null;
(2)altertableauthorsdropcolumncity
(3)altertableauthors
altercolumnaddressnvarchar(500)notnull
5.表结构的修改
▪使用SQL语句将ygqk表的“姓名”列的数据类型改为varchar,长度为20;
▪使用SQL语句在xmqk表中添加新列"立项时间",类型为datetime;
▪使用SQL语句删除xmqk表中的"立项时间"列。
▪useyeel
▪go
▪altertableygqk
▪altercolumnnamevarchar(20)
▪
▪useyeel
▪go
▪altertablexmqk
▪addlixiangshijiandatetime
▪
▪useyeel
▪go
▪altertablexmqk
▪dropcolumnlixiangshijian
4.表中数据的修改和删除
使用SQL语句将ygqk表中第一条记录的"邮政编码"改为'450044'
删除ygqk表中出生日期在'1960-1-1'日之前的员工信息;
useyeel
go
updateygqk
setzip='450044'
useyeel
go
deleteygqk
wherebirthday<'1960-1-1'
6.1.1最简单的SELECT语句
练习:
1.改造例6-12,结果表中的列命名为‘sno-sname’。
2.计算‘成绩表’中每位学生的总成绩。
3.计算‘成绩表’中每位学生的平均成绩。
4.计算‘成绩表’中每位学生的总成绩,并将结果填入原表中。
5.计算‘成绩表’中每位学生的平均成绩(要求:
有不及格成绩的不进行平均成绩的计算),并将结果填入原表中。
selectsno学号,数学+英语+数据库+操作系统总成绩
from成绩表/*2*/
selectsno学号,(数学+英语+数据库+操作系统)/4平均成绩
from成绩表/*3*/
altertable成绩表
add总成绩float
update成绩表
set总成绩=数学+英语+数据库+操作系统/*4*/
altertable成绩表
add平均成绩float
update成绩表
set平均成绩=(数学+英语+数据库+操作系统)/4
selectsno学号,(数学+英语+数据库+操作系统)/4平均成绩
from成绩表
where数学>=60and英语>=60and数据库>=60and操作系统>=60
/*5*/
6.1.4函数的使用
练习:
1.查询男生(女生)的人数。
2.查询‘计算06’班的最小年龄
selectcount(*)
fromstudent
wheressex='男'
selectmax(sbirthday)
fromstudent
6.1.5查询结果排序
练习:
1.查询所有学生的信息,将结果按系别降序、
班级升序排列。
2.查询‘信息系’年龄最大的3个学生的信息
select*
fromstudent
orderbydepartdesc
selecttop3sno,sname,sage,depart
fromstudent
wheredepart='信息系'
orderbysagedesc
6.1.6使用分组
练习:
1.查询人数大于等于3的班级。
2.查询各个姓氏的学生人数。
selectclass,count(*)
fromstudent
groupbyclass
havingcount(*)>=3
selectleft(sname,1)as姓氏,count(*)as人数
fromstudent
groupbyleft(sname,1)
6.2.1连接查询
2.查询学生的学号,所选课程的课程号、课程名和学分。
3.查询学生的学号、姓名,所选课程的课程号、课程名和成绩信息。
selectsno,o,cname,credit
fromcourseinnerjoinscore
ono=o
/*92页题*/
selectsname,student.sno,o,cname,degree
fromcourse,score,student
wherestudent.sno=score.snoando=o
/*92页题*/
6.2.1连接查询
3.查询每门课程间接先行课的先行课
selecto,frist.cpno,second.cpno,third.cpno
from课程表frist,课程表second,课程表third
wherefrist.cpno=oandsecond.cpno=oandthird.cpnoisnotnull
/*109页题*/
6.2.3子查询
练习:
1.查询选修了‘C语言’的学生学号。
selectsno
fromscore
wherecno=
(selectcno
fromcourse
wherecname='C语言')
/*139页题*/
6.2.3子查询
3.查询选修了“C语言”的学生姓名
selectsname
fromStudent
wheresnoin
(selectsnofromScorewherecno=
(selectcnofromCoursewherecname='c语言'))
/*145页第三题*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 知识点 总结