Sql Server创建删除数据库,表,约束
使用SQL语句创建和删除数据库
数据库的组成部分:
1>主数据文件: *.mdf
2>次数据文件: *.ndf
3>日志文件: *.ldf
创建数据库:
T-SQL创建数据库的语法如下:
CREATE DATABASE 数据库名
ON [PRIMARY]
(
<数据文件参数> [,……n] [<文件组参数>]
)
[LOG ON]
(
{<日志文件参数> [,……n] }
)
文件具体参数语法如下:
(
[NAME=逻辑文件名,]
FILENAME=物理文件名
[,SIZE=大小]
[,MAXSIZE={最大容量|UNLIMITED}]
[,FILEGROWTH=增长值]
)[,……n]
文件组参数的语法如下:
FILEGROUP 文件组名 <文件参数> [,……n]
其中,“[ ]”表示可选部分,“{ }”表示必需的部分。各参数的含义说明如下:
》数据库名:数据库的名称,最长为128个字符
》PRIMARY:该选项是一个关键字,指定主文件组中的文件
》LOG ON:指明事务日志文件的明确定义
》NAME:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符
》FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应
》SIZE:指定数据库的初始容量大小
》MAXSIZE:指定操作系统文件可以增长到的最大尺寸
》FILEGROWTH:指定文件每次增加容量的大小,当指定的数据为0时,表示文件不增长
删除数据库:
DROP DATABASE 数据库名
接下来的问题是如何检测是否存在该数据库
EXISTS(查询语句)可以检测某个查询是否存在,如果查询语句返回的记录结果不为空,则表示存在;否则表示不存在
IF EXISTS ( SELECT * FROM SYSDATABASES WHERE NAME='KEYMO' )
DROP DATABASE KEYMO
CREATE DATABASE KEYMO
(
……
)
这段语句表示在系统表中查询是否有KEYMO库存在,如果不存在,则创建KEYMO数据库,如果存在,则删除该库再创建KEYMO数据库
使用SQL语句创建和删除数据表
创建表
创建表的步骤:
1>确定表中有哪些列
2>确定每列的数据类型
3>给表添加各种约束
4>创建各表之间的关系
创建表的语法如下:
CREATE TABLE 表名
(
字段1 数据类型 列的特征
字段2数据类型 列的特征
……
)
删除表
DROP TABLE 表名
使用SQL语句创建和删除约束
约束的目的是确保表中数据的完整性,常用的约束类型如下:
》主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空
》唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值
》检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束
》默认约束(Default Constraint):某列的默认值,比如学员信息表,男生多的话就可将默认设为“男”
》外键约束(Foreign Key Constraint):用于在两表之间建立关系,需要指定引用主键的那一列
添加约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名 约束类型 具体的约束说明
示例:
——添加主键约束(将stuNo作为主键)
ALTER TABLE STUINFO
ADD CONSTRAINT PK_STUNO PRIMARY KEY (stuNo)
——添加唯一约束(身份证号唯一)
ALTER TABLE STUINFO
ADD CONSTRAINT UQ_STUID UNIQUE (stuId)
——添加默认约束(如果地址不填,默认为“地址不详”)
ALTER TABLE STUINFO
ADD CONSTRAINT DF_STUADDRESS DEFAULT ('地址不详') FOR STUADDRESS
——添加检查约束,要求年龄只能在15~40岁之间
ALTER TABLE STUINFO
ADD CONSTRAINT CK_STUAGE CHECK (STUAGE BETWEEN 15 AND 40)
——添加外键约束(主表STUINFO和从表STUMARKS建立关系,关联字段为stuNo)
ALTER TABLE STUINFO
ADD CONSTRAINT FK_STUNO FOREIGN KEY (stuNo) REFERENCES STUINFO (stuNo)
删除约束
ALTER TABLE 表名
DROP CONSTRAINT 约束名