sqlsever数据库知识点总结_第1页
sqlsever数据库知识点总结_第2页
sqlsever数据库知识点总结_第3页
sqlsever数据库知识点总结_第4页
sqlsever数据库知识点总结_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 数 据 库 基 础1 数据库系统: 是由数据库及其管理软件组成的系统, 常常把数据库有关的硬件和软件系统 成为数据库系统2. 数据库:数据库就是数据的仓库,由表、关系以及操作对象组成3. 数据 :是描述事物的符号记录(数字、文字、图形、图像、声音等)4. 数据库的作用 存储大量数据,方便检索和访问 保持数据信息的一致、完整 共享和安全 通过组合分析,产生新的有用信息5. 数据库经历的三个阶段及特点1)人工管理阶段 : 数据不保存;使用应用程序管理数据;数据不共享;数据不具有独立 性。2)文件系统阶段:数据可以长期保存;由文件系统管理数据;共享性差,数据冗余大; 数据独立性差。3)数据库

2、系统阶段:数据结构化;数据共享性高;数据独立性强;数据粒度小;独立的 数据操作界面;统一管理和控制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)椭圆形框

3、 实体集和联系的属性4)直线 连接相关的联系和实体,并可标上联系的种类9. E-R 图设计原则:真实性;避免冗余;简单性10. 三大范式第一范式:在关系模型中的每一个具体关系R中,如果每个属性都是不可再分的,则称关系(R)属于第一范式(1NF)第二范式:如果关系模式R属于第一范式,且每一个非主属性都完全依赖于主码,则称关系 R 是属于第二范式的第三范式:如果关系模式 R为2NF并且R中的每个非主属性不传递依赖于R的主码,则称关系 R 是属于第三范式的第二章 数据库的安装2. 数据库管理员的工作是:配置数据库服务器环境 ;管理数据库的逻辑对象结构; 配置 数据库的对象权限 ;制定数据库的性能优化

4、策略 ;数据库的备份还原策略 ;数据库的异 构协同结构3.SQL Server 2008 的版本Express 适用于无连接的客户端或独立应用程序Workgroup 适用于工作组或分支机构操作的数据库Standard 部门级应用程序的数据库服务器Enterprise 高度可伸缩和高度可用的企业级数据库Developer Enterprise 版,但是只授予开发和测试用许可Web供托管公司提供低成本、高伸缩的托管服务,只收取低廉的每月许可费Mobile用于智能手持式设备的精简数据库12.掌握 SQL Server 2008数据库的安装与卸载第三章 数据库的管理1.T-SQL 语言分类DDL (数

5、据定义语言)-create (创建)-alter (修改)-drop ( 删除 )DQL (数据查询语言)-inter (插入)-update (更新)DML (数据操作语言)-select(查询)DCL (数据控制语言)-revoke(撤销 )-deny( 拒绝 )-grant( 同意、授权 )2. 数据库文件主数据文件( .mdf ):一个数据库有且只有一个辅助数据文件 (.ndf) :根据需要自由选择,当数据库很大时,可以选择多个 日志文件 (.ldf) :用于存储恢复数据库所需的事务日志信息3. 掌握数据库的创建及修改(图形化及代码) 修改数据库包括 : 扩展、收缩、分离附加、删除4.

6、 语法1 )修改数据库名Alter database原数据库名Modify name = 新数据库名 例子:【例】将数据库 book 的名字改为 books alter database book modify name=books2 )修改文件属性Alter database数据库名Modify filename= 逻辑名 ,size= 修改后的大小 ,maxsize= 修改后的大小, filegrowth= 修改后的大小)Go例子:把初始大小由原来 5mb 增大为 12mb alter database booksmodify file(name=book_data, size=12mb)

