数据表的修改
1. 创建实验表people
people
CREATE TABLE people
(
name varchar(),
gender varchar(),
birthday varchar()
)
2.修改表
ALTER TABLE 表名
子句
--(1) 添加字段
ALTER TABLE 表名
ADD 列名 类型 [列说明]
-- 列说明
-- [NULL | NOT NULL]
-- [DEFAULT]
-- [PRIMARY KEY][约束]
--例 在people中添加电话号码 ALTER TABLE people
ADD tel varchar() --例 在people中添加年龄 ALTER TABLE people
ADD age int DEFAULT CHECK(age >= and age <= ) SELECT * FROM people --例 在people中添加id字段作主键
ALTER TABLE people
ADD id varchar() 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(,) --即使修改类型也不能与建表时的约束产生冲突,这里出错
--(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() 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