首页 SQL2005基础知识

SQL2005基础知识

举报
开通vip

SQL2005基础知识nullnullSQL-S2 复习总结目录目录第一章 数据库设计 第二章 数据库实现 第三章 T-SQL编程 第四章 高级查询 第五章 事务、索引和视图 第六章 存储过程 附录第1章 数据库设计第1章 数据库设计数据库设计的必要性 节省存储空间,效率高 能保证数据的完整性 方便数据库应用系统的开发,便于进一步扩展 数据库设计的步骤 需求分析阶段 收集信息 标识对象 标识每个对象需要存储的详细信息 标识对象之间的关系第1章 数据库设计第1章 数据库设计概要设计阶段 绘制E-R图 确认需求信息的正确性和完整性 详细设...

SQL2005基础知识
nullnullSQL-S2 复习总结目录目录第一章 数据库 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 第二章 数据库实现 第三章 T-SQL编程 第四章 高级查询 第五章 事务、索引和视图 第六章 存储过程 附录第1章 数据库设计第1章 数据库设计数据库设计的必要性 节省存储空间,效率高 能保证数据的完整性 方便数据库应用系统的开发,便于进一步扩展 数据库设计的步骤 需求分析阶段 收集信息 标识 采样口标识规范化 下载危险废物标识 下载医疗器械外包装标识图下载科目一标识图大全免费下载产品包装标识下载 对象 标识每个对象需要存储的详细信息 标识对象之间的关系第1章 数据库设计第1章 数据库设计概要设计阶段 绘制E-R图 确认需求信息的正确性和完整性 详细设计阶段 将E-R图转换为多张 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ,进行逻辑设计 应用三大范式对表进行审核 E-R图(实体-关系图) 实体 现实世界中具有区分其他事物特征或属性并与其他实体有联系的对象,E-R图中用矩形表示。 属性 可以理解为实体的特征,E-R图中用椭圆表示。 关系 是实体间的联系,E-R图中用菱形表示。 E-R图中直线用来连接属性和实体集或实体与关系集第1章 数据库设计第1章 数据库设计实体关系图的映射关系 1:1-1对1 1:N-1对多和多对1 M:N-多对多 数据规范化 从关系型数据库中除去冗余数据的过程叫规范化,如果使用得当,是用于获得高效的关系型数据库表的逻辑结构的最好和最容易的方法。 第一范式(1NF) 确保每列的原子性,将数据库精简为最简单形式。 第二范式(2NF) 从表中删除冗余的列,确保每张表只描述一件事情。 第三范式(3NF) 标识所有依赖于其他数据的数据,确保每列与主键直接相关。第2章 数据库实现第2章 数据库实现数据库文件由3部分组成 主要数据文件:*.mdf 次要数据文件:*.ndf 日志文件:*.ldf [注:可以有多个数据库文件和日志文件,每个数据库文件必须有一个日志文件与之对应] 创建数据库 Create database 数据库名 删除数据库 Drop database 数据库名第2章 数据库实现第2章 数据库实现语法: use master if exists ( select * from sysdatabases where name=‘ 数据库名 ’ ) drop database ‘ 数据库名’ --有则删除数据库 GO create database ‘ 数据库名 ’ on ( /*主要数据库文件*/ name=‘数据库名_data’, filename=‘路径’, size=大小, filegrowth=增长率 ), ( /*次要数据库文件*/ … ) log on ( /*主要日志文件*/ name=‘数据库名_log’, filename=路径, size=大小, maxsize=最大容量, filegrowth=增长率 ), ( /*次要日志文件*/ … )第2章 数据库实现第2章 数据库实现SQL中的数据类型第2章 数据库实现第2章 数据库实现创建数据表 Create table 表名 ( 字段1 数据类型 列特征, 字段2 数据类型 列特征, … ) 删除数据表 Use 数据库名 If exists ( select * from sysobjects where name=‘表名’ ) drop table 表名  --删除数据表 Go第2章 数据库实现第2章 数据库实现常用约束类型 主键约束(PK_):即主键列,数据唯一且不能为空 唯一约束(UQ_):数据唯一,能出现一个空值 检查约束(CHK_):限制某列的取值范围和模式等 默认约束(DF_):设置某列的默认值 外键约束(FK_):用于在两表之间建立关系 添加和删除约束语法(创建好表后添加约束) Alter table 表名 Add[Drop]constraint 约束名 约束类型 具体的约束说明 例:添加默认约束 Alter table stuInfo add constrint DF_stuAge default (’18’) for stuAge第2章 数据库实现第2章 数据库实现创建数据表简易写法 Create table 表名 ( 列名 类型 是否为空 是否主键 是否有约束 默认值 … ) 例:create table stuMarks ( ID int identity(1,1) primary key not null, stuNO int foreign key references stuInfo(stuNo) not null, stuMark int check ( stuMark between 0 and 100 ) default (‘0’) )第2章 数据库实现第2章 数据库实现数据库有三层安全验证 登录到SQL Server系统 成为要访问数据库的用户 需要足够的权限访问数据表 创建登录 创建windows登录 [ EXEC ] sp_grantlogin ‘windows 域名/域账户’ 创建SQL登录 [ EXEC ] sp_addlogin ‘账户’,‘密码’ 创建数据库用户 [ EXEC ] sp_grantdbaccess ‘账户’,‘用户名’ 给数据库用户授权 Grant 权限 [on 表名] TO 数据库用户 注意:每次只能授权一个表,省略表名时是授权数据库中的所有表。 例:grant select,insert,update on stuInfo to 用户名 授予建表权限 grant create table to 用户名第3章 T-SQL编程第3章 T-SQL编程全局变量与局部变量的区别 作用范围不同 局部变量仅限于定义它的程序内部,通常用来存储从表中查询的数据,或当做程序执行时的临时变量。 全局变量是在服务器级定义的,在任何程序中均可使用,常用来存储一些SQL配置设定值和效能统计数据,只能使用预先说明和定义的全局变量。 引用方式不同 局部变量必须先声明再使用。 全局变量可以直接引用。第3章 T-SQL编程第3章 T-SQL编程定义局部变量(以@为前缀,可以包括特殊字符) 语法 Declare @varible_name DataType 赋值 Set @varible_name = value 或 select @varible_name = value(用于存储查询出的数据) 例:declare @a int,@@b int,@@@c int,@@@@d int 全局变量不能定义和修改,以@@为前缀,且我们定义的局部变量也不可以与全局变量相同。 如:declare @@error int --错误第3章 T-SQL编程第3章 T-SQL编程输出语句 print 局部变量 AS 自定义列名 select 局部变量 AS 自定义列名 例:select @@serverName AS ‘服务器名称’ IF-ELSE条件语句 语法 If (条件) Begin 语句或语句块 End Else Begin 语句或语句块 End 注:begin…end 相当于JAVA语言中的“{}”大括号,当只有一条语句时可以省略。第3章 T-SQL编程第3章 T-SQL编程WHILE 循环语句 语法 While (条件) begin 语句或语句块 [ break ] end CASE多分支语句 语法 Case when 条件1 then 结果1 when 条件2 then 结果2 End第4章 高级查询第4章 高级查询子查询 简单子查询 Select * from 表名 where 字段 [运算符] in (子查询) 注:IN适用于返回多条 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 的情况,NOT IN用于取反操作。 EXISTS和NOT EXISTS子查询 可以作为WHERE条件的子查询,但一般用于IF语句的存在检测 IF EXISTS(子查询) 语句或语句块 注:如果子查询结果非空则返回 true,否则返回 false。 例:select * from stuInfo where exists ( select * from stuMarks where stuNo = stuInfo.stuNo ) select * from stuInfo where stuNo in ( select stuNO from stuMarks ) select * from stuInfo inner join stuMarks on stuInfo.stuNo = stuMarks.stuNo第5章 事务、索引和视图第5章 事务、索引和视图事务是一种机制、一个操作序列,包含了一组数据命令,且所有命令都作为一个整体提交或回滚,要么成功,要么失败。是在数据库系统上执行并发操作时作为最小控制单元来使用的。 事务的ACID属性 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability)第5章 事务、索引和视图第5章 事务、索引和视图如何创建事务 开始事务 Begin transaction (tran) 提交事务 Commit transaction (tran) 回滚(撤销)事务 Rollback transaction (tran) 事务分类 显式事务:用begin transaction明确指定事务的开始 隐式事务 自动提交事务 [注:一旦事务回滚或提交,则该事务结束,常用的是显式事务]第5章 事务、索引和视图第5章 事务、索引和视图索引 索引是SQL编排数据的内部方法,存储在数据库的索引页中。 索引可以提高数据库检索速度,改善数据库性能 索引的分类 唯一索引(UNIQUE):创建唯一约束时自动创建 主键索引:在创建主键时自动创建,是唯一索引的特殊类型 聚集索引(CLUSTERED):聚集索引决定表中数据的物理存储顺序,一张表只能包含一个聚集索引,在创建主键时将自动创建一个聚集索引。 非聚集索引(NOCLUSTERED):非聚集索引指定表中数据的逻辑顺序,一张表最多可有249个非聚集索引。第5章 事务、索引和视图第5章 事务、索引和视图创建索引 使用Microsoft SQL Server Management Studio(SQL企业管理器)创建 在表设计图中,单击鼠标右键,选择“索引/键”命令 使用T-SQL语句创建 Create [ unique ] [ clustered | noclustered] INDEX 索引名 ON 表名 ( 列名1[列名2…]) [ with fillfactor = x ] 删除索引 IF Exists ( select name from sysindexes where name = 索引名 ) drop index 表名.索引名 --存在则删除 引用索引 Select * from 表名 with ( index = 索引名 ) where < 条件 >第5章 事务、索引和视图第5章 事务、索引和视图创建索引的标准 该列用于频繁搜索 该列用于对数据进行排序 该列中的值不同 不适于创建索引的情况 列中仅包含几个不同值 表中仅包含几行,这样在索引中搜索数据所花的时间会比在表中逐行搜索所花的时间更长第5章 事务、索引和视图第5章 事务、索引和视图视图 视图是一种虚拟表,是保存在数据库中的查询,充当着查询指定表的筛选器,可以基于一个或多个表,也可以基于其他视图、当前数据库或其他数据库。 视图的用途 筛选表中的行 防止未经许可的用户访问敏感数据 将多个物理数据表抽象成一个逻辑数据表 视图的优点 使结果更易理解,符合日常业务逻辑 获得数据更容易 限制数据检索以提高安全性 维护应用程序更容易第5章 事务、索引和视图第5章 事务、索引和视图创建视图 用SQL企业管理器创建 展开数据库,右击视图项选择“新建视图”即可 使用T-SQL语句创建 Create VIEW 视图名 AS < select 语句 > 例:IF exists ( select * from sysobjects where name=‘视图名’ ) Drop view 视图名 GO Create view 视图名 AS select 姓名 = stuName, 平均分 = ( writtenExam + labExam ) / 2 From stuInfo left join stuMarks on stuInfo.stuNo = stuMarks.stuNo GO /*--使用视图,同打开物理表一样--*/ Select * from 视图名第6章 存储过程第6章 存储过程存储过程是SQL语句和控制流语句预编译的集合,类似于JAVA中的方法,在创建时即在服务器上编译,执行起来比单个SQL语句快。 优点: 执行速度快,提高数据库访问速度 允许模块化程序设计 保持一致性和提高安全性 减少网络流量 分类 系统存储过程 用户自定义存储过程第6章 存储过程第6章 存储过程系统存储过程 所有系统存储过程都以 “ SP_” 或 “ XP_” 开头,系统管理员拥有这些存储过程的使用权限 常用系统存储过程如下: SP_database:列服务器上的所有数据库 SP_help:返回某个表的所有信息 SP_helpconstraint:查看某个表的约束 SP_helpindex:查看某个表的索引 SP_stored_procedures:列出当前环境下的所有存储过程 SP_password:添加或修改登录账户密码 XP_logininfo:查看账户信息(扩展存储过程) XP_cmdshell:完成DOS命令(扩展存储过程)第6章 存储过程第6章 存储过程用户定义存储过程 使用SQL企业管理器创建,步骤同视图创建 使用T-SQL语句创建CREATE PROCEDURE 存储过程名 存储过程要先创建,再调用,使用EXEC 存储过程存放于系统表 sysobjects 中 分类 不带参数的存储过程 带输入参数的存储过程 ( 同值传递 ) 带输出参数的存储过程 ( 相当于引用传递 ) 删除存储过程 DROP PROC[ EDURE ] 存储过程名第6章 存储过程第6章 存储过程创建存储过程通用语法 IF exists ( select * from sysobjects where name = ‘ 存储过程名 ’ drop proc 存储过程名 GO --注意:必须有,存储过程第一句必须是 Create Create proc 存储过程名 [@参数1 类型 [ = 默认值 ] [ OUTPUT ] ], … [@参数n 类型 [ = 默认值 ] [ OUTPUT ] ], AS SQL 语句 ][ 注:(1)参数为可选,没有时则为不带参数存储过程 (2)OUTPUT 为输出标记,有则为带输出参数的存储过程,没有则为带输入参数的存储过程,需要注意的是调用带输出参数的存储过程时要定义接收变量,且在接收变量后必须添加 OUTPUT 关键字 (3)默认值为输入参数所独有,使用默认值可以使带输入参数的存储过程更灵活 ]第6章 存储过程第6章 存储过程SQL中的错误处理 PRINT 语句:只能临时显示错误信息,且只能显示给用户 RAISERROR 语句:返回给用户定义的错误信息时,可指定严重级别,设置系统变量记录所发生的错误。 语法 RaisError ( { msg_id | msg_str } { , severity , state } [ with option [ ,…n] ] Msg_id:在sysmessages系统表中指定用户定义的错误信息 Msg_str:用户定义的错误信息,最长255个字符 Severity:显示错误严重级别,可用范围0-18级,当其值大于10时,将自动设置全局变量@@ERROR为非零值 State:表示错误状态,是1-127的值 Option:指示是否将错误记录到服务器日志中附录附录关键代码: select 姓名=sname, 语文=sum(case subject when '语文' then score end), 数学=sum(case subject when '数学' then score end) from score group by sname附录附录查询只参加了N门考试的学员姓名和学号的存储过程 学员表为(stuInfo),分数表为(score),关键代码如下: Create proc proc_find @n int AS select 姓名=(select sname from stuInfo where stuID=score.stuID), 学号=stuID from score group by stuID having count (*)=@n附录附录创建随机数 RAND ( 随机种子 ) 产生0-1之间的随机数 随机种子一般算法是:当前月份×100000+当前秒数×1000+当前毫秒数 即:随机种子=( Datepart ( mm , getdate( ) ) * 100000 ) + ( Datepart ( ss , getdate()) * 1000 ) +Datepart ( ms , getdate() ) ——这样每次产生的随机数可以最大限度避免重复 Distinct 过滤掉重复数据 Select distinct 字段名 from 表名 where 条件 求本周、本月 DateDiff ( wk , 查询的字段名 , getdate() ) = 0 DateDiff ( mm, 查询的字段名 , getdate() ) = 0
本文档为【SQL2005基础知识】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_607529
暂无简介~
格式:ppt
大小:749KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-03-10
浏览量:15