sqlserver DDL语言建库建表建约束

— 判断某个数据库是否存在,存在就删除时的语句
— 创建数据库是必须先使用master数据库
— if 判断
— db_id 数据库ID名称
— is not null 判断是否为空
— drop 删除关键字
— database 数据库关键字
— 比如
— 判断学校数据库是否存在,存在就删除

use master
go
if db_id(student) is not null
    drop database student
go

— 创建数据库时的语句
— 创建数据库是必须先使用master数据库
— create 创建数据库关键字
— database 表示创建为数据库
— on 表示数据库的具体信息
— name 数据库名 用法:name=‘数据库名称’
— filename 数据库文件名 用法:filename=‘文件的绝对路径,文件的后缀为(.mdf)’
— size 数据库初始大小,单位为MB 用法:size=初始大小
— maxsize 数据库的最大大小 用法:maxsize=数据库的最大大小
— filegrowth 数据库文件大小增长速度 用法:filegrowth=增长的速度
— 比如
— 创建学校数据库

use master
go
create database school on
(
-- 数据库名为student
name=‘student’,
-- 文件名为
filename=D:\\db\student.mdf,
-- 初始大小为5,单位为MB
size=5,
-- 最大大小为20,单位为MB
maxsize=20,
-- 数据库文件大小的增长速度为10%
filegrowth=10%
)
go

— 创建表时的各种约束
— 创建表时必须先使用需要的数据库
— primary key 主键 用法:直接跟在字段数据类型后
— default 默认值 用法:字段数据类型后,default(字段默认值)
— unique 唯一键 用法:字段数据类型后
— check 检查约束 用法:字段数据类型后 check(约束的具体内容)
— not null 非空约束 用法:直接跟在字段数据类型后
— identity 自增 用法:字段数据类型后 identity(自增种子 英文逗号 自增量)
— references 外键关系 用法:字段数据类型后 references [主表名](主表的外键字段)
— 比如

-- 在学校数据库创建班级表
use school
go
create table classes
(
-- 编号 整型 主键 自增(种子为1,增量为1)
ID int primary key identity(1,1),
-- 班级名 nvarchar 唯一 非空
className nvarchar(50) unique not null
)
go
-- 在学校数据库创建学生表
create table student
(
-- 编号 整型 主键 自增(种子为1,增量为1)
ID int primary key identity(1,1),
-- 学号 varchar 唯一 非空
stuID nvarchar(10) unique not null,
-- 学生名 nvarchar 非空
stuName nvarchar(20) not null,
-- 性别 nvarchar 检查约束为 只能为男或女 默认为男
stuSex nvarchar(4) check(stuSex in(,)) default(),
-- 班级编号 整型 外键班级表班级编号
classID int references [classes](ID)
)
go
-- 在学校数据库创建班级表
use school
go
create table classes
(
-- 编号 整型 主键 自增(种子为1,增量为1)
ID int primary key identity(1,1),
-- 班级名 nvarchar 唯一 非空
className nvarchar(50) unique not null
)
go
-- 在学校数据库创建学生表
create table student
(
-- 编号 整型 主键 自增(种子为1,增量为1)
ID int primary key identity(1,1),
-- 学号 varchar 唯一 非空
stuID nvarchar(10) unique not null,
-- 学生名 nvarchar 非空
stuName nvarchar(20) not null,
-- 性别 nvarchar 检查约束为 只能为男或女 默认为男
stuSex nvarchar(4) check(stuSex in(,)) default(),
-- 班级编号 整型 外键班级表班级编号
classID int references [classes](ID)
)
go