SQL语句(三)数据表的修改

数据表的修改

1. 创建实验表people

  • people

CREATE TABLE people
(
name varchar(40),
gender varchar(10),
birthday varchar(10)
)

2.修改表

 

ALTER TABLE 表名
子句

 

--(1) 添加字段
ALTER TABLE 表名
ADD 列名 类型 [列说明]

-- 列说明
-- [NULL | NOT NULL]
-- [DEFAULT]
-- [PRIMARY KEY][约束]

--例  在people中添加电话号码

ALTER TABLE people
ADD tel varchar(20)

--例 在people中添加年龄

ALTER TABLE people
ADD age int DEFAULT 18 CHECK(age >= 0 and age <= 150)

SELECT * FROM people

--例  在people中添加id字段作主键
ALTER TABLE people
ADD id varchar(10) CONSTRAINT pkey PRIMARY KEY

-- (2) 删除字段
ALTER TABLE 表名
DROP COLUMN 列名

--例如  删除“电话”字段
ALTER TABLE people
DROP COLUMN tel

-- (3)修改字段类型

ALTER TABLE 表名
ALTER COLUMN 列名 新类型

--例 将出生日期改为日期型
ALTER TABLE people
ALTER COLUMN birthday date

ALTER TABLE people
ALTER COLUMN age decimal(5,1)  --即使修改类型也不能与建表时的约束产生冲突,这里出错

--(4)添加约束

ALTER TABLE 表名
ADD CONSTRAINT 约束名
CHECK (条件)

--例 为性别字段添加约束
ALTER TABLE people
ADD CONSTRAINT pgender 
CHECK(gender='' or gender='')

--(5)删除约束

ALTER TABLE 表名
DROP CONSTRAINT 约束名

 

--例如 删除为性别加的约束
ALTER TABLE people
DROP CONSTRAINT pgender    --为约束命名,便于引用

--删除id上的主键
ALTER TABLE people
DROP CONSTRAINT pkey

 

--(6)添加主键约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名
PRIMARY KEY(字段列表)

--例如 将people中id和姓名设为主键(当前无主键)
--注: (1) 目前表中无主键
--     (2) 所用字段不允许空

 

ALTER TABLE people
ALTER COLUMN
name varchar(40) NOT NULL    --修改name字段的类型

ALTER TABLE people
ADD CONSTRAINT pkey
PRIMARY KEY(id, name)        --组合主键

--(7)添加外键约束

ALTER TABLE 表名
ADD CONSTRAINT 约束名 FOREIGN KEY(外键字段名)
REFERENCES 表名2(被参照字段名)

--例 id设为外键

ALTER TABLE people
ADD CONSTRAINT fkey FOREIGN KEY(id)
REFERENCES Student(snumb)

--此时列的长度不匹配, 报错,即:先运行下段代码,再重新运行上段代码
ALTER TABLE people
ALTER COLUMN 
id varchar(10) NOT NULL

--3.删除表

DROP
DROP TABLE 表名

--例如 删除people表
DROP TABLE people

 

posted @ 2017-02-18 21:18  douzujun  阅读(1486)  评论(0编辑  收藏  举报