SQL Server基础培训

上传人:飞****9 文档编号:127388432 上传时间:2020-04-01 格式:PPT 页数:278 大小:3.52MB
返回 下载 相关 举报
SQL Server基础培训_第1页
第1页 / 共278页
SQL Server基础培训_第2页
第2页 / 共278页
SQL Server基础培训_第3页
第3页 / 共278页
SQL Server基础培训_第4页
第4页 / 共278页
SQL Server基础培训_第5页
第5页 / 共278页
点击查看更多>>
资源描述

《SQL Server基础培训》由会员分享,可在线阅读,更多相关《SQL Server基础培训(278页珍藏版)》请在金锄头文库上搜索。

1、基础培训 郑顺华系统集成事业部2007年4月 培训内容 培训内容第一章 数据库基础知识介绍第二章 SQLServer的安装与系统结构第三章 SQLServer的日常使用与管理第四章 SQLServer的开发应用第五章 数据库性能问题培训安排 培训目标熟悉数据库基础知识掌握SQLServer的安装与数据库的创建掌握简单的日常管理进行SQL开发总结 独立创建一个开发系统的过程初步开发的能力 第一章数据库基础知识 内容 内容数据库的组成与简单概念当前流行的数据库MSSQLServer2000简介目标和要求掌握数据库基本概念 什么是数据库系统 数据库系统 指引进数据库技术后的计算机系统 包括 硬件系统

2、 数据库集合 数据库管理系统 DBMS 及相关软件 数据库管理员和用户 数据库系统基本组成 物理设备 DBMS Applications 应用 网络 协议介质 接口 DBTools 管理工具 存储管理数据库管理数据库中的对象管理1 表单2 视图3 触发器4 索引5 存储过程4 函数 包 数据库内的对象 表 部门序号 LastName FirstName Extension CtryCode LastMod 行 列 存储数据的地方由行 row记录 和列 column字段 组成 类型 数据库内的对象 部门序号 LastName FirstName Extension CtryCode LastMo

3、d 触发器 存储过程 主键约束 一个表只能包含一个PRIMARYKEY约束 如果没有在PRIMARYKEY约束中指定CLUSTERED或NONCLUSTERED 并且没有为UNIQUE约束指定聚集索引 则将对该PRIMARYKEY约束使用CLUSTERED 在PRIMARYKEY约束中定义的所有列都必须定义为NOTNULL 如果没有指定为空性 加入PRIMARYKEY约束的所有列的为空性都将设置为NOTNULL 唯一性约束 如果UNIQUE约束中没有指定CLUSTERED或NONCLUSTERED 则默认为NONCLUSTERED 每个UNIQUE约束都生成一个索引 例 创建表职工 职工号 姓

4、名 身份证号 的同时定义身份证号取值唯一 T SQL语句如下 CREATETABLE职工 职工号char 8 NOTNULL 姓名char 10 身份证号char 18 NULLCONSTRAINTuni sfzUNIQUE 例 为存在的表职工 职工号 姓名 身份证号 定义身份证号取值唯一的约束 T SQL语句如下 ALTERTABLE职工ADDCONSTRAINTuni sfzUNIQUENONCLUSTERED 身份证号 例 删除上例建立的主键约束 T SQL语句如下 ALTERTABLE职工DROPCONSTRAINTuni sfz DEFAULT约束 若将表中某列定义了DEFAULT约

5、束后 用户在插入新的数据行时 如未指定该列值 系统自动将该列值赋为默认值 默认值可以是空值 使用企业管理器定义 删除DEFAULT约束语法格式 CONSTRAINT约束名 DEFAULT默认约束值FOR列名使用T SQL语句删除DEFAULT约束语法格式 DROPCONSTRAINT约束名 DEFAULT约束示例 例 创建表学生 学号 姓名 性别 的同时定义性别的默认值为 男 T SQL语句如下 CREATETABLE学生 学号char 8 NOTNULL 姓名char 10 性别char 2 DEFAULT 男 例 为存在的表学生 学号 姓名 性别 定义性别的默认值为 男 T SQL语句如下

6、 ALTERTABLE学生ADDCONSTRAINTdft xsDEFAULT 男 FOR性别例 删除上例建立的默认约束 T SQL语句如下 ALTERTABLE学生DROPCONSTRAINTdft xs 外键结束 外键 FK 是用于建立和加强两个表数据之间的链接的一列或多列 通过将保存表中主键值的一列或多列添加到另一个表中 可创建两个表之间的链接 在增加外键结束 ALTERTABLEMS CF02ADDCONSTRAINTFK MS CF01 CFSB MS CF02 CFSBFOREIGNKEY CFSB REFERENCESMS CF01 规则 规则也是一种数据库对象 可以绑定到一列或

7、多列上 作用与CHECK约束相似 在插入数据行时 指定接受的数据值的范围 规则对象在功能上与CHECK约束是一样的 在使用上有所区别 CHECK约束是和表的定义联系在一起的 删除表的同时CHECK约束也被删除规则对象作为一种单独存储的数据库对象 独立于表之外 用CREATERULE定义 删除表时并不删除规则对象 用DROPRULE删除 创建规则对象 使用T SQL语句CREATERULE创建规则对象语法格式 CREATERULE规则名AS规则条件例 定义规则对象 设置成绩在0分和100分之间 CREATERULEcj rlAS cj 0and cj 100 绑定规则对象 使用sp bindru

8、le语句绑定规则对象语法格式 sp bindrule rulename 规则对象名 objname 绑定的列名 例 将规则对象cj rl绑定到成绩表的成绩列 execsp bindrule cj rl 成绩 成绩 删除绑定及删除绑定对象 使用sp unbindrule语句解除绑定语法格式 sp unbindrule objname 绑定的列名 例 删除学生表性别列和规则对象cj rl的绑定 execsp unbindrule 成绩 成绩 使用T SQL语句DROPRULE删除规则对象语法格式 DROPRULE规则对象名例 删除规则对象cj rl DROPDEFAULTcj rl注 删除规则对象

