sql的存储过程相比sql语句更方便,安全,快速。
存数过程的概念
在大型数据库中,完成特定功能的sql语句集,存储在数据库中,经过第一次编译后再次调用就不需要编译,用户通过指定存储过程的名称和参数来执行它。存储过程包括逻辑控制
语句和数据操纵语句,他可以接受参数,输出参数,返回单个或者多个结果集。
存数过程的优缺点:
1.由于应用程序随着时间的推移不断修改,增删功能,sql语句也会变得更加复杂,存储过程为封装此类代码提供了一个替换位置。
2.由于存储过程创建的时候就在服务器上的数据库进行了编译并存储在数据库中,所以存储过程运行比单个sql语句要快。
3.由于在调用的时候只需提供存储过程的名称和参数,所以在一定程度上减少网络流量,减少网络负担。
4.可维护性高,通常,跟新存储过程即可,比重新部署程序集要减少时间和精力。
5.代码精简一致,一个存储过程可以用于应用程序的不同位置。
6.增加安全性.
通过向用户授予对存储过程 (而不是基于表) 的访问权限 , 它们可以提供对特定数据的访问 ;
提高代码安全 , 防止 SQL注入 (但未彻底解决 , 例如将数据操作语言 DML 附加到
输入参数) ;
SQLParameter 类指定存储过程参数的数据类型 , 作为深层次防御性策略的一部分 , 可以验证用户提供的值类型 (但也不是万无一失 , 还是应该传递至数据库前得到
附加验证) ;
缺点 :
如果更改范围大到需要对输入存储过程的参数进行更改 , 或者要更改由其返回的数据 , 则仍需要更新程序集中的代码以添加参数 , 等等 ;
可移植性差 , 由于存储过程将
应用程序绑定到 Server , 因此使用存储过程封装业务逻辑将限制应用程序的可移植性 ; 如果应用程序的可移植性在您的环境中非常重要 , 则将业务逻辑封装在不特定于 RDBMS
的中间层中可能是一个更佳的选择 ;
创建一个表,插入数据
use lesson
create table Money(
id int identity(1,1) primary key,
money int
);
关系型数据库
关系型数据库由数据表和数据表关联组成。
主关键字,又叫主键,用来标识表中行的唯一标识的关键字。
范式理论
规范化的数据库符合关系模型规则的数据库。
目前关系型数据库有6种范式。
第一范式:1NF
第二种范式:2NF
第三种范式:3NF
BOYCE-CODD范式
第四种范式:4NF
第五种范式:5NF
第一范式:是指同一列不能有重复相同的值。
第二范式:是指任何一个非主键字段都必须依赖主键。
第三范式:是指任何两个非主键字段的数据值不存在依赖关系。
E-R模型
即实体关系型数据模型
实体是指客观世界中的事物,可以是具体的,也可以是抽象的。如:一本书,一种气体。
关系
关系可以是一对一,可以是一对多,也可以是多对多。
sql Server 2008体系结构
数据库引擎:核心服务。如:创建数据表,创建数据视图,创建数据视图。
分析服务:分析数据,和数据挖掘。
报表服务:创建和发布报表。
集成服务:负责完成数据提取,转化和加载的操作。
模板资源管理器
可能模板资源资源器不可见的,可以在视图中选择。
sql server 联机丛书
这个丛书可以帮助我们解决问题,位置在sql server的管理帮助。
sql server 配置管理器
包含:服务
网络配置
SQL Native Client
Business Intelligence Development Studio的作用是提供商业智能解决方案所需要的模板。
sql server 外围应用配置器
SQLcmd 工具
输入sqlcmd -?的作用 查询语句,GO的作用是执行数据库组成
表
存储过程
视图
触发器 (可以避免错误的操作,例如误删除操作)
用户和角色
其他数据库组成部分
使用管理工具创建数据库
使用语句创建数据库。
create database TEST1
查看数据库状态
使用目录视图
使用函数
使用系统存储过程
修改数据名称
修改数据库名称修改数据库的大小
alter database TEST2 MODIFY NAME=TEST1 用语句修改
删除数据库
DROP DATABASE TEST1
分离和附加数据库
分离就是把数据库从sql server 中分离出去。
附加:就是当前数据库附加到sql server中。
收缩数据库:
缩小数据大小还可以缩小日志大小
缩小日志文件数据库快照相当于给数据库照了个照片。快照之后,数据库发生变化,但是快照不会发生变化。
快照的优点:
1、维护历史数据生成报表。数据库快照可以提供数据库静态视图。可以通过快照访问特定的数据
2、将查询实施在数据库快照上,释放主体数据库上的资源。
3. 加快恢复操作效率,将数据库恢复生成快照的状态比备份还原要快的多。
create database student on (name=slgk,fileName='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\student_1.mdf') as snapshot of slgk从数据库快照中恢复数据:
restore database slgk from database_snapshot='student'我们用数据库快照恢复数据后,发现创建新的数据库被恢复后的数据库替换了。
快照生成的数据库分离后会出现错误:
因为是百度快照生成的复制数据库
点击数据库右键选择复制数据库
字段的数据类型
整数数据类型
int ,tinyint,samllint。
money和smallmoney
float和real类型
Bit
字符数据类型
char,vchar,Text,Nchar,Nvarchar,ntext.
日期和数据类型
日期类型二进制数据类型
binary,varbinary,image3中类型。
网友评论