sql動態添加約束和列

USE master
GO
IF EXISTS(SELECT * FROM sysdatabases WHERE name='goods')
DROP DATABASE goods
GO
CREATE DATABASE goods
ON
(
NAME='goods',
FILENAME='F:\網頁小偷\goods.mdf',
SIZE=4,
FILEGROWTH=10%
)
LOG ON
(
NAME='goods_log',
FILENAME='F:\網頁小偷\goods_log.ldf',
SIZE=4,
FILEGROWTH=10%
)
GO
USE goods
GO
IF EXISTS(SELECT * FROM sysobjects WHERE name ='stu')
DROP TABLE stu
GO
CREATE TABLE stu
(
id INT IDENTITY(1,1) PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
sex CHAR(2) NOT NULL,
age INT NOT NULL
)
go
USE goods
go
ALTER TABLE stu
ADD CONSTRAINT uq_stu_name UNIQUE (NAME)--添加唯一約束
ALTER TABLE stu
ADD CONSTRAINT ch_stu_sex CHECK (sex IN('男','女'))--給性別添加檢查約束
ALTER TABLE stu
ADD CONSTRAINT ch_stu_age CHECK (age BETWEEN 10 AND 70)--給年齡添加檢查約束
ALTER TABLE stu
ADD ADDRESS varchar(30) NOT NULL--動態添加一列,address地址
ALTER TABLE stu
ADD CONSTRAINT de_stu_address DEFAULT('湖北十堰')FOR address--給地址添加默認約束
SELECT * FROM  stu
ALTER TABLE stu
ALTER COLUMN ADDRESS varchar(30)--修改一列,修改address允許爲空
ALTER TABLE stu
DROP CONSTRAINT de_stu_address--刪除約束
SELECT * FROM stu
INSERT INTO stu(name,sex,age)--一次多行插入
SELECT '張三','男','22' UNION
SELECT '李四','男','30'UNION
SELECT '錢豔','女','18'
TRUNCATE TABLE stu--刪除表中所有數據
--主鍵約束(Primary Key constraint):要求主鍵列的數據唯一,並且不允許爲空。
--唯一約束(Unique Constraint):要求該列唯一,允許爲空,但只能出現一個空值。
--檢查約束(Check Constraint):某列取值範圍限制、格式限制等,如有關年齡的約束。
--默認約束(Default Constraint):某列的默認值,如我們的男性同學較多,性別默認爲男。
--外鍵約束(Foreign Key):用於在兩表之間建立關係需要制定引用主表的哪一列。


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