9、时 首先要解除规则对象的绑定 然后才能删除规则对象 索引 索引是关系型数据库的一个基本概念 数据库的索引类似图书的索引 能够使数据库程序不用浏览整个表 就可以找到表中的数据 索引是一个表中所包含的值的列表 它说明了表中包含各个值的行所在的存储位置 用户可以利用索引快速访问数据库表中的特定信息 但使用索引存储地址将占用磁盘空间 同时在数据维护时 也将花费一定的时间 因此要合理设计索引 创建索引语法 语法格式 CREATE UNIQUE CLUSTERED NONCLUSTERED INDEX索引名ON 表名或视图名 列名 ASC DESC n ON文件组名 此选项表示创建惟一索引 此选项表示创建

10、聚集索引 此选项表示创建非聚集索引 升序 降序 创建索引 例 为表 学生课程表 创建基于 课程名 列的惟一非聚集索引au csn CREATEUNIQUEINDEXau csnON学生课程表 课程名 为表 XSQK 创建基于 学号 列的惟一聚集索引in xh CREATEUNIQUECLUSTEREDINDEXin xhONXSQK 学号 索引查看 使用系统存储过程sp helpindes查看语法格式 Sp helpindex表名或视图名例 查看表ZY FYMX上的索引信息 Sp helpindexZY FYMX 索引删除 当一个索引不再需要时 可以将其从数据库中删除 以回收当前使用的存储空间

11、 便于数据库中的任何对象使用 注 通过设置PRIMARYKEY约束或UNIQUE约束所建立的索引不允许用户删除 只能通过删除约束或删除表的方法删除 使用T SQL命令删除索引语法格式 DROPINDEX 表名 索引名 视图 索引名 数据库的内的对象 视图 视图 虚拟的表 简化 安全 方便 User sView CREATEVIEWdbo TitleViewASSELECTtitle authorFROMtitle 数据库的内的对象 索引 1 IndexesareB TreesStructuresWhichAllowFastAccesstoData 为了能快速存取数据的一种树形结构 建立适当的索

12、引可以減少I O存取的次数 A A AEI JKL M J M MNQ 数据库的内的对象 索引 2 聚集 Clustered Index资料已经做过物理排序 适合大量資料的处理每一個资料表只能有一個聚集索引非聚集 Non Clustered Index不做物理排序 可以多个 适用与资料密度低的列 也就是WHERE条件时具有高选择性 SELECTIVITY 复合 Composited Index所要用到的列都已经包含在索引页 IndexPage 中 故不需要去到物理的资料页 DataPage 一笔一笔去找为特定查詢命令量身定作用 数据库的内的对象 存储过程 存储过程为完成特定的功能而汇集在一起的

13、一组SQL程序语句 将其保存在数据库中 并由SQLServer服务器通过过程名来调用它们 存储过程在创建时就被编译和优化 调用一次以后 相关信息就保存在内存中 下次调用时可以直接执行 优点 性能 安全性 业务封装 CREATEPROCdbo find isbn titlelongstring null translationchar 8 English ASIF titleisnullBEGINPRINT Pleaseprovideatitle orpartialtitle andthetranslation PRINT find isbn Oliver Japanese 存储过程 系统存储过

14、程存储在master数据库中 以sp 为前缀 可以在其他数据库中对其进行调用 用户自定义存储过程由用户创建并能完成某一特定功能的存储过程 或称本地存储过程 包括临时存储过程 远程存储过程 扩展存储过程 临时存储过程又包括局部的和全局的临时存储过程 前者在过程名的前面带 后者在过程名的前面带 全局临时存储过程对所有用户都可见 扩展存储过程的前缀是xp 创建存储过程 用T SQL命令创建存储过程的三个组成部分 1 所有的输入参数以及传给调用者的输出参数 2 被执行的针对数据库的操作语句 包括调用其他存储过程的语句 3 返回给调用者的状态值 以指明调用是成功还是失败 T SQL创建存储过程的基本语法

15、格式 CREATEPROC EDURE 存储过程名称参数定义ASSQL语句例1 创建存储过程 实现查询所有学生信息的功能 Createprocproc 7 1AsSelect Fromxsqk 创建存储过程 例2 创建存储过程proc 7 2 要求实现根据学生学号 产生不同结果 如果该学生信息不存在 则显示 无此学号的学生 否则返回该学生的基本信息 Createprocproc 7 2 snochar 8 AsIfexists Select Fromxsqkwhere学号 sno select Fromxsqkwhere学号 snoElseprint 无此学号的学生 创建存储过程 例4 在学生

16、成绩库中创建存储过程proc 7 t2 要求实现如下功能 根据学生学号 如果此学生存在 则产生该生的课程成绩列表 其中包括学号 课程号 课程名称 成绩 学分等 如果此学生不存在 则显示 无此学生 并调用此存储过程 显示 02020101 学生的课程成绩情况 createprocproc 7 t2 snochar 8 asifexists select fromxsqkwhere学号 sno Select学号 xscj 课程号 课程名 成绩 xskc 学分Fromxscj xskcWherexscj 课程号 xskc 课程号and学号 snoelseprint 无此学生 存储过程 实际应用例子 取当前ID号CREATEPROCEDUREsp getid as in codevarchar 40 an out idvarchar 20 OUTPUTASBEGINDECLARE an countintSELECT an count COUNT FROMGY IDENTITYWHEREBMC as in codeIF an count 0 INSERTINTOGY IDENTITY BMC D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号