7、go3) 添加日志文件Alter database数据库名Add log file(name= 逻辑名 ,filename = 文件的存放路径 , size= 日志文件的初始大小 , maxsize= 日志文件的最大大小 , filegrowth= 日志文件的增长方式)Go例子:【例】向 shop 数据库中添加一个日志文件 alter database shopadd log file( name=shop_log2, filename =c:shop_log2.ldf, size=10mb, maxsize=20mb, filegrowth=10%)go4 )删除空文件Alter datab

8、ase 数据库名Remove file文件的逻辑名例子 : 删除文件 shop_data2 alterdatabase shop removefile shop_data24) 添加辅助数据文件alter database 数据库名add file (n ame=逻辑名 ,filename= 文件存放的路径 , size= 初始大小, maxsixe= 最大大小 , filegrowth= 增长方式)Go 例子:向数据库 shop 中添加一个辅助数据文件 alter database shop add file( name=shop_data3, filename=c:shop_data3.n

9、df, size=5mb, maxsize=10mb, filegrowth=10%) go5 )创建 / 删除数据库 Create database 数据库名 on primary数据文件日志文件/IB最大大小为 50MB,允许 为2MB最大可增长到 5MB( -name=逻辑名, filename= 文件的存放路径 , size= 数据文件的初始大小, maxsize= 数据文件的最大大小, filegrowth= 文件的增长方式 ) log on (-name=逻辑名, filename= 文件的存放路径 , size= 数据文件的初始大小, maxsize= 数据文件的最大大小, fi

10、legrowth= 文件的增长方式 ) go例子:创建一个名为 book 的数据库,其初始值大小为 数据库自动增长,增长方式是按10%比例增长;日志文件初始按1MB增长。create database bookon primary( name= book_data, filename=c:book_data.mdf,size=5mb, maxsize=50mb, filegrowth=10%)log on(n ame= book_Log,file name=c:book_log .l df,size=2mb,maxsize=5mb,filegrowth=1mb)6)删除数据库Drop data

11、base 数据库名例子:删除数据库 shopdrop database shop第四章数据表的操作1.在SQL server中创建表的极限:每个数据库可以有 20亿个表,每个表有1024个列每个列可以有8064字节2.数据类型种类数据类型数字整数int, bigi nt, small int, tinyint精确数值decimal, nu meric近似数值float, real货币mon ey, smallm oney日期和时间datetime, smalldatetime字符Non-Uni codechar,varchar,varchar(max), textUn icoden char,

12、 nvarchar, nvarchar(max), ntext二进制bin ary,varb in ary,varb in ary(max)图像image全局标识符uniq ueide ntifierXmlxml特殊bit, cursor, timestamp, sys name, table, sql varia nt3.字符类型字符、数字、特殊符号-char():固定长度,以空格填补多余长度空间-varchar():可变长长度,不以空格填补多余长度空间-n char( ):un icode固定长度-n varchar( ) : uni code可变长长度-uni code国际标准码: 双字

13、节模式(固定每个字符16bit) 一个汉字占两个字节(16bit)一个字母占两个字节(16bit)4. 语法:1 )创建表 create table 表名2 )修改表 alter table 表名3)删除表 drop/delete table 表名4)将查出的信息放入新表 Select * into 新表名 from 旧表名5)添加的信息必须满足现有表结构 Insert into 现有表 select * from 旧表名5.drop 和 delete 、 truncate 的区别: drop 是删除表,而 delete 和 truncate 是删除表中 记录5. 数据操作语言 DMLsele

14、ct 从表或视图中检索数据insert 将数据插入到表或视图中update 修改表或视图中的数据delete 从表或视图中删除数据第五章 基础查询1.select 语法结构 基本语法: select 字段名From目标表Where条件【例】查询学生成绩数据库(student_score )学生情况表(Member)中的 所有列。use student_scoreselect *from Member2. Where 条件限定语法的用法基本语法: use 数据库名Select字段名From目标名Where字段名 =“内容”Go【例】查询Member表中Mname为马德保的相关信息use stud

