【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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章