《SQL Server 2008从入门到精通》--20180627

1 数据库范式理论

范式理论是为了建立冗余较小结构合理的数据库所遵循的规则。关系数据库中的关系必须满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、第四范式(4NF)、第五范式(5NF)

1.1 第一范式

对象的任意属性不能被拆分,每个属性有且仅有一个值,即没有重复的行,没有重复的列。

1.2 第二范式

在第一范式的基础上,要求所有非主属性都与主属性完全相关。假设属性1和属性2为主属性,属性3为非主属性,如果属性1或者属性2能唯一确定属性3,则不符合2NF,只有(属性1+属性2)能唯一确定属性3(有助于数据库基础性操作的实现)才符合2NF

1.3 第三范式

在第二范式的基础上,要求除主键外其他字段不相关,不存在依赖性。比如一张表中非主属性1,2,3,属性1=属性2-属性3,则该表不满足第三范式。(不要在数据库中存储可以简单计算得出的数据)

1.4 BCNF

在第三范式基础上,要求表中所有字段(包括主键)都互不相关,不存在依赖性。即主属性不依赖于主属性。

1.5 第四范式

表内不存在多对多关系。如果A和B是1:N的关系,A和C是1:N的关系,B和C互相独立,则不满足第四范式。

1.6 第五范式

在第四范式的基础上,可以分解成更小的表。从最终结构重新建立原始结构。

2 Transact-SQL行构造器

例:用INSERT语句一次性插入多行数据

CREATE TABLE a(
    Column1 NVARCHAR(max),
    Column2 NVARCHAR(max)
);
Go
INSERT INTO a VALUES(‘1’,’1’),(‘2’,’2’),(‘3’,’3’);

3 用存储过程新建登录名和用户名

创建登录名huyan1,密码111111,默认数据库test,切换到test数据库下,创建登录名huyan1在test数据库中的用户hy1

EXECUTE sp_addlogin ‘huyan1’,’111111’,’test’
USE test
EXEC sp_adduser 'huyan1','hy1'

或使用sp_grantdbaccess创建一个与登录名相同的数据库用户名。

EXEC sp_addlogin 'hy2';
GO
USE test
EXEC sp_grantdbaccess 'hy2'

注:仅创建登录名而没有创建数据库用户名,该登录名无法正常登录数据库。可以使用sql语句创建数据库用户名,或者右键登录名—属性—用户映射中勾选数据库。创建和删除数据库用户名语句必须在该数据库下执行。用户名hy1默认权限public。

删除新建的登录名:

EXECUTE sp_droplogin ‘huyan1’

删除新建的用户名:

USE test;
EXECUTE sp_dropuser ‘hy1’

4 用户权限

4.1 主要语句
USE test;
GRANT SELECT,UPDATE,DELETE
ON Customers
TO huyan1

REVOKE SELECT,UPDATE,DELETE
ON Customers
TO huyan1

注: GRANT语句必须在目标数据库下执行。

4.2 授予用户权限的前提

(1)创建登录名huyan1,密码111111,默认数据库test

EXCUTE sp_addlogin ‘huyan1’,’111111’,’test’

(2)在huyan1登录名的目标数据库test下创建用户hy

USE test;
CREATE USER hy FOR LOGIN huyan1 WITH
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值