15、ent_scoreselect *from Memberwhere Mname= 马德保 go3. 模糊查询 like1)基本语法: select 字段名From 目标名Where 目标名 like 条件【例】查找学生姓名以刘开头的所有学生信息use student_scoreselect *from Memberwhere Mname like 刘 %go2) % 代表所有可能的情况3)%的使用%N% 表示包含 NN%表示 N 开头%N表示 N 结尾4 )“A 代表不、不是、不以的意思4. Or/and/not 的逻辑运算Mname【例】将Mnamc以刘开头,或总学分为60,且专业名为网络互

16、连的学生use student_scoreselect Mname,Mtotalscore,MMajorfrom Member where Mname like 刘% or MTotalscore=60and MMajor= 网络互连 go5. Betweenand 在范围之内【例】查找总学分为 60 和 70之间的学生所有信息use student_scoreselect *from Memberwhere MTotalScore between 60 and 70go6.In =or 或【例】查找总学分为 70 和 80的所有学生信息use student_scoreselectfrom

17、Memberwhere Mtotalscore in(70,80)where Mtotalscore not in(70, 80)go6.Is null 为空的查询 【例】查询所在地区为空的学生姓名use student_scoreselect Maera,Mnamefrom Memberwhere Maera is nullgo7.Order by 排序: asc 升序; desc 降序【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号use student_scoreselect Mname,Mbirth,Mtotalscore, MIDfrom Memberorder

18、by Mtotalscore asc ,Mbirth descgo8. distinct 数据过滤和消除重复记录【例】查询student_score 数据库中Member表中的总学分,但是不能有重复use student_scoreselect distinct Mtotalscorefrom Member order by Mtotalscorego9. Top 和 top with ties的用法【例】求学分最高的 5位学生的信息 ,并且返回与第 5并列的学生信息use student_scoreselect top 5 with ties MID,Mtotalscorefrom Memb

19、er order by Mtotalscorego注: with ties 必须与 order by 连用10. as 取别名【例】在student_score 数据库中的 Member表中对 Mname取别名为a, 专业名为b,并在补一列为性别,并取别名为 cuse student_scoreselect Mname as a, MMajor as b , 性别 as cfrom Membergo第六章 高级查询1. 联接定义:根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据2. 联接分类内连接:基本内连接、多表连接、自连接外连接:左外连接、右外连接、全外连接交叉连接3. 左外连接

20、、右外连接、全外连接的含义left outer join 左外连接 (join 左边的表 ), 结果集中除了包括满足连接条件的行外,还包 括左表所有行right outer join 右外连接 (join 右边的表 ), 结果集中除了包括满足连接条件的行外, 还包括右表所有行full outer join 全外连接 , 结果集中除了包括满足连接条件的行外,还包括两个表的所有行4. 内连接概述1)用innerjionon语句进行连接Jion 指定需要连接的数据表On指定连接条件(inner可省略)【例】查找选修了 01 课程且成绩在 30 分以上的学生编号和成绩use student_score

21、 select M.MID,S.score from Member M join Score S on M.MID=S.MID where CID=01 and score=30 go5. 外连接语法:select 字段名 1,字段名2字段nFrom表 1 left outer join表2from表 1 right outer join表2from表 1 full outer join表2Go【例】查找所有学生信息及其考试成绩,若该生未参加任何考试,也列出其信息 use student_score select M.*,S.CID,S.score from Score S right joi

22、n Member M on M.MID=S.MID go6. 交叉连接语法: select 字段 1,字段 2 From 表 1 cross join 表 2 Go【例】返回Member表和Score表所有可能记录的组合use student_scoreselect M.MID,M.Mname,CID,Scorefrom Member M cross join Score Sgo第七章 函数1. 函数:是一段特殊的程序代码,它能对查询结果进行一定的操作 函数的作用:就是使用户不必书写太多的程序代码即可完成复杂的操作2. SQL Server 函数类型包括系统函数、字符串函数、 日期时间函数、聚

