认证主体:张**(实名认证)
IP属地:天津
下载本文档
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 是属于第三范式的第二章 数据库的安装1. 常见的数据库类型: Access、 SQL server2000、 2005、 2008, Oracle
5、持式设备的精简数据库12.掌握 SQL Server 2008数据库的安装与卸载第三章 数据库的管理1. T-SQL 语言分类DDL (数据定义语言)-create (创建)-alter (修改)-drop(删除 )DQL (数据查询语言)-inter (插入)-update (更新)DML (数据操作语言)-select (查询)DCL (数据控制语言)-revoke(撤销)-de ny(拒绝)-grant(同意、授权)2. 数据库文件主数据文件( .mdf ):一个数据库有且只有一个辅助数据文件(.ndf):根据需要自由选择,当数据库很大时,可以选择多个日志文件(.ldf):用于存储恢复数
6、据库所需的事务日志信息3. 掌握数据库的创建及修改(图形化及代码)修改数据库包括 :扩展、收缩、分离附加、删除4. 语法1)修改数据库名Alter database 原数据库名Modify name = 新数据库名 例子:【例】将数据库 book 的名字改为 booksalter database bookmodify name=books2)修改文件属性Alter database 数据库名Modify file(name='逻辑名',size=修改后的大小,maxsize=修改后的大小,filegrowth= 修改后的大小)Go 例子:把初始大小由原来 5mb 增大为 12
7、mb alter database books modify file(name='book_data', size=12mb)go3) 添加日志文件Alter database 数据库名Add log file(name= 逻辑名' ,filename = 文件的存放路径' , size= 日志文件的初始大小, maxsize=日志文件的最大大小 , filegrowth= 日志文件的增长方式 )Go例子:【例】向 shop 数据库中添加一个日志文件 alter database shop add log file(name='shop_log2
10、增长方式 )log on (name= 逻辑名' , filename= 文件的存放路径' , size=数据文件的初始大小, maxsize=数据文件的最大大小, filegrowth= 文件的增长方式 ) go例子:创建一个名为 book 的数据库,其初始值大小为 许数据库自动增长, 增长方式是按 10%比例增长;日志文件初始 按 1MB 增长。create database bookon primary(-数据文件- 日志文件5MB,最大大小为 50MB,允 为2MB,最大可增长到 5MB ,name= book_data', filename='c:bo
12、nt, small int, tinyint精确数值decimal, nu meric近似数值float, real货币mon ey, smallm oney日期和时间datetime, smalldatetime字符Non-Un icodechar,varchar,varchar(max), textUni coden char, nvarchar, nvarchar(max), n text二进制bin ary,varb in ary,varb in ary(max)图像image全局标识符uniq ueide ntifierXmlxml特殊bit, cursor, timestamp,
13、sys name, table, sql varia nt3字符类型字符、数字、特殊符号-char():固定长度,以空格填补多余长度空间-varchar():可变长长度,不以空格填补多余长度空间- nchar( ):unicode 固定长度- n varchar( ) : uni code 可变长长度-unicode国际标准码:双字节模式(固定每个字符16bit)一个汉字占两个字节(16bit)一个字母占两个字节(16bit)4语法:1)创建表create table 表名2)修改表alter table 表名3)删除表 drop/delete table 表名4)将查出的信息放入新表Sele
14、ct * into 新表名 from 旧表名5)添加的信息必须满足现有表结构Insert into 现有表 select * from 旧表名5. drop和delete、truncate的区别:drop是删除表,而 delete和truncate是删除表中记录5. 数据操作语言 DMLselect 从表或视图中检索数据insert 将数据插入到表或视图中update 修改表或视图中的数据delete 从表或视图中删除数据第五章 基础查询1. select语法结构基本语法: select 字段名From 目标表Where 条件【例】查询学生成绩数据库(student_sco学生情况表(Memb
15、er)中的 所有列。use student_scoreselect *from Member2. Where条件限定语法的用法基本语法: use 数据库名Select 字段名From 目标名Where 字段名 = “内容”Go【例】查询 Member 表中 Mname 为马德保的相关信息use student_scoreselect *from Memberwhere Mname=' 马德保 'go3. 模糊查询 like1 )基本语法: select 字段名From 目标名Where 目标名 like 条件【例】查找学生姓名以刘'开头的所有学生信息use studen
16、t_scoreselect *from Memberwhere Mname like '刘 %'go2) % 代表所有可能的情况3) %的使用%N% 表示包含 NN% 表示 N 开头%N 表示 N 结尾4) “A '代表不、不是、不以的意思4. Or/and/not 的逻辑运算Mname【例】将 Mname 以'刘'开头,或总学分为60,且专业名为网络互连的学生use student_scoreselect Mname,Mtotalscore,MMajorfrom Member where Mname like ' 刘 %' or MTo
19、记录【例】查询 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 Member order by Mtotalscorego注: with ties 必须与 order
20、by 连用10. as 取别名【例】在 student_score数据库中的 Member表中对 Mname取别名为a, 专业名为 b,并在 补一列为性别,并取别名为 cuse student_scoreselect Mname as a, MMajor as b , 性别' as cfrom Membergo第六章 高级查询1. 联接定义:根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据2. 联接分类内连接:基本内连接、多表连接、自连接外连接:左外连接、右外连接、全外连接交叉连接3. 左外连接、右外连接、全外连接的含义left outer join 左外连接 (join 左
24、数据库对象 数值等信息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='01go2) Avg()计算表达式的平均值【例】求选修 10
25、课程的学生的平均成绩。use student_scoreselect avg(score) as课程 10 平均成绩'from Scorewhere CID='1O'go3) Count(列名)计算表达式中非空值的数量【例】求学生的总成绩use stude nt_scoreselect count() as '学生总成绩from Membergo4) cou nt(*)计算表达式中所有值的数量【例】求学生的总人数use stude nt_scoreselect cou nt(*) as '学生总人数'from Membergo5) Min()计算
26、表达式的最小值【例】求选修00课程的学生的最低分use stude nt_scoreselect min(score) as 课程 00 的最低分'from Score where CID='00'go6) Max()计算表达式的最大值【例】求选修11课程的学生的最高分use stude nt_scoreselect max(score) as课程 11 的最高分'from Score where CID='11'go第八章数据的完整性1. 数据库完整性:是指存储在数据库中数据的一致性和标准性2. 数据完整性的类型1 )域(列)完整性:指定对列的
27、一组有效值并决定是否允许有空值。也可以通过在一列中限定数据类型,格式和可能值的范围来强制数据完整性。2) 实体(行)完整性:要求表中所有的行具有唯一的标识符,例如主关键字值。3)参照完整性:确保维持主关键字和外部关键字的关系3.约束的概念:确保在列中输入有效的值并维护表之间的关系。4约束的类型完整性类型约束类型说明域DEFAULT指定列的默认值CHECK指定列的允许值NULL指定是否允许 NULL实体PRIMARY KEY唯一标识每一行UNIQUE防止非主键重复引用FOREIGN KEY定义值必须与此表的主键匹配的列5. default功能:执行insert语句时将默认值自动插入约束所在的列语
28、法:alter table表名add con 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 constraint 约束名check(条 件)go【例】修改数据库student_
29、score中的Score表,使成绩限制在0100之间use stude nt_scorealter table Scoreadd con stra int ck_cjcheck(score>=0 and score<=100)go7. primary key功能:primary key(主键约束),一个表中只有能一个pk,不能有空值,不能有重复值;pk所在列的值能够唯一标识此行;能与fk关联,pk所在表为主表;同时创建一个与PK约束名的簇索引。语法: alter table表名add con stra int 约束名primary key(字段名)go【例】修改数据库 studen
30、t_score中的kc表,将课程号设置为主键use stude nt_scorealter table Courseadd con stra int pk_kchprimary key(CID)go8. Unique功能:unique(唯一约束),指定在同一列中的两行不能有相同的值,只能有一行为空值,该约束自动创建一个与约束同名的非簇索引,在插入/修改时自动执行。语法: alter table表名add con stra int 约束名unique (字段名)go【例】修改数据库 student_score中的Course表,将课程名设置为 unique约束use student_scorea
31、lter table Courseadd constraint un_kcm unique(Cname) go9. FOREIGN KEY 功能: 参照完整性确保维持主关键字(在主表中)和外部关键字(在辅 表中)的关系。语法: alter table 表名 1add constraint 约束名foreig n key(字段名)references 表名 2(字段名 )go【例】修改数据库 student_score中的Score表,将课程号设置为外键use student_scorealter table Scoreadd constraint fk_kchforeign key(CID)r
32、eferences Course(CID)go10. 删除约束语法: alter table 表名drop constraint 约束名【例】 删除 Menber 表的 fk_xh 约束。use student_scorealter table Scoredrop constraint fk_xhgo第九章 视图1. 视图 ; 是从一个或多个表 (或视图) 导出的虚表。 对于数据库用户来说, 视图 似乎是一个真实的表,它具有一组命名的数据列和行。但是,与真实的表不同,在视图中没有存储任何数据, 仅仅是一种较简单的访问数据库里其他表 中数据的方式, 因此称它为 “虚表”。视 图只能建立在当前正在
33、使用的数据库中2. 视图的优点 聚焦数据,创建可以控制的环境,将需要的、常规的、适当的数据存储在视图中。 隐藏数据库的复杂性简化对用户的许可管理 数据库拥有者只允许用户通过视图查询数据,保护了底层基本表的设计结构提高性能存储复杂查询、分割数据输出数据给其他应用程序3. 视图创建是应注意的情况 只能在当前数据库中创建视图。的基表或者则必须为列对象存在,如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新 视图。如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同, 定义名称。当通过视图查询数据时, SQL Server 要检查以确保语句中涉及的所有数据库 而且数据修改语
34、句不能违反数据完整性规则。视图的名称必须遵循标识符的规则,且对每个用户必须是唯一的2. 语法;1) create view 视图名 创建视图【例】创建v1视图,包括作者为马德保的书籍ISBN,名称,及单价use bookgocreate view v1asselect isbn,bookname,unitpricefrom bookinfowhere author='马德保'go2) drop view 视图名 删除视图【例】删除名为 v2 的视图drop view v23) alter view 视图名 修改视图【例】修改v1视图,包括出版社为工业出版社的书籍ISBN,作者及
35、单价use bookgoalter view v1asselect isbn,author,unitpricefrom bookinfowhere publisher=' 工业出版社 'go4) exec sp_helptext 视图名 查看视图定义【例】查看视图 v1:exec sp_helptext v15) update 视图名更新视图【例】将 v1 视图中书名为“ Windows Server 2008活动目录”的单价增加10。use bookgoupdate v1set unitprice=unitprice+10where bookname='Windows
36、 Server 2008 活动目录 'go第十章 索引1. 建立索引目的:是希望提高SQL Server数据检索的速度2. 索引的分类聚集索引 非聚集索引唯一索引3. 建立索引的原则1)定义主键数据列一定要建立索引2)定义外键数据列上一定建立索引3)对于经常查询的数据列最好建立索引4)对于需要在指定范围内快速或频繁查询的数据列5)经常用在 where 子句中的数据列6)对于那些查询中很少涉及的列,重复值较多的列不要建立索引7)对于定义为text、image和bit数据类型的列不要建立索引4. 语法 ;创建索引 Create unique 索引名 修改索引alter unique 索引名
37、删除索引drop unique 索引名第十一章 存储过程1. 存储过程的类型系统存储过程(名字以"sp_”为前缀,存储在master里) 本地存储过程(存储在用户定义的数据库中)扩展存储过程(名字都以"xp_”为前缀,存储在master里) 临时存储过程(名字以 #开头 )2. 语法:1)Creat procedure 存储过程名创建存储过程【例】创建名为 p_book_info 的存储过程 ,该存储过程查询所有书籍的信息 use bookgo create procedure p_book_info asselect * from bookinfo order by IS
40、值运算符: =比较运算符 : >,<,>=,<=,=,!=,<>,!>,!<逻辑运算符:-all,and,any,between,existsn,like,not,or,some字符串串联运算符 : +按位运算符:&, |,人,4. 流程控制1) begi nend:定义语句块。2) goto label 从 label 所定义的 label 之后的语句处继续进行处理。3) ifelse定义条件以及当一个条件为FALSE时的操作。4) while 当特定条件为 TRUE 时重复语句。5) waitfor 为语句的执行设置延迟第十三章 触发
41、器1. 触发器 :是一种特殊的存储过程,它被分配给某个特定的表,触发器都是自动调用的。当一特定的表数据被插入、更新或删除时,数据库需要执行一定的动作,触发器是确保数据完整性和一致性的基本有效的方法2. 触发器的动作DeleteUpdateInsert3. 触发器的作用禁止无效的修改级联修改相关表格执行较为复杂的约束操作4. 触发器特点不接受用户参数 ,也不返回用户参数 ;存储在表上。 数据库中跨越相关表的级联修改。对数据库中的相关表进行级 联更新和删除强制比 Check 约束更复杂的数据完整性 .可以引用其他表中的列5. 语法:1) Create trigger 触发器名创建触发器【例】对于
42、student_score 数据库,如果在 Member 表中删除数据,则在 执行时显示提示信 息。use student_scoregocreate trigger tr_deleteon Memberfor deleteasprint ' 你已经删除了此数据! 'go2) alter trigger 触发器名修改触发器【例】在 Member 表中定义触发器,当修改纪录时弹出消息:恭喜!你修改了此表!use student_scoregoalter trigger tr_deleteon Memberfor deleteasprint ' 恭喜!你修改了此表!go3)
43、 disable trigger 触发器名 禁用触发器【例】禁用 tr_update 触发器use student_scoregoalter table Memberdisable trigger tr_updatego4) enable trigger 触发器名启用触发器【例】启用 tr_insert 触发器use student_scoregoalter table Memberenable trigger tr_insertgo5) drop trigger 触发器名删除触发器【例】删除名为 tr_insert 的触发器drop trigger tr_in sert第十四章数据库安全1.
44、 SQL Server 2008的安全性管理可分为3个等级:1)操作系统级2)SQL Server 级3)数据库级2. SQL Server登录认证简介;Windows和SQL Server身份验证Windows身份验证SQL Server身份验证当用户登陆到 Windows域时,用户名和密 码在被传送到 Windows域控制器之前被加 密Windows操作系统从不验证用户支持复杂加密、密码的截止日期和最短长 度等密码策略支持密码策略(Sql2000不支持)支持帐户锁定策略,在使用无效密码进行 多次尝试后锁定帐户不支持帐户锁定功能在Windows98/me中不能使用在Windows98/me中
45、可以使用3数据库安全通过以下三种方式实施:帐户管理:添加和删除数据库用户,便于访问数据库。 权限管理:指定用户能够对哪些数据库对象执行哪种操作。角色管理:将具有相同权限的用户设置为同一角色,减少权限设置的工作量第十五章数据库灾难性恢复1. 备份和恢复的必要性数据库中的数据丢失或被破坏的原因:计算机硬件故障、软件故障、病毒、误操作、自然灾害、盗窃2. 备份类型完全备份(Database Full Backups) 特点:1)速度慢、时间长; 2)占用大量的磁盘 空间;3)完全备份的频率通常比差异备份或事务日志备份低事务日志备份(Transaction Log Backups)特点:1)速度快、时
46、间少2)占用磁盘空间少3 )操作复杂差异备份(Differential Database Backups)特点:1) 速度一般、时间短 2) 占用磁盘 空间少3)需要经常备份3.恢复模式恢复模式描述简单恢复模式数据库的完整或差异副本,截断事务日志完整恢复模式包括数据库备份和事务日志备份大容量日志恢复包括数据库和事务日志备份,但使用较少的日志空间4.当选择恢复模式时,必须考虑原则:1)大规模操作的性能(如大容量装载)2)数据丢失表现(如已提交的事务丢失)3)事务日志空间损耗4)备份和恢复过程的简化5. 备份还原的方法 完整备份和还原 完整 +差异备份与还原 完整 +事务日志备份与还原6. 创建备份设备 :物理和逻辑7. 语法:1)创建数据库备份 完全备份 backup database 数据库名 to 永久设备逻辑名 with init /noinit -init
0/150
联系客服
本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!