首页 > 代码库 > (三)数据表的修改

(三)数据表的修改

数据表的修改

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 peopleADD tel varchar(20)--例 在people中添加年龄ALTER TABLE peopleADD age int DEFAULT 18 CHECK(age >= 0 and age <= 150)SELECT * FROM people--例  在people中添加id字段作主键ALTER TABLE peopleADD id varchar(10) CONSTRAINT pkey PRIMARY KEY

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

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

-- (3)修改字段类型

ALTER TABLE 表名
ALTER COLUMN 列名 新类型

--例 将出生日期改为日期型ALTER TABLE peopleALTER COLUMN birthday dateALTER TABLE peopleALTER COLUMN age decimal(5,1)  --即使修改类型也不能与建表时的约束产生冲突,这里出错

--(4)添加约束

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

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

--(5)删除约束

ALTER TABLE 表名
DROP CONSTRAINT 约束名

 

--例如 删除为性别加的约束ALTER TABLE peopleDROP CONSTRAINT pgender    --为约束命名,便于引用--删除id上的主键ALTER TABLE peopleDROP CONSTRAINT pkey

 

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

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

 

ALTER TABLE peopleALTER COLUMNname varchar(40) NOT NULL    --修改name字段的类型ALTER TABLE peopleADD CONSTRAINT pkeyPRIMARY KEY(id, name)        --组合主键

--(7)添加外键约束

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

--例 id设为外键ALTER TABLE peopleADD CONSTRAINT fkey FOREIGN KEY(id)REFERENCES Student(snumb)--此时列的长度不匹配, 报错,即:先运行下段代码,再重新运行上段代码ALTER TABLE peopleALTER COLUMN id varchar(10) NOT NULL

--3.删除表

DROP
DROP TABLE 表名

--例如 删除people表DROP TABLE people

 

(三)数据表的修改