sqlsever数据库知识点总结Word下载.docx
《sqlsever数据库知识点总结Word下载.docx》由会员分享,可在线阅读,更多相关《sqlsever数据库知识点总结Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
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
(
book_data'
size=12mb
go
3)添加日志文件
Addlogfile
(
name=‘逻辑名’,
filename=‘文件的存放路径’,
size=日志文件的初始大小,
maxsize=日志文件的最大大小,
filegrowth=日志文件的增长方式
【例】向shop数据库中添加一个日志文件
alterdatabaseshop
addlogfile
shop_log2'
filename='
c:
\shop_log2.ldf'
size=10mb,maxsize=20mb,
filegrowth=10%
4)删除空文件
Removefile文件的逻辑名
例子:
删除文件shop_data2alter
databaseshopremove
fileshop_data2
4)添加辅助数据文件
alterdatabase数据库名
addfile
name=‘逻辑名’,
filename=‘文件存放的路径’,
size=初始大小,
maxsixe=最大大小,
filegrowth=增长方式
向数据库shop中添加一个辅助数据文件
shop_data3'
filename='
\shop_data3.ndf'
size=5mb,
maxsize=10mb,
5)创建/删除数据库
Createdatabase数据库名
onprimary
(--数据文件name=‘逻辑名’,
filename=‘文件的存放路径’,
size=数据文件的初始大小,
maxsize=数据文件的最大大小,
filegrowth=文件的增长方式)
logon(--日志文件name=‘逻辑名’,
创建一个名为book的数据库,其初始值大小为5MB,最大大小为50MB,允许数据库自动增长,增长方式是按10%比例增长;
日志文件初始为2MB,最大可增长到5MB,按1MB增长。
createdatabasebook
onprimary
name=‘book_data'
\book_data.mdf'
maxsize=50mb,
filegrowth=10%)
logon
name=‘book_Log'
\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为马德保的相关信息
fromMember
whereMname='
马德保'
3.模糊查询like
1)基本语法:
Where目标名like条件
【例】查找学生姓名以‘刘’开头的所有学生信息
whereMnamelike'
刘%'
go
2)%代表所有可能的情况
3)%的使用
%N%表示包含N
N%表示N开头
%N表示N结尾
4)“^’代表不、不是、不以的意思
4.Or/and/not的逻辑运算
【例】将Mname以’刘’开头,或总学分为60,且专业名为网络互连的学生Mname
selectMname,Mtotalscore,MMajor
fromMemberwhereMnamelike'
orMTotalscore=60
andMMajor='
网络互连'
5.Between…and在…范围之内
【例】查找总学分为60和70之间的学生所有信息
whereMTotalScorebetween60and70
6.In=or或
【例】查找总学分为70和80的所有学生信息
select
whereMtotalscorein('
70'
'
80'
-------whereMtotalscorenotin(‘70'
‘80'
6.Isnull为空的查询
【例】查询所在地区为空的学生姓名
selectMaera,Mname
whereMaeraisnull
7.Orderby排序:
asc升序;
desc降序
【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号
selectMname,Mbirth,Mtotalscore,MID
orderbyMtotalscoreasc,Mbirthdesc
8.distinct数据过滤和消除重复记录
【例】查询student_score数据库中Member表中的总学分,但是不能有重复
selectdistinctMtotalscore
fromMemberorderbyMtotalscore
9.Top和top…withties的用法
【例】求学分最高的5位学生的信息,并且返回与第5并列的学生信息
selecttop5withtiesMID,Mtotalscore
注:
withties必须与orderby连用
10.as取别名
【例】在student_score数据库中的Member表中对Mname取别名为a,专业名为b,并在补一列为性别,并取别名为c
selectMnameasa,MMajorasb,‘性别’asc
第六章高级查询
1.联接定义:
根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据
2.联接分类
内连接:
基本内连接、多表连接、自连接
外连接:
左外连接、右外连接、全外连接
交叉连接
3.左外连接、右外连接、全外连接的含义
leftouterjoin左外连接(join左边的表),结果集中除了包括满足连接条件的行外,还包括左表所有行
rightouterjoin右外连接(join右边的表),结果集中除了包括满足连接条件的行外,还包括右表所有行
fullouterjoin全外连接,结果集中除了包括满足连接条件的行外,还包括两个表的所有行
4.内连接概述
1)用…innerjion…on…语句进行连接
Jion指定需要连接的数据表
On指定连接条件(inner可省略)
【例】查找选修了01课程且成绩在30分以上的学生编号和成绩
selectM.MID,S.score
fromMemberMjoinScoreS
onM.MID=S.MID
whereCID='
01'
andscore>
=30
5.外连接语法:
select字段名1,字段名2…字段n
From表1leftouterjoin表2
from表1rightouterjoin表2
from表1fullouterjoin表2
【例】查找所有学生信息及其考试成绩,若该生未参加任何考试,也列出其信息
selectM.*,S.CID,S.score
fromScoreSrightjoinMemberM
onM.MID=S.MID
6.交叉连接语法:
select字段1,字段2
From表1crossjoin表2
【例】返回Member表和Score表所有可能记录的组合
selectM.MID,M.Mname,CID,Score
fromMemberMcrossjoinScoreS
第七章函数
1.函数:
是一段特殊的程序代码,它能对查询结果进行一定的操作
函数的作用:
就是使用户不必书写太多的程序代码即可完成复杂的操作
2.SQLServer函数类型包括系统函数、字符串函数、日期时间函数、聚合函数等
3.系统函数对SQLServer服务器和数据库对象进行操作,返回服务器配置和数据库对象数值等信息
CURRENT_TIMESTAMP()可返回系统当前日期和时间,类型为datetime
HOST_NAME()返回主机名称
SYSTEM_USER返回当前系统用户
USER_NAME()返回id标识指定的用户名称
db_name()返回当前会话的数据库名称
4.聚合函数功能
1)Sum()计算表达式所有值之和
【例】求选修01课程的学生的总成绩。
selectsum(score)as'
课程01总成绩'
fromScore
01
2)Avg()计算表达式的平均值
【例】求选修10课程的学生的平均成绩。
selectavg(score)as'
课程10平均成绩'
10'
3)Count(列名)计算表达式中非空值的数量
【例】求学生的总成绩
selectcount()as‘学生总成绩’
4)count(*)计算表达式中所有值的数量
【例】求学生的总人数
selectcount(*)as‘学生总人数’
5)Min()计算表达式的最小值
【例】求选修00课程的学生的最低分
selectmin(score)as'
课程00的最低分'
fromScorewhereCID='
00'
6)Max()计算表达式的最大值
【例】求选修11课程的学生的最高分
selectmax(score)as'
课程11的最高分'
11'
第八章数据的完整性
1.数据库完整性:
是指存储在数据库中数据的一致性和标准性
2.数据完整性的类型
1)域(列)完整性:
指定对列的一组有效值并决定是否允许有空值。
也可以通过在一列中限定数据类型,格式和可能值的范围来强制数据完整性。
2)实体(行)完整性:
要求表中所有的行具有唯一的标识符,例如主关键字值。
3)参照完整性:
确保维持主关键字和外部关键字的关系
3.约束的概念:
确保在列中输入有效的值并维护表之间的关系。
4.约束的类型
完整性类型
约束类型
说明
域
DEFAULT
指定列的默认值
CHECK
指定列的允许值
NULL
指定是否允许NULL
实体
PRIMARYKEY
唯一标识每一行
UNIQUE
防止非主键重复
引用
FOREIGNKEY
定义值必须与此表的主键匹配的列
5.default功能:
执行insert语句时将默认值自动插入约束所在的列
语法:
altertable表名
addconstraint约束名
default(默认值)
for字段名
【例】修改数据库student_score中的Menber表,将性别的默认值设置为’男’
altertableMember
addconstraintdf_sex
default('
男'
)forMsex
6.check功能:
check(检查约束),每次执行Insert/update语句时,该约束要校验数据的合法性
语法:
altertable表名
check(条件)
go
【例】修改数据库student_score中的Score表,使成绩限制在0~100之间
altertableScore
addconstraintck_cj
check(score>
=0andscore<
=100)
7.primarykey功能:
primarykey(主键约束),一个表中只有能一个pk,不能有空值,不能有重复值;
pk所在列的值能够唯一标识此行;
能与fk关联,pk所在表为主表;
同时创建一个与PK约束名的簇索引。
altertable表名
primarykey(字段名)
【例】修改数据库student_score中的kc表,将课程号设置为主键
altertableCourse
addconstraintpk_kch
primarykey(CID)
8.Unique功能:
unique(唯一约束),指定在同一列中的两行不能有相同的值,只能有一行为空值,该约束自动创建一个与约束同名的非簇索引,在插入/修改时自动执行。
unique(字段名)
【例】修改数据库student_score中的Course表,将课程名设置为unique约束
addconstraintun_kcm
unique(Cname)
9.FOREIGNKEY功能:
参照完整性确保维持主关键字(在主表中)和外部关键字(在辅表中)的关系。
altertable表名1
add