二、SQL语句:表操作

本节,我们了解怎样利用SQL语句来对表(Table)进行操作
如创建表,修改表,查询表信息,表与表之间建立关系向表中插入数据,删除表等
备注:以下例子均在SQL Server 2000中执行通过


一、创建表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CREATE TABLE worker
(
 职工号 INT PRIMARY KEY
,姓名 CHAR(8)
,性别 CHAR(2)
,出生日期 datetime
,党员否 VARCHAR(2) DEFAULT('否') NOT NULL
,参加工作 datetime
,部门号 INT
)

/*部门表 depart */
CREATE TABLE depart
(
 部门号 INT  
,部门名 CHAR(10)
,PRIMARY KEY(部门号)
)

/*工资表 salary*/
CREATE TABLE salary
(
 职工号 INT NOT NULL
,姓名 CHAR(8)
,日期 datetime NOT NULL  
,工资 DECIMAL(6,1)
,PRIMARY KEY(职工号,日期)
)

备注:
1、primary key(职工号,日期):表示由2个字段的组合作为表的主键
2、not null:表示该字段值不能为空,默认为可为null
3、int、char(10)、varchar(2):表示字段类型
4、defaule:表示字段的默认值

二、查询表结构

1
sp_help salary

结果如下:

三、修改表

1. 修改字段信息

1
2
3
4
5
6
7
8
/*
 语法如下:
 alter table 表名
 Alter column 列名 新数据类型 新列约束
*/


ALTER TABLE worker
ALTER COLUMN 性别 CHAR(4)

2. 增加字段

1
2
3
4
5
6
7
8
/*
 语法如下:
 alter table 表名
 Add 列名 数据类型 列约束
*/


ALTER TABLE worker
ADD 电话号码 CHAR(12)

3.删除字段

1
2
3
4
5
6
7
8
/*
 语法如下:
 alter table 表名
 drop column 列名
*/


ALTER TABLE worker
DROP COLUMN 电话号码

4.修改表名称及字段名

1
2
3
4
5
6
7
8
/*
 语法如下:
 exec sp_rename '原表名','新表名'
 exec sp_rename '原表名.原列名','新表名.原列名'
*/


EXEC sp_rename 'worker','new_worker'
EXEC sp_rename 'new_worker.党员否','是否为党员'

四、建立表与表之间的关系

1
2
3
4
5
/*
  给职工表和部门表建立关系,给职工表添加外键
 */

ALTER TABLE new_worker  
ADD CONSTRAINT z_b_con FOREIGN KEY(部门号) REFERENCES depart(部门号)

五、向表中插入数据

1
2
INSERT INTO salary(职工号,姓名,日期,工资) VALUES(1,'孙华','2004-04-01',1201.5)
INSERT INTO salary(职工号,姓名,日期,工资) VALUES(2,'陈明','2004-04-01',1350.6)

六、更新字段

1
2
3
UPDATE salary
SET 工资=5000
WHERE 姓名='孙华'

七、删除表中数据

1
delete salary

八、删除表

1
2
3
DROP TABLE salary
DROP TABLE new_worker
DROP TABLE depart
LEAVE A REPLY

loading