目录
前言
本文主要以SQL语句的方式,介绍表的基本操作,包括表的创建、修改和删除,表中的数据插入和删除操作等。
注:表必须建在数据库中,不能单独存在,也不能以操作系统文件的形式存在。
一、创建表
-- 语法
CREATE TABLE <表名>
-- 示例:创建学生表 student
create table student
(
sno int primary key,
sname nvarchar(20) not null,
ssex char(2),
grade nchar(5),
二、修改表
1、新增字段
-- 语法
ALTER TABLE <表名> ADD <字段名> <字段类型>
-- 示例:向表 student中添加 birthday 列
alter table student
add birthday date
注:新增字段时,一定要设置为允许为空,不然容易报错。
2、修改字段
-- 语法
ALTER TABLE <表名> ALTER COLUMN <字段名> <字段类型>
-- 示例:将student表中 sno字段的数据类型设置为 char(9)
alter table student
alter column sno char(9) primary key
2、删除字段
-- 语法
ALTER TABLE <表名>
DROP COLUMN <字段名>
-- 示例:删除 student表中的 birthday字段
alter table student
drop column birthday
三、列约束和表约束
列约束和行约束,是用来约束表中的数据,确保数据的完整性。列约束,是针对表中一个列的约束,约束设置在某一个列的列名和数据类型之后;表约束,是针对表中一个或多个列的约束,与列定义一样把它定义为表定义的一个表元素。
SQL Server 2012 的 6种约束类型
- null \ not null -- 为空 \不为空,设置字段列是否允许为空
- primary key -- 主键约束,设置字段为主键
- unique -- 唯一性,设置字段具有唯一性
- check -- 设置字段的取值范围
- default -- 设置字段的默认值
- foreign key -- 设置外键,设置字段为外键,与其他表建立联系
四、表数据操作
表创建好后,表中是没有数据的,没有存储数据的表是没有意义的。要让表有意义,就要向表中添加数据。
1、插入数据
SQL中,用 INSERT 命令向表中插入数据。
-- 语法
INSERT INTO <表名> (<字段1,字段2,...,字段n>)
VALUES
(字段值1,字段值2,...,字段值n)
-- 示例:向 student表中插入3行数据
insert into student(sno,sname,ssex,grade)
values
(201501001,'张三','男','2024级')
(201501002,'李四','女','2024级')
(201501003,'王二','男','2024级')
2、修改数据
在 SQL中,用 UPDATE语句修改数据,一般配合着 WHERE语句使用。
-- 语法
UPDATE <表名> SET <字段1> = <字段值1>
WHERE <条件语句>
-- 示例:将学号为 201501001的学生性别设置为女,年级设置为2023级。
update student
set ssex = '女', grade = '2023级'
where sno = '201501001'
3、删除数据
在 SQL中,用 DELETE语句删除数据,一般会配合这 WHERE语句使用。
-- 语法
DELETE <表名> WHERE <条件语句>
注:当没有 WHERE语句时,删除的是表中所有数据。
-- 示例 1:删除学号为 201501001的学生信息。
delete student
where sno = '201501001'
-- 示例 2:删除 student表中的所有数据。
delete student
4、清空表数据
TRUNCATE TABLE 与 DELETE <表名> 的功能相同,但是,TRUNCATE TABLE 的效率更高,速度更快,占用更少的系统资源和事务日志资源。
-- 语法
TRUNCATE TABLE <表名>
-- 示例:清空表 student
truncate table student
五、删除表
删除表,就是将表中的数据和表的结构从数据库中永远去除,表被删除之后,就不能再恢复该表的定义。
在 SQL中,用 DROP语句删除表。与 DELETE不同的是,DELETE删除的只是表中的数据,对表结构不会产生任何的改变,而 DROP则会将表中的数据及表的结构一起删除,即使用DROP删除表后,该数据库中就不会再有这个表了。
-- 语法
DROP TABLE <表名>
-- 示例:删除表 student
drop table student