代码中使用的数据库名字 review 和 review_2,表名是 first 和 second
数据库创建常用的几个参数设置
use master -- 使用当前数据库
go -- 批处理,类似事务(在两个 go 之间)
create database review_2
on primary -- 一个数据库只能有一个主文件(默认文件)
(
name = review_2_Data, -- 逻辑名称
filename = 'D:\review_2_Data.MDF', -- 物理名称
size = 10, -- 初始大小
maxsize = unlimited, -- 最大值:无限制
filegrowth = 5 -- 每次增量为 5 MB
)
log on -- 事务日志文件
(
name = review_2_Log,
filename = 'D:\review_2_Data.LDF',
size = 10,
maxsize = 1000,
filegrowth = 10% -- 按照百分比增长
)
go
use review
exec sp_helpdb review_2
alter database review_2
modify file
(
name = review_2_Data, -- 必须出现 name
size = 110
)
alter database review_2
add file
(
name = review_2_Data, -- 必须出现 name
size = 110
)
use review
go
exec sp_detach_db @dbname = 'review'
go
use review
go
exec sp_attach_db @dbname = 'review',filename = '你存储的磁盘位置'
go
drop database review
create table first
(
-- not null 定义非空,primary key 定义主键
cid int not null primary key,
cname varchar(255),
-- check 定义了域完整性,此处是 check 也就是值范围
cage char(4) check( cage like '[0-9][0-9][0-9][0-9]'),
)
create table seconde
(
cmid int not null primary key,
--外键关联 first 表的 cid
cid int foreign key references first(cid)
)
create table SC
(
sno char(10) foreign key references Student(sno),
cno char(4) foreign key references Course(cno),
grade int ,
-- 创建组合主键
primary key(sno,cno)
)
alter table first add nothing int
alter table first alter column nothing varchar(255)
-- 修改数据表的某列为不空
alter table SC
alter column cid int not null
alter table first drop column nothing
列级约束
cmid int not null primary key
表级约束
cid int not null,
cname varchar(255),
primary key (cid,cname)
修改已经存在的表中的属性为主键(前提是该属性不为空)
alter table SC
add primary key (cid)
列级约束和表级约束的区别
列级约束
cid int references second(cid)
表级约束
foreign key (cid) references second(cid)
修改表-在已存在的表中添加外键
alter table SC
add constraint FK_cid foreign key (cid) references course (cid)
默认约束(default)
create table second
(
cid int not null primary key,
cname varchar(255) default 'zhangyu', -- 设置了默认约束,当没有给该属性键入值
的时候,默认使用 zhangyu
cage char(2) check( cage like '[0-9][0-9]')
)
如果表存在,需要添加默认值(def 是设置的默认约束的名称)
alter table second add constraint def default 'zhangyu' for cname
删除默认约束
alter table second drop constraint def
检查约束(check)
create table second
(
cid int not null primary key IDENTITY, -- identity 是 t-sql 语句中实现自动增长的方式
cage char(4) check(cage >= 0 and cage <= 100) -- 不能用 && 之类的判断方式
)
在以有表中增加检查约束
alter table second add constraint csex check(csex in ('m','f'))
唯一约束(unique)
ciid int unique
create unique clustered index index_name
on second (cname)
create unique nonclustered index index_name
on second (cname)
drop index second.index_name