23、合函数等3. 系统函数对 SQL Server 服务器和数据库对象进行操作,返回服务器配置和数据库对 象数值等信息CURRENT_TIMESTAMP可返回系统当前日期和时间,类型为datetimeHOST_NAME (返) 回主机名称SYSTEM_USER返回当前系统用户USER_NAME( ) 返回 id 标识指定的用户名称db_n ame()返回当前会话的数据库名称4. 聚合函数功能1) Sum()计算表达式所有值之和【例】求选修 01 课程的学生的总成绩。use student_scoreselect sum(score) as 课程 01 总成绩 from Scorewhere CID

24、=01go2) Avg ()计算表达式的平均值【例】求选修10课程的学生的平均成绩。use stude nt_scoreselect avg(score) as 课程 10 平均成绩from Scorewhere CID=1Ogo3) Count(列名)计算表达式中非空值的数量【例】求学生的总成绩use stude nt_scoreselect cou nt() as学生总成绩from Membergo4) cou nt(*)计算表达式中所有值的数量【例】求学生的总人数use stude nt_scoreselect cou nt(*) as学生总人数from Membergo5) Min()

25、计算表达式的最小值 【例】求选修00课程的学生的最低分use stude nt_scoreselect min(score) as 课程 00 的最低分from Score where CID=00go6) Max()计算表达式的最大值 【例】求选修11课程的学生的最高分use stude nt_scoreselect max(score) as 课程 11 的最高分from Score where CID=11go第八章数据的完整性1. 数据库完整性:是指存储在数据库中数据的一致性和标准性2. 数据完整性的类型1 )域(列)完整性:指定对列的一组有效值并决定是否允许有空值。也可以通过在列中限

26、定数据类型,格式和可能值的范围来强制数据完整性。2)实体(行)完整性:要求表中所有的行具有唯一的标识符,例如主关键字值。3)参照完整性:确保维持主关键字和外部关键字的关系3. 约束的概念:确保在列中输入有效的值并维护表之间的关系。4. 约束的类型完整性类型约束类型说明域DEFAULT指定列的默认值CHECK指定列的允许值NULL指定是否允许NULL实体PRIMARY KEY唯一标识每一行UNIQUE防止非主键重复引用FOREIGN KEY定义值必须与此表的主键匹 配的列5. default功能:执行insert语句时将默认值自动插入约束所在的列语法:alter table 表名add con

27、stra int约束名default( 默认值)for 字段名go【例】修改数据库student_score中的Menber表,将性别的默认值设置为男use stude nt_scorealter table Memberadd con stra int df_sexdefault( 男)for Msexgo6. check功能:check(检查约束),每次执行Insert/update语句时,该约束要校验数据的合法性语法:alter table 表名add con stra int约束名check(条件)go【例】修改数据库student_score 中的Score表,使成绩限制在0100之

28、间use stude nt_scorealter table Scoreadd con stra int ck_cjcheck(score=0 and score,=,=,=,!=,!,!逻辑运算符:-all,and,any,between,existsn,like,not,or,some字符串串联运算符 : + 按位运算符:&, |,人,4. 流程控制1) beginend:定义语句块。2) goto label从 label 所定义的 label 之后的语句处继续进行处理。3) if else 定义条件以及当一个条件为 FALSE 时的操作。4) while 当特定条件为 TRUE 时重复

29、语句。5) waitfor为语句的执行设置延迟第十三章 触发器1. 触发器 :是一种特殊的存储过程, 它被分配给某个特定的表, 触发器都是自动 调用的。当一特定的表数据被插入、更新或删除时,数据库需要执行一定的动作,触发器是确保数据完整性和一致性的基本有效的方法2. 触发器的动作DeleteUpdateInsert3. 触发器的作用禁止无效的修改 级联修改相关表格 执行较为复杂的约束操作4. 触发器特点 不接受用户参数 , 也不返回用户参数 ; 存储在表上。 数据库中跨越相关表的级联修改。对数据库中的相关表进行级 联更新和删除强制比Check约束更复杂的数据完整性.可以引用其他表中的列5. 语

