SqlServer创建删除数据库,表,约束
使用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 约束名 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |