【SQL server】创建表,增删改,约束(数据完整性)

-- 创建表
create table class
(classno nvarchar(8) not null , --不允许为空值
classname nvarchar(20) not null)
go

-- 增加列ope,clo
alter table course
add  ope datetime null, clo nvarchar(8) null
go

--删除列ope,clo
alter table course
drop column ope,clo
go

-- 修改某个列名(旧名,新名)
sp_rename 'course.cno','course.couno','column'
go

--重新命名表的名字
EXEC sp_rename 'course','cou'
go

-- 插入数据
insert into cou values('01','ma')

select * from cou

-- 删除表
drop table cou
go

-- 创建一个临时表
create table #t1
(couno nvarchar(6),coname nvarchar(6))
go
insert into #t1 values('006','lo')
go
select * from #t1
insert #t1 select sno,sname from stu
go


--直接将结果集数据输入到临时表#ti,并创建该临时表
select sno,sname into #ti from stu
go
select * from #ti

--定义表变量
declare @t
table(sno nvarchar(4),sname nvarchar(8))
-- 向表变量中输入数据,方式1
insert into @t values('004','ln')
-- 向表变量输入数据,方式2
insert @t select sno,sname from stu 

create table Department
(departno varchar(8) not null,
departname varchar(20))
go

--创建主键约束PK_Department为departno
alter table Department
add constraint PK_Department PRIMARY KEY(departno)
go

--删除表
drop table Department


-- 创建表的同时,创建主键
CREATE TABLE Depart
(departno nvarchar(8) not null,
departname nvarchar(8) not null,
constraint PK_Department PRIMARY KEY (departno))
go

-- 使用ALTER TABLE...DROP CONSTRAINT ...删除主键约束
ALTER TABLE Department
DROP CONSTRAINT PK_Department
go

alter table class
add departno varchar(8)

--对表class创建外键约束,基于departno,要求departno是Department表的主键
ALTER TABLE class
ADD CONSTRAINT FK_Depart FOREIGN KEY(departno)
REFERENCES Department(departno)
go 

--删除外键约束
ALTER TABLE class
DROP CONSTRAINT FK_Deaprt
go

--创建唯一约束,唯一约束与主键约束不同之处:唯一约束可以取空值,但是主键约束不可
ALTER TABLE class
ADD CONSTRAINT UN_classno UNIQUE(classno)
go

--删除唯一约束
ALTER TABLE class
DROP CONSTRAINT UN_classno
go 

-- 约束表class中的classno列值只能取3位数,并且不可以取3个0
ALTER TABLE class
ADD CONSTRAINT CK_class check(classno like '[0-9][0-9][0-9]'
AND classno <> '000')
go

--删除上述check约束
ALTER TABLE class
drop constraint CK_class 
go

-- 默认约束,设置默认值
ALTER TABLE class
ADD CONSTRAINT DE_classname DEFAULT('NAME') FOR classname
go
--删除默认约束
ALTER TABLE class
DROP CONSTRAINT DE_classname
go

--设置默认约束的方法2,先创建,后绑定使用
CREATE DEFAULT DE_classname as 'name'
go
EXEC sp_bindefault DE_classname,'class.classname'
go
--删除,需要先删除绑定,后删除默认值
sp_unbindefault 'class.classname'
drop DEFAULT DE_classname

发布了138 篇原创文章 · 获赞 32 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43448491/article/details/104684956