S2→SQL Server数据库知识点
数据冗余是指同一数据被反复存放。
·数据的不一致性是指同一数据在不同的地方有不同的取值。
·数据库的设计就是在规划和结构化数据库中的数据对象(如:数据表)以及这些数据对象之间的关系的过程。
·概念模型是现实世界的抽象反映,不依赖于具体的计算机系统,是现实世界到机器世界的一个中间层次。
·客观存在并可以相互区分的事物叫实体。
·属性是实体所具有的某些特性,通过属性对实体进行描述。
·实体在之间的关系有三种:一对一关系、一对多关系、多对多关系。
·在E-R概念模型中,信息由实体、实体属性和实体之间的关系3中概念单元来表示。
·在数据库设计过程中,对数据库进行检查和修改并使他返回范式的过程叫做规范化。
·范式按照规范化的级别分为5中:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)。
·数据库的设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施阶段、数据库运行和维护。
【二】数据库的实现
1.创建数据库
·使用master数据库
use master
go
·启动执行dos命令的组件
exec sp_configure'show advanced options',1
reconfigure
ecex sp_configure'xp_cmdshell',1
reconfigure
·使用存储过程创建文件夹
exec xp_cmdshell'md 盘符:\路径\......\文件夹名',no_output
·判断数据库是否存在
if exists(select * from sys.sysdatabases where name='数据库名')
--如果数据库存在,则先删除 数据库
drop database 数据库名
go
* 注意:sys.sysdatabases表是一张系统表,用于存放所有的数据库信息
或:
if DB_ID('数据库名') is not null
drop database 数据库名
go
* 注意:DB_ID('数据库名')函数用于得到数据库在sys.sysdatabases表中的ID值,如果数据库存在,则返回数据库的ID值,如果不存在,则返回null值
·创建数据库
create databse 数据库名 on(
name='数据库的文件名',--设置数据库文件名;命名规则:数据库名_data或数据库名
filename='盘符:\路径\主数据库_mdf',--主数据文件保存位置
size =3MB,--文件初始大小
maxsize=10,--文件可以增长的最大值,可以无限制增长(unlimited)
filegrowth=1MB,--文件增长方式
)
log on --设置日志文件(
name='日志文件名',--设置日志文件名;命名规则:数据库名_log
filename='盘符:\路径\日志文件名'_ldf',--日志文件保存位置
size =3MB,--文件初始大小
maxsize=10,--文件可以增长的最大值,可以无限制增长(unlimited)
filegrowth=1MB,--文件增长方式
)
go
·使用数据库
use 数据库名
go
2.创建表
·判断表是否存在
if exists(select * from sys.sysobjects where name='表名')--如果表存在就先删除表
drop table 表名
go
*注意:系统表sys.sysobjects用于存放表和表中的约束信息
或:
if OBJECT_ID('表名')is not null
drop table 表名
go
* 注意:OBJECT_ID('表名')函数用于得到表在sys.sysobjects表中的ID值,如果表存在,则返回ID值,如果不存在,则返回null值
·创建表
create table 表名(
列名 数据类型 null\not null identity(初始值,增长值)
)
go
·给表添加约束
alter table 表名
add constraint 约束名 约束内容
constraint PK_表名_列名 primary key(列名) --主键
constraint UQ_表名_列名 unique(列名)--唯一约束
constraint DF_表名_列名 default(默认值) for 列名 --默认类型
constraint CK_表名_列名 check(...约束的条件) --check检查约束
constraint FK_从表名_主表名_从表的列名 foreign key(从表的列名) references 主表名 (主表的列名) --外键
·删除约束
alter table 表名
drop constraint 约束名称
go
·添加列的语法
alter table 表名
add { 字段 数据类型 字段特征}[......n]
·删除列
alter table 表名
drop column{字段}[....n]
·修改列
alter table 表名
alter column 字段 数据类型 [null | not null]
3.数据库安全管理
·SQL Server 通过两种身份认证方式来判断登录帐号和密码的有效性:一种是Windows身份认证方式和 SQL Server 和Windows 混合身份验证方式。
·创建登录帐号
create login 登录名称 with password='登录密码'
·修改登录帐号
Alter login 登录名称
with< set_option>[,....]
*注意:<set_option>部分的可以为“password='新密码'”或者为“name =新登录名称”。
·启动或禁用登录帐号
Alter login 登录名称{enable | disable}
go
·删除登录帐号
drop login 登录名称
go
·创建数据库用户
create user 用户名称
[{for | from }login 登录名]
·修改数据库用户
alter user 用户名称
with name =用户新名称
·删除数据库用户
drop user用户名称
4.授权
·用户权限管理
授予(grant):对用户授予某种权限
收回(revoke):对用户收回(即删除)已授予的权限
禁用(deny):禁止用户拥有某种权限
语法:
{grant | revoke | deny}权限[on 表名[(字段[,....n])]] to 数据库用户。