SQL复习资料Word下载.docx
- 文档编号:18596042
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:11
- 大小:52.16KB
SQL复习资料Word下载.docx
《SQL复习资料Word下载.docx》由会员分享,可在线阅读,更多相关《SQL复习资料Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
Ok。
现在开始转换:
其一,学生、课程、成绩,一人一个,不偏袒,这就是三个表。
其二,学生一个,然后把成绩这个给课程,注意的是,重复的就不要写了,这就是两个表。
关系模式,我就不写,同志们练习下。
10.数据库文件:
[1].主数据文件。
每个数据库有且仅有一个主数据文件,默认扩展名“.mdf”
[2].辅助数据文件。
每个数据库可以有多个也可没有辅助数据文件,默认扩展名“.ndf”
[3].日志文件。
每个数据库至少有一个也可以有多个日志文件,默认扩展名“.ldf”
11.文件组:
[1].主文件组。
包含主要数据文件和任何没明确指派给其他文件组的其他文件。
[2].用户定义文件组。
在“CREATEDATABASE”和“ALTERDATABASE”语句中使用"
FILEGROUP"
关键字制定的文件组。
每个数据库中都有一个文件组作为默认文件组运行,一般没有特别指定,主文件组就是默认文件组。
12.数据库创建(我不知道老师考不考这个,但是其中的数据是默认创建数据库的数据,文件地址里面不要出现中文)
CREATEDATABASETEST1
ON
(
NAME='
TEST1_DATA'
FILENAME='
'
SIZE=3MB,
FILEGROWTH=1MB
)
LOGON
TEST_log'
SIZE=1MB,
FILEGROWTH=10%
我没有给文件地址,编写的时候不要出现中文字符,英文不要出现拼写错误。
13.表与表结构(任何一张表中都必须有个关键字)
表是最主要的数据库对象,它是用来存储数据的逻辑结构,由行和列组成,也称二维表
表结构:
组成表的各列的名称和数据类型
记录:
表中的若干行数据,是表的”值“,一行为一个记录
字段:
构成记录的每个数据项
空值:
表示未知、不可用或将在以后添加的数据
一列允许为空,则向表中添加数据的时候,该列可不用给出具体值
一列不允许为空,则在向表中添加数据的时候,该列必须给出具体值
关键字:
若表中记录的某一个字段或字段组合能唯一标示记录,则该字段或字段组合为候选关键字
表中有若干个候选关键字,则选择一个为主关键字
表中有且仅有一个候选关键字,则该候选关键字也是主关键字
14.创建表
CREATETABLEZLJ
学号char(8)notnullprimarykey,
姓名char(8)notnull,
总学分intnull
注意格式,ZLJ为表名,自己取,学号之类的看题目需要,数据类型必须给出,
是否为空,先看题目是否明细,其次,一般编号、姓名之类的是不为空的,
对于主键冲突,处理方法primarykey(学号,姓名)
15.修改增加一列
ALTERTABLEZLJADD奖学金等级intNULL
16.删除删除添加的那一列
ALTERTABLEZLJDROPCOLUMN奖学金等级
17.修改修改添加的列的属性
ALTERTABLEZLJALTERCOLUMN奖学金等级char(8)
18.删除删除表
DROPTABLEZLJ
19.插入数据
INSERTINTOZLJVALUES('
081101'
'
赵连杰'
NULL)
插入数据,若创建表时,数据设定为空时,可不用添加该数据,但是在插入语句中,该数据项不能不写,填写"
NULL"
20.删除指定记录
DELETEFROMZLJWHERE学号='
21.修改记录
UPDATEZLJSET总学分='
100'
WHERE学号='
22.关系运算这一块我就不好去写了,同志们看书吧72页
注意编写格式
23.聚合函数就几个常用的用法都差不多
SUMAVG总和和平均值
SELECTSUM(CJ)FROMCJB
MAXMIN最大值和最小值
SELECTMAX(CJ)FROMCJB
COUNT统计总数
SELECTCOUNT(CJ)FROMCJB
24.where子句
[1].表达式比较
<
>
=,<
=,>
=,<
>
!
=,!
<
,or,and,not
当两个表达式值都不为空时,比较运算返回true或者false
当两个表达式值都为空或有一个为空时,比较运算返回unknown
SELECT*FROMXSBWHEREZXF>
50(XSB表中总学分大于)
[2].模式匹配
%:
代表个或多个字符
_:
代表单个字符
[]:
指定属于范围([a-z],[0-9])或集合([abcdef])中的任何单个字符
[^]:
指定不属于范围([^a-z],[^0-9])或集合([^abcdef])中的任何单个字符
LIKE和NOTLIKE作用相反
SELECT*FROMXSBWHEREXHLIKE'
%1_[12345]'
(xsb表中学号倒数第三个数字为,倒数第一个数字在到之间的学生信息)
[3]范围比较
betweenand,IN
SELECT*FROMXSBWHEREZXFBETWEEN30AND50
(xsb表中总学分在到之间的学生信息)
SELECT*FROMXSBWHEREZYIN('
计算机'
通信工程'
无线电'
(xsb表中专业是计算机或者通信工程或者无线电的学生信息)
[4]空值比较
SELECT*FROMXSBWHEREZXFISNULL
(xsb表中总学分不定的学生信息)
25.子查询、from语句、连接这一块,我不好怎么去讲,我把所有老师讲过的收集之后放在群共享里面
同志们下载下来仔细看下,不懂就问这一块主要就是SQL语句,没有要注意的问题
26.GROUPBY这个我得强调下,使用groupby就不能使用“*”,不能使用where子句,有条件就用having
groupby是根据某列对数据表分组,就不能使用*去查询所有项,只能查询分组的数据项和聚合函数
FALSE:
SELECT*,AVG(CJ)FROMCJBGROUPBYXBWHEREAVG(CJ)>
60
TRUE:
SELECTXH,AVG(CJ)FROMCJBGROUPBYXBHAVINGAVG(CJ)>
(CJB表中平均成绩在以上的学号和平均成绩)
27ORDERBY排序子句
ASC表示升序排列DESC表示降序排列系统默认ASC
28.视图
视图是从一个或多个表(或视图)中导出的表,根据用户观念所定义的数据结构
视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义
优点:
[1].为用户集中数据,简化数据的查询和处理
[2].屏蔽数据库的复杂性
[3].简化用户权限的管理
[4].便于数据共享
[5].可以重新组织数据以便输入到其他应用程序中
注意事项:
[1].只有在当前数据库中才能创建视图
[2].不能把规则、触发器或默认值与视图关联
29游标
前段(客户端)游标:
在客户端实现,由ODBC和DB-Library支持
后端(服务器段)游标:
由数据库服务器创建和管理的游标
使用步骤:
声明游标->
打开游标->
读取数据->
关闭游标->
删除游标
30.T-SQL语言
数据定义语言(DDL):
用于执行数据库的任务,对数据库和数据库中的各种对象进行创建、删除和修改等操作
数据操纵语言(DML):
用于操纵数据库中的各种对象,检索和修改数据
31.数据类型
常量:
在程序运行过程中值不变的量
变量:
用于临时存放数据,变量中的数据随着程序的执行而变化,有名称和数据类型两个属性,
变量名用于表示该变量
数据类型确定了该变量存放值的格式及允许的运算
常规标识符:
以ASCLL字母、Unicode字母、下划线(_)、@或#开头,后续可跟一个或若干个
ASCLL字母、Unicode字母、下划线(_)、美元符号($)、@或#,但不能全为下划线(_)、@或#
注意:
常规标识符不能是T-SQL的保留字,常规标识符中不能嵌入空格或其他特殊字符
分隔标识符:
包含在双引号("
"
)或方括号([])内的常规标识符或不符合常规标识符规则的标识符
标识符最大长度为个字符,符合常规标识符格式规则的标识符可以分隔,也可以不分隔,
对不符合标识符规则的标识符必须进行分隔。
全局变量:
由系统提供且预先声明,通过在名称前加两个'
@'
符号区别于局部变量。
局部变量:
用于保存单个数据值
当首字母为'
,表示该字符为局部变量名
当首字母为'
#'
,表示该字符为一个临时数据库对象名
当开通含一个'
,表示该字符为局部临时数据库对象名
当开头含两个'
,表示该字符为全局临时数据库对象名
32.索引
索引:
根据表中一列或若干列按照一定顺序建立的列值和记录行之间的对应关系表。
作用:
[1].快速存取数据
[2].保证数据记录的唯一性
[3].实现表与表之间的参照完整性
[4].在使用orderby和groupby子句进项检索时,利用索引可以减少排序和分组的时间
分类:
唯一索引:
索引是唯一的,不会有两行记录相同的索引键值
复合索引:
索引不是唯一的,可以多行共享同一键值。
根据多行创建的索引
根据索引的组合方式分为:
聚集索引和非聚集索引
聚集索引:
将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致。
非聚集索引:
完全独立于数据行的结构
一个表中最多只能有一个聚集索引,可以有一个或多个聚集索引,
先创建聚集的,在创建非聚集的,因为创建聚集的时候会改变数据记录的物理存放顺序。
对于索引这一块,还有点东西我没打上去,太多了,在书上页,同志们见谅啊
33.数据完整性
实体完整性(行完整性):
要求表中有一个主键,其值不能为空且能唯一的标示对应的记录。
通过索引、UNIQUE约束、PRIMARYKEY约束、IDENTITY属性可实现数据的实体完整性
域完整性(列完整性):
给定列输入的有效性。
实现域完整性的方法:
限制类型(通过数据类型)、格式(通过check约束和规则)
或可能的取值范围(通过check约束、defalut定义、notnull定义和规则)等
参照完整性(引用完整性):
保证主表中的数据和从表(被参照表)中数据的一致性
码:
即关键字,能唯一标识表中记录的字段或字段组合
外码:
如果一个表中的一个字段或若干个字段的组合是另一个表的码,则称该字段或
字段组合为该表的外码(外键)
如果定义了两个表之间的参照完整性,则要求:
[1].从表不能引用不存在的键值
[2].如果主表中的键值更改了,那么在整个数据库中,对从表中该键值的所有引用要进行一致的更改
[3].如果主表中没有关联的记录,则不能将记录添加到从表
如果要删除主表中的某一记录,应先删除从表中与该记录匹配的相关记录。
34.存储过程
存储过程是数据库的对象之一,可以理解成数据库的子程序,在客户段和服务器段可以直接调用
[1].在服务器段运行,执行速度快
[2].存储过程执行一次后,就驻留在高速缓冲存储器中,方便了以后调用,提高了系统性能
[3].使用存储过程可以完成所有数据库操作,确保数据库的安全
[4].自动完成需要预先执行的任务
几种存储类型
[1].系统存储过程:
由系统提供,定义在系统数据库master中,前缀是'
sp_'
,可以在任一数据库中执行
[2].扩展存储过程
[3].用户存储过程
1.存储过程
2.CLR存储过程
35.触发器
触发器是一个被指定关联到一个表的数据对象,触发器是一类的特殊的存储过程。
类型
DML触发器:
分为三种类型:
INSERTUPDATEDELETE
DDL触发器:
主要执行管理操作
36.用户自定义函数
标量函数
--3.创建函数完成给定学号,姓名判断该学生是否存在
--方法一
createfunctionpanda(@codechar(8))returnsint
asbegin
declare@renshuint
select@renshu=
selectcount(*)fromxsbwherexh=@code
return@renshu
end
if(selectdbo.panda('
))>
select'
该学生存在'
else
该学生不存在'
--方法二
createfunctionfind_persion(@codechar(6),@namevarchar
(2))returnsvarchar(30)
asbegin
declare@resvarchar(30)
if(selectcount(*)fromxsbwherexh=@codeandxm=@name)>
set@res='
else
set@res='
return@res
declare@revarchar(30)
select@re=dbo.find_persion('
王林'
select@re
对与标量函数,返回的是标量值,而老师出题只能是xsb,kcb,cjb三张表,所以,返回值一般来说只能是
char类型和int类型,只要掌握基础格式,然后把需要改的,也就是返回类型,SQL语句和变量名进行修改
就好了
--8.创建函数完成给定学期,显示这个学期的课程
createfunctiongrade(@classchar(6))returnstable
asreturn
select*fromkcbwherekkxq=@class
select*fromgrade('
5'
对于表值函数,一样的只需要记住基础格式,然后修改的地方就更少了,换一个变量名和变量类型、查询的
SQl语句就行
拿到题目后,先看看,要求的是什么,返回的是一张表还是一个标量值,根据返回的类型去套用格式,
在看需要些什么,SQL语句、数据类型什么的是需要修改的,去进行修改,
不会就先把格式写上去,但是千万不要不写,写个格式还能给点分,不写就一点都没有啦
好了,我对该文件保有最终解释权,有什么欠缺的,自行脑补吧,有啥问题的,找同学问问,最后一门考试了,希望同志们圆满完成任务
大学的生活告一段落了,各位都功德圆满,举霞飞升了啊,到了高等级的位面了,就好好干活了啊,革命尚未成功,同志尚需努力啊….
Fighting……(好像没有写错哈)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)