版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关系:是汇集在表结构中的行和列的集合,每个关系由一个或多个属性组成关系,属性和数组这3个术语在涉及到关系模型时使用,SQL在描述这些术语时,使用的是表,列和行联系指实体间对应关系三范式:1. 每一列都是不可分的基本数据项,同一列中不能有多个值,每一行只包含一个实例的信息,简言之,就是无重复的列2. 属性完全依赖于主关键字,3. 一个数据表中不包含已在其它表中已包含的非主关键字信息SQL组成1. 数据定义语言(Data Definition Language),用于创建,修改,删除数据库对象,SQL关键字包括CREATE,ALTER,DROP2. 数据查询语言(Data Query Langua
2、ge),用于检索数据,主要SQL关键字为SELECT3. 数据操纵语言(Data Manipulation Language),用于增,删,改数据库对象中的数据,主要SQL关键字INSERT,UPDATE和REVOKE4. 数据控制语言(Data Control Language),用于控制用户对数据库的访问,主要SQL关键字GRANT,DENY 和REVOKE5. 其它语言要素,事务控制,程序化语言= 表 =创建表增加列删除列:有默认值,作为主键不能被删除,具有非空约束的列可以被删除处理办法:先删除约束,再删除列修改列:TEXT,IMAGE,NTEXT,TIMESTAMP,索引的一部分,是P
3、RIMARY KEY或FOREIGN KEY,有缺省值,有CHECK,UNIQUE时不能改变其类型重命名表重命名列= 数据库 =创建数据库创建区分大小写的列(sql server默认不区分大小写)= 索引 =索引:一个表的存储是由两部分存放的,一部分用来存储表的数据页面,另一部分存储索引页面,索引就存放在索引页面上。通常,索引面页相对于数据页面来说小得多,当进行数据检索时,系统先搜索索引页面,从中找到所需要数据的指针,再通过指针从数据页面中读取数据簇索引:簇索引与数据是混为一体的非簇索引:非簇索引具有与表的数据完全分离的结构,由于非簇索引使用索引页存储,因此比簇索引需要更多的空间,且检索效率低
4、创建索引索引改名和删除= 完整性控制 =完整性约束分3种类型:1. 与表有关的约束:是在创建有的语句中定义的一种约束,在定义列同时定义该约束称为列约束;在列定义之后,单独定义多个列的约束称为表约束上面在name列后面的是列约束,最后一行是表约束,它们都可以实施primary key,foreign key,unique,check约束,除此之外,列约束还可以实施not null约束,也可以这样实现如果希望删除主表中数据时同时删除子表中相关数据时可采用2. 域约束(只能使用check约束):域可以代替数据类型使用,如但是在sql server中不支持create domain,不过可以通过给列设
5、置check约束实现3. 断言(只能使用check约束):sql server2k不支持4. sql server中的完整性控制,包括规则,缺省值,触发器规则是对表中的列或自定义数据类型的限制,规则是单独存储的,与表对象无关,即表删除不会对规则产生影响,一个规则可应用多个列,一个列最多只能应用一个规则缺省值:性质同上= 查询 =自然连接,自动判断相同的列,匹配连接(不灵活,不能指定匹配列)CASE WHEN 语句左外连接 = 内连接 + 左边表中不匹配的行右外连接 = 内连接 + 右边表中不匹配的行全外连接 = 内连接 + 左边表中不匹配的行 + 右边表中不匹配的行不管是哪种连接,DBMS总是
6、一次执行两个表的联合,因此为了在单一查询中连接个或以上表,就需要进行多次连接,如:查询所有教师的姓名,所在系,开设的课程名以及选修这门课的学生姓名和成绩。总是把前面的结果和后面的表进行连接交叉连接等同于from后的表用逗号隔开,都是返回两个表中所有行的迪卡尔积UNION可用于合并查询结果,自动消除重复行,如果不希望消除重复,必须使用UNION ALL可查不同表中的数据,但列数,类型要匹配,还可以对最后的结果进行排序(列的序号也可)注意:多表进行UNION运算时,(A UNION ALL B)UNION C和A UNION ALL(B UNION C)结果可能不同,括号可改变连接顺序UNION
7、JOIN把来自一个源表中的行与另一个源表中的行联合起来,生成的结果中包括第一个表中的所有行和列和另一个表中的所有行和列。缺少的属性值用NULL表示(SQL SERVER不支持)ROLLUP运算符,对分组进行扩展CUBE运算符,对分组进行扩展EXISTS子查询:用来测试集合是否为空,它总与子查询一起使用,而且只要子查询中至少返回一个值,则EXISTS判式的值为TRUE,否则为FALSEUNIQUE子查询:用来测试子查询的结果表是否存在重复行,若没有重复行,则返回TRUE,否则返回FALSE,NOT UNIQUE正好相反,不过SQL SERVER不支持子查询的执行要依赖于上一层查询行的当前值,这种
8、子查询称为相关子查询,如EXISTS= 存储过程与函数 =存储过程的优点:允许组件式编程,较快的执行速度,减少网络流量,安全常用流程控制语句:DECLARE用来定义一个局部变量,可用SELECT语句赋值,这个变量必须以开头,跟着一个标识符,如下:全局变量:冠以 的变量,由系统定义,常见的有 error :当事务成功后,其值为0,否则为由系统产生的,最近的一个错误号(服务器:消息 后面的值)textsize :select语句返回的text或image数据的字节数GOTO lable无条件转到用户定义的标号处RETURN int_value :无条件的退出一个查询或一个过程,其中可选整数表达式返
9、回给调用者一个状态值WAITFOR :用来定义某天中的一个时刻,执行一个语句块print 显示最长255个字符的消息函数 :只能返回单一值或表,此外,函数不能执行增删改操作标量型函数内联表值型函数多声明表值型函数位非运算 :要求一个负数的二进制表示方式,可以先求出它的原码,然后每位取反得出它的反码,反码再加1得出补码如:假设还是以8位二进制来表示带符号的整数-56的原码是:00111000那么它的反码是:11000111补码为:11000111+1=11001000得出,-56在计算机内部是用11001000这串二进制来表示的= 触发器 =触发器是一种特殊的存储过程,它在表的数据变化时发生作用
10、,触发器可以维护数据完整性与存储过程的区别:存储过程通过其它程序启动运行,而触发器由一个事件来启动运行,并且不能接收参数SQL支持三种类型的触发器:INSERT,DELETE,UPDATE。当向表中插入数据,更新数据或删除数据时,触发器就被调用,通过给表定义一个或多个触发器,可以指定哪个数据修改时,可以激发触发器执行环境:包括一到两个称为测试表的虚表,用于保存目标表更新,插入和删除的数据信息。用户不能直接修改测试表中的数据,但能在SELECT语句中使用这些表来检测INSERT,DELETE和UPDATE的结果,各种类型触发器用到的测试表如下:² Inserted表存入了INSERT和
11、UPDATE语句中的副本。在INSERT或UPDATE语句的执行中,这些新行同时被加到Inserted表和trigger表中。Inserted表中的行是trigger表中新行的副本v 也就是更新和插入操作中,把新行同时复制到原表和Inserted表中² Deleted表存放了Delete和Update语句中相关行的副本。在DELETE或UPDATE语句的执行中,这些相关行从trigger表中移到了Deleted表中。一般情况下,这两张表中无共同行v 也就是更新和删除操作中,把原表中删除的行剪切到deleted表中² 一个UPDATE效果上等价于一个DELETE再接着一个IN
12、SERT。首先“旧”行被复制到deleted表中,然后新行被复制到trigger表和inserted表中INSERT触发器DELETE触发器UPDATE触发器 INSTEAD OF 触发器仅执行触发器本身,而不执行具体的SQL语句(INSTEAD OF 的意思)= 事务控制与并发处理 =事务的特性1 原子性:指事务全有或全无的性质。也就是说,事务就作为一个工作单元,事务处理完成后,所有的工作要么都在数据库中保留下来,要么完全回滚,全部不保留2 一致性:事务完成或撤消后,应处理一致的状态,即事务中任何数据的变化符合数据定义的规则。另外,数据结束后,数据库内所有结构都必须正确。3 隔离性:多个事务
13、同时进行,它们之间应该互不干扰,事务过程中暂时不一致的数据不能被其它事务应用,直到数据再次一致4 永久性:一旦事务引发了变化,事务提交以后,所做的工作就被永久的保存下来,即使硬件和应用程序发生错误,这些数据也会可靠一致SQL中使用事务的一般过程如为:首先通过SET TRANSACTION 设置事务的属性(主要用于并发控制),再由START TRANSACTION语句开始事务。事务结束可以有两种方式:由COMMIT语句提交事务和由ROLLBACK语句回滚事务COMMIT提交事务:该语句将成功地结束当前事务,并永久的保存事务中对于数据库的所有改变。而在未提交事务以前,这些改变是暂时的,一般情况下,
14、在其他事务中不能看到本事务中对数据库的修改ROLLBACK回滚事务:该语句也结束当前事务,但他当撤消该事务所做的全部工作,即事务中对于数据库的任何修改都将无效,回滚一般是指回到事务开始时的状态,但也可以在事务中设置保存点,然后回到事务指定的保存点。保存点和ROLLBACK语句一起使用,可使当前事务进行部分回滚在SQL:1999定义中,事务即可以隐式开始,也可以显式开始,所谓隐式开始就是当执行某些SQL语句时,事务自动开始,即这些语句必须在事务中执行。而显式事务就是通过START TRANSACTION语句来开始事务SQL SERVER中有3种开始事务的方式:隐式,显式,自动提交(缺省)自动提交
15、:是指对于用户发出的每条SQL语句,SQL SERVER都会自动开始一个事务,并且在执行后自动进行提交操作来完成这个事务。可以说,在这种事务模式下,一个SQL语句就是一个事务显示提交:以BEGIN TRANSACTION命令开始一个事务隐式提交:是指在当前会话中,通过SET IMPLICIT_TRANSACTION ON命令设置事务类型,这时,任何DML语句(DELETE,UPDATE,INSERT)事务都会开始一个事务,而事务的结束也是使用COMMIT或ROLLBACK延期约束:SQL SERVER不支持,指事务中的每条语句都必须立即应用约束,还是在事务结束后再应用约束使用ROLLBACK
16、SAVE_POINT语句回到保存点时,事务并不终止(意味着这种语句可以和COMMIT一起被执行,而ROLLBACK和COMMIT只能执行其一,因为任一可以结束事务,再执行另一个会提示事务并没有开始)事务隔离级别(以下开销越来越大,但出错的可能越来越小)READ UNCOMMITTED未提交的读取:限制最少,它允许读取已经被其它用户修改但尚未提交的数据,用于结果不要求太精确的统计数据,开销少READ COMMITTED提交读取:通过隐藏未提交的变化解决了读取“脏数据”的问题,虽然READ COMMITTED消除了读取未提交数据,但并不能防止不可重复的读取和幻影读REPEATABLE READ可重
17、复读取:用SELECT命令读取的数据在整个命令执行过程中由DBMS实施锁定,不会被更改SERIALIZABLE可串行化:指的是将事务以一种顺序方式连接起来,防止一个事务影响其它事务总结:READ UNCOMMITTED可以读取其它用户未提交的数据,READ COMMITTED可以读取已提交的数据,REPEATABLE READ锁定表,其它用户同时不允许更新数据(可以插入),SERIALIZABLE不允许插入在SQL SERVER中,从数据库角度锁可以分为:1 共享锁:共享锁锁定的资源可以被其它用户读取,但不能修改。在SELECT命令执行时,SQL SERVER通常会对对象进行共享锁定。一般情况下,加共享锁的数据页被读取完毕后,共享锁就立即被释放2 独占锁:独占锁锁定的资源只允许进行锁定操作的程序使用,对它的任何其它操作都被拒绝。执行数据更新命令,如INSERT,UPDATE,DELETE命令时,SQL SERVER会动使用独占锁。但当对象上有其它锁存在时,无法对其加独占锁。直到更新结束,独占锁才被释放3 更新锁:为防止死锁而设定。当SQL SERVER准备更新数据库时,它首先对数据库对象做更新锁锁定,这样数据将不能被修改,但可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电气课程设计报告论文
- 零售贷款合同三篇
- 道路工程师工作总结
- 妇产科护士工作总结
- 门诊部医生团队近期工作总结
- 2023-2024学年重庆市七校联盟高一(下)期中语文试卷
- 教材选用与内容审定计划
- 包装设计师的主要职责
- 医疗行业顾问工作概述
- 【八年级下册地理粤教版】7.4 北京市 同步练习
- 酒店员工培训方案(3篇)
- 2024版光伏发电项目承包经营权转让合同范本3篇
- 2024年协会工作计划范例(2篇)
- 内蒙古自治区赤峰市2024-2025学年高三上学期11月期中物理试题(解析版)
- 广州广东广州市海珠区瑞宝街招聘雇员9人笔试历年参考题库频考点试题附带答案详解
- 国家开放大学电大临床药理学形考任务1-3参考答案
- 2024年人教版七年级下册英语期末综合检测试卷及答案
- 2025年高中政治学业水平考试时政考点归纳总结(复习必背)
- 统编版(2024新版)七年级下册道德与法治期末复习背诵知识点提纲
- 房屋市政工程生产安全重大事故隐患判定标准(2024版)宣传画册
- 老旧小区改造工程安全管理体系管理制度及措施
评论
0/150
提交评论