30、法:1 ) Create trigger 触发器名 创建触发器【例】对于stude nt_score数据库,如果在 Member表中删除数据,则在执行时显示提示信息。use student_scoregocreate trigger tr_deleteon Memberfor deleteasprint 你已经删除了此数据! go2 ) alter trigger触发器名 修改触发器【例】在Member表中定义触发器,当修改纪录时弹出消息:恭喜!你修改了此表!use student_scoregoalter trigger tr_deleteon Memberfor deleteasprint

31、 恭喜!你修改了此表!go3 )disable trigger 触发器名 禁用触发器【例】禁用 tr_update 触发器use student_scoregoalter table Member disable trigger tr_update go4 )enable trigger触发器名启用触发器【例】启用 tr_insert 触发器use student_scoregoalter table Memberen able trigger tr_insert go5 ) drop trigger触发器名删除触发器【例】删除名为tr_i nsert 的触发器drop trigger tr_

32、in sert第十四章数据库安全1. SQL Server 2008 的安全性管理可分为3个等级:1)操作系统级2)SQL Server 级3)数据库级2. SQL Server登录认证简介;Windows和SQL Server身份验证Win dows身份验证SQL Server身份验证当用户登陆到 Windows域时,用户名和密 码在被传送到Windows域控制器之前被加 密Win dows操作系统从不验证用户支持复杂加密、密码的截止日期和最短长 度等密码策略支持密码策略(Sql2000不支持)支持帐户锁定策略,在使用无效密码进行 多次尝试后锁定帐户不支持帐户锁定功能在 Windows98/

33、me中不能使用在Windows98/me中可以使用3数据库安全通过以下三种方式实施:帐户管理:添加和删除数据库用户,便于访问数据库。权限管理: 指定用户能够对哪些数据库对象执行哪种操作。 角色管理: 将具有相同权限的用户设置为同一角色,减少权限设置的工作量第十五章数据库灾难性恢复1. 备份和恢复的必要性数据库中的数据丢失或被破坏的原因:计算机硬件故障、软件故障、病毒、误操作、自然灾害、盗窃2. 备份类型完全备份(Database Full Backups ) 特点:1 )速度慢、时间长;2 )占用大量的磁盘空间;3 )完全备份的频率通常比差异备份或事务日志备份低事务日志备份(Transacti

34、on Log Backups)特点:1 )速度快、时间少 2 )占用磁盘空间少3 )操作复杂差异备份(Differential Database Backups )特点:1 ) 速度一般、时间短 2 ) 占用磁盘空间少3 )需要经常备份3.恢复模式恢复模式描述简单恢复模式数据库的完整或差异副本,截断事务日志完整恢复模式包括数据库备份和事务日志备份大容量日志恢复包括数据库和事务日志备份,但使用较少的日志空间4.当选择恢复模式时,必须考虑原则:1)大规模操作的性能(如大容量装载)2)数据丢失表现(如已提交的事务丢失)3)事务日志空间损耗4)备份和恢复过程的简化5. 备份还原的方法完整备份和还原完整

35、+差异备份与还原完整+事务日志备份与还原6. 创建备份设备:物理和逻辑7. 语法:1 )创建数据库备份完全备份backup database数据库名to永久设备逻辑名 with in it /n oi nit-i nit表示重写-noinit表示追加(默认)【例】把book数据库完全备份到backup_book设备里backup database book to backup_book with noin it差异备份backup database 数据库名to永久备份设备逻辑名with differential【例】追加book数据库的差异备份到backup_book设备里backup database book to backup_book with differe ntial, noin it日志备份backup log数据库名to永久备份设备逻辑名with init/noinit【例】追加boo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论