slq存储过程及其他知识

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中类型。

你可能感兴趣的:(slq存储过程及其他知识)