sqlsever数据库知识点总结.docx
- 文档编号:5111856
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:28
- 大小:28.75KB
sqlsever数据库知识点总结.docx
《sqlsever数据库知识点总结.docx》由会员分享,可在线阅读,更多相关《sqlsever数据库知识点总结.docx(28页珍藏版)》请在冰豆网上搜索。
sqlsever数据库知识点总结
第一章数据库基础
1数据库系统:
是由数据库及其管理软件组成的系统,常常把数据库有关的硬件和软件系统成为数据库系统
2.数据库:
数据库就是数据的仓库,由表、关系以及操作对象组成
3.数据:
是描述事物的符号记录(数字、文字、图形、图像、声音等)
4.数据库的作用
存储大量数据,方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析,产生新的有用信息
5.数据库经历的三个阶段及特点
1)人工管理阶段:
数据不保存;使用应用程序管理数据;数据不共享;数据不具有独立性。
2)文件系统阶段:
数据可以长期保存;由文件系统管理数据;共享性差,数据冗余大;数据独立性差。
3)数据库系统阶段:
数据结构化;数据共享性高;数据独立性强;数据粒度小;独立的数据操作界面;统一管理和控制
6.数据模型的分类
层次模型
网络模型
关系模型
7.E-R图三个主要部分
1)1.实体集:
在E-R图中用长方形来表示实体集,实体是实体集的成员。
2)联系:
在E-R图中用菱形来表示联系,联系与其涉及的实体集之间以直线连接,并在直线端部标上联系的种类,(1:
1,1:
N,M:
N)。
3)属性:
在E-R图中用椭圆形来表示实体集和联系的属性,对于主键码的属性,在属性名下划一横线。
8.绘制E-R图所需的图形
1)长方形框----实体集(考虑问题的对象)
2)菱形框----联系(实体集间联系)
3)椭圆形框----实体集和联系的属性
4)直线----连接相关的联系和实体,并可标上联系的种类
9.E-R图设计原则:
真实性;避免冗余;简单性
10.三大范式
第一范式:
在关系模型中的每一个具体关系R中,如果每个属性都是不可再分的,则称关系(R)属于第一范式(1NF)
第二范式:
如果关系模式R属于第一范式,且每一个非主属性都完全依赖于主码,则称关系R是属于第二范式的
第三范式:
如果关系模式R为2NF,并且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第三范式的
第二章数据库的安装
1.常见的数据库类型:
Access、SQLserver2000、2005、2008,Oracle数据库等
2.数据库管理员的工作是:
配置数据库服务器环境;管理数据库的逻辑对象结构;配置数据库的对象权限;制定数据库的性能优化策略;数据库的备份还原策略;数据库的异构协同结构
3.SQLServer2008的版本
Express适用于无连接的客户端或独立应用程序
Workgroup适用于工作组或分支机构操作的数据库
Standard部门级应用程序的数据库服务器
Enterprise高度可伸缩和高度可用的企业级数据库
DeveloperEnterprise版,但是只授予开发和测试用许可
Web供托管公司提供低成本、高伸缩的托管服务,只收取低廉的每月许可费
Mobile用于智能手持式设备的精简数据库
12.掌握SQLServer2008数据库的安装与卸载
第三章数据库的管理
1.T-SQL语言分类
DDL(数据定义语言)
-create(创建)
-alter(修改)
-drop(删除)
DQL(数据查询语言)
-inter(插入)
-update(更新)
DML(数据操作语言)
-select(查询)
DCL(数据控制语言)
-revoke(撤销)
-deny(拒绝)
-grant(同意、授权)
2.数据库文件
主数据文件(.mdf):
一个数据库有且只有一个
辅助数据文件(.ndf):
根据需要自由选择,当数据库很大时,可以选择多个
日志文件(.ldf):
用于存储恢复数据库所需的事务日志信息
3.掌握数据库的创建及修改(图形化及代码)
修改数据库包括:
扩展、收缩、分离附加、删除
4.语法
1)修改数据库名
Alterdatabase原数据库名
Modifyname=新数据库名
例子:
【例】将数据库book的名字改为books
alterdatabasebook
modifyname=books
2)修改文件属性
Alterdatabase数据库名
Modifyfile
(
name='逻辑名',
size=修改后的大小,
maxsize=修改后的大小,
filegrowth=修改后的大小
)
Go
例子:
把初始大小由原来5mb增大为12mb
alterdatabasebooks
modifyfile
(
name='book_data',
size=12mb
)
go
3)添加日志文件
Alterdatabase数据库名
Addlogfile
(
name=‘逻辑名’,
filename=‘文件的存放路径’,
size=日志文件的初始大小,
maxsize=日志文件的最大大小,
filegrowth=日志文件的增长方式
)
Go
例子:
【例】向shop数据库中添加一个日志文件
alterdatabaseshop
addlogfile
(
name='shop_log2',
filename='c:
\shop_log2.ldf',
size=10mb,maxsize=20mb,
filegrowth=10%
)
go
4)删除空文件
Alterdatabase数据库名
Removefile文件的逻辑名
例子:
删除文件shop_data2alter
databaseshopremove
fileshop_data2
4)添加辅助数据文件
alterdatabase数据库名
addfile
(
name=‘逻辑名’,
filename=‘文件存放的路径’,
size=初始大小,
maxsixe=最大大小,
filegrowth=增长方式
)
Go
例子:
向数据库shop中添加一个辅助数据文件
alterdatabaseshop
addfile
(
name='shop_data3',
filename='c:
\shop_data3.ndf',
size=5mb,
maxsize=10mb,
filegrowth=10%
)
go
5)创建/删除数据库
Createdatabase数据库名
onprimary
(--数据文件name=‘逻辑名’,
filename=‘文件的存放路径’,
size=数据文件的初始大小,
maxsize=数据文件的最大大小,
filegrowth=文件的增长方式)
logon(--日志文件name=‘逻辑名’,
filename=‘文件的存放路径’,
size=数据文件的初始大小,
maxsize=数据文件的最大大小,
filegrowth=文件的增长方式)
go
例子:
创建一个名为book的数据库,其初始值大小为5MB,最大大小为50MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
createdatabasebook
onprimary
(
name=‘book_data',
filename='c:
\book_data.mdf',
size=5mb,
maxsize=50mb,
filegrowth=10%)
logon
(
name=‘book_Log',
filename='c:
\book_log.ldf',
size=2mb,
maxsize=5mb,
filegrowth=1mb
)
6)删除数据库
Dropdatabase数据库名
例子:
删除数据库shop
dropdatabaseshop
第四章数据表的操作
1.在SQLserver中创建表的极限:
每个数据库可以有20亿个表,每个表有1024个列,每个列可以有8064字节
2.数据类型
种类
数据类型
数字
整数
int,bigint,smallint,tinyint
精确数值
decimal,numeric
近似数值
float,real
货币
money,smallmoney
日期和时间
datetime,smalldatetime
字符
Non-Unicode
char,varchar,varchar(max),text
Unicode
nchar,nvarchar,nvarchar(max),ntext
二进制
binary,varbinary,varbinary(max)
图像
image
全局标识符
uniqueidentifier
Xml
xml
特殊
bit,cursor,timestamp,sysname,table,sql_variant
3.字符类型
字符、数字、特殊符号
–char():
固定长度,以空格填补多余长度空间
–varchar():
可变长长度,不以空格填补多余长度空间
–nchar():
unicode固定长度
–nvarchar():
unicode可变长长度
–unicode国际标准码:
双字节模式(固定每个字符16bit)
一个汉字占两个字节(16bit)
一个字母占两个字节(16bit)
4.语法:
1)创建表
createtable表名
2)修改表
altertable表名
3)删除表
drop/deletetable表名
4)将查出的信息放入新表
Select*into新表名from旧表名
5)添加的信息必须满足现有表结构
Insertinto现有表select*from旧表名
5.drop和delete、truncate的区别:
drop是删除表,而delete和truncate是删除表中记录
5.数据操作语言DML
select从表或视图中检索数据
insert将数据插入到表或视图中
update修改表或视图中的数据
delete从表或视图中删除数据
第五章基础查询
1.select语法结构
基本语法:
select字段名
From目标表
Where条件
【例】查询学生成绩数据库(student_score)学生情况表(Member)中的所有列。
usestudent_score
select*
fromMember
2.Where条件限定语法的用法
基本语法:
use数据库名
Select字段名
From目标名
Where字段名=“内容”
Go
【例】查询Member表中Mname为马德保的相关信息
usestudent_score
select*
fromMember
whereMname='马德保'
go
3.模糊查询like
1)基本语法:
select字段名
From目标名
Where目标名like条件
【例】查找学生姓名以‘刘’开头的所有学生信息
usestudent_score
select*
fromMember
whereMnamelike'刘%'
go
2)%代表所有可能的情况
3)%的使用
%N%表示包含N
N%表示N开头
%N表示N结尾
4)“^’代表不、不是、不以的意思
4.Or/and/not的逻辑运算
【例】将Mname以’刘’开头,或总学分为60,且专业名为网络互连的学生Mname
usestudent_score
selectMname,Mtotalscore,MMajor
fromMemberwhereMnamelike'刘%'orMTotalscore=60
andMMajor='网络互连'
go
5.Between…and在…范围之内
【例】查找总学分为60和70之间的学生所有信息
usestudent_score
select*
fromMember
whereMTotalScorebetween60and70
go
6.In=or或
【例】查找总学分为70和80的所有学生信息
usestudent_score
select
fromMember
whereMtotalscorein('70','80')
-------whereMtotalscorenotin(‘70',‘80')
go
6.Isnull为空的查询
【例】查询所在地区为空的学生姓名
usestudent_score
selectMaera,Mname
fromMember
whereMaeraisnull
go
7.Orderby排序:
asc升序;desc降序
【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号
usestudent_score
selectMname,Mbirth,Mtotalscore,MID
fromMember
orderbyMtotalscoreasc,Mbirthdesc
go
8.distinct数据过滤和消除重复记录
【例】查询student_score数据库中Member表中的总学分,但是不能有重复
usestudent_score
selectdistinctMtotalscore
fromMemberorderbyMtotalscore
go
9.Top和top…withties的用法
【例】求学分最高的5位学生的信息,并且返回与第5并列的学生信息
usestudent_score
selecttop5withtiesMID,Mtotalscore
fromMemberorderbyMtotalscore
go
注:
withties必须与orderby连用
10.as取别名
【例】在student_score数据库中的Member表中对Mname取别名为a,专业名为b,并在补一列为性别,并取别名为c
usestudent_score
selectMnameasa,MMajorasb,‘性别’asc
fromMember
go
第六章高级查询
1.联接定义:
根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据
2.联接分类
内连接:
基本内连接、多表连接、自连接
外连接:
左外连接、右外连接、全外连接
交叉连接
3.左外连接、右外连接、全外连接的含义
leftouterjoin左外连接(join左边的表),结果集中除了包括满足连接条件的行外,还包括左表所有行
rightouterjoin右外连接(join右边的表),结果集中除了包括满足连接条件的行外,还包括右表所有行
fullouterjoin全外连接,结果集中除了包括满足连接条件的行外,还包括两个表的所有行
4.内连接概述
1)用…innerjion…on…语句进行连接
Jion指定需要连接的数据表
On指定连接条件(inner可省略)
【例】查找选修了01课程且成绩在30分以上的学生编号和成绩
usestudent_score
selectM.MID,S.score
fromMemberMjoinScoreS
onM.MID=S.MID
whereCID='01'andscore>=30
go
5.外连接语法:
select字段名1,字段名2…字段n
From表1leftouterjoin表2
from表1rightouterjoin表2
from表1fullouterjoin表2
Go
【例】查找所有学生信息及其考试成绩,若该生未参加任何考试,也列出其信息
usestudent_score
selectM.*,S.CID,S.score
fromScoreSrightjoinMemberM
onM.MID=S.MID
go
6.交叉连接语法:
select字段1,字段2
From表1crossjoin表2
Go
【例】返回Member表和Score表所有可能记录的组合
usestudent_score
selectM.MID,M.Mname,CID,Score
fromMemberMcrossjoinScoreS
go
第七章函数
1.函数:
是一段特殊的程序代码,它能对查询结果进行一定的操作
函数的作用:
就是使用户不必书写太多的程序代码即可完成复杂的操作
2.SQLServer函数类型包括系统函数、字符串函数、日期时间函数、聚合函数等
3.系统函数对SQLServer服务器和数据库对象进行操作,返回服务器配置和数据库对象数值等信息
CURRENT_TIMESTAMP()可返回系统当前日期和时间,类型为datetime
HOST_NAME()返回主机名称
SYSTEM_USER返回当前系统用户
USER_NAME()返回id标识指定的用户名称
db_name()返回当前会话的数据库名称
4.聚合函数功能
1)Sum()计算表达式所有值之和
【例】求选修01课程的学生的总成绩。
usestudent_score
selectsum(score)as'课程01总成绩'
fromScore
whereCID='01
go
2)Avg()计算表达式的平均值
【例】求选修10课程的学生的平均成绩。
usestudent_score
selectavg(score)as'课程10平均成绩'
fromScore
whereCID='10'
go
3)Count(列名)计算表达式中非空值的数量
【例】求学生的总成绩
usestudent_score
selectcount()as‘学生总成绩’
fromMember
go
4)count(*)计算表达式中所有值的数量
【例】求学生的总人数
usestudent_score
selectcount(*)as‘学生总人数’
fromMember
go
5)Min()计算表达式的最小值
【例】求选修00课程的学生的最低分
usestudent_score
selectmin(score)as'课程00的最低分'
fromScorewhereCID='00'
go
6)Max()计算表达式的最大值
【例】求选修11课程的学生的最高分
usestudent_score
selectmax(score)as'课程11的最高分'
fromScorewhereCID='11'
go
第八章数据的完整性
1.数据库完整性:
是指存储在数据库中数据的一致性和标准性
2.数据完整性的类型
1)域(列)完整性:
指定对列的一组有效值并决定是否允许有空值。
也可以通过在一列中限定数据类型,格式和可能值的范围来强制数据完整性。
2)实体(行)完整性:
要求表中所有的行具有唯一的标识符,例如主关键字值。
3)参照完整性:
确保维持主关键字和外部关键字的关系
3.约束的概念:
确保在列中输入有效的值并维护表之间的关系。
4.约束的类型
完整性类型
约束类型
说明
域
DEFAULT
指定列的默认值
CHECK
指定列的允许值
NULL
指定是否允许NULL
实体
PRIMARYKEY
唯一标识每一行
UNIQUE
防止非主键重复
引用
FOREIGNKEY
定义值必须与此表的主键匹配的列
5.default功能:
执行insert语句时将默认值自动插入约束所在的列
语法:
altertable表名
addconstraint约束名
default(默认值)
for字段名
go
【例】修改数据库student_score中的Menber表,将性别的默认值设置为’男’
usestudent_score
altertableMember
addconstraintdf_sex
default('男')forMsex
go
6.check功能:
check(检查约束),每次执行Insert/update语句时,该约束要校验数据的合法性
语法:
altertable表名
addconstraint约束名
check(条件)
go
【例】修改数据库student_score中的Score表,使成绩限制在0~100之间
usestudent_score
altertableScore
addconstraintck_cj
check(score>=0andscore<=100)
go
7.primarykey功能:
primarykey(主键约束),一个表中只有能一个pk,不能有空值,不能有重复值;pk所在列的值能够唯一标识此行;能与fk关联,pk所在表为主表;同时创建一个与PK约束名的簇索引。
语法:
altertable表名
addconstraint约束名
primarykey(字段名)
go
【例】修改数据库student_score中的kc表,将课程号设置为主键
usestudent_score
altertableCourse
addconstraintpk_kch
primarykey(CID)
go
8.Unique功能:
unique(唯一约束),指定在同一列中的两行不能有相同的值,只能有一行为空值,该约束自动创建一个与约束同名的非簇索引,在插入/修改时自动执行。
语法:
altertable表名
addconstraint约束名
unique(字段名)
go
【例】修改数据库student_score中的Course表,将课程名设置为unique约束
usestudent_score
altertableCourse
addconstraintun_kcm
unique(Cname)
go
9.FOREIGNKEY功能:
参照完整性确保维持主关键字(在主表中)和外部关键字(在辅表中)的关系。
语法:
altertable表名1
add
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sqlsever 数据库 知识点 总结