1. SQLServer 中表的基本概念
在 SQLServer 中,表是构成数据库的基本组成单元,它是一种结构化的数据集合,由行和列组成 。每一列都有一个数据类型,用来限制此列所能存储的数据种类。而每一行则包含了一组相关的数据,每一行都有一个唯一的标识符,称为行标识符,也叫主键或者主键列。
1.1 如何创建表
我们可以使用CREATE TABLE语言来创建一张新表,其中包含了需要的列和相应的数据类型。
CREATE TABLE 表名
(
列名1 数据类型1,
列名2 数据类型2,
列名3 数据类型3,
...
列名n 数据类型n
)
例如,我们需要创建一个名为 "employee" 的表,其中包含了 employee_id(员工号)、name(姓名)、sex(性别)、age(年龄)和department(部门)五个列时,可以使用以下语句来创建:
CREATE TABLE employee
(
employee_id int PRIMARY KEY,
name varchar(100) NOT NULL,
sex char(10) NOT NULL,
age int,
department varchar(100)
)
这条语句告诉数据库创建了一个名为 "employee" 的表,该表包含了五个列。其中,employee_id 是该表的主键列,列的数据类型为整型;name 和 sex 列是 NOT NULL 类型,也就是说这两个列的值不能为空值;age 和 department 列则是可选的。
1.2 如何修改表结构
在建立完表结构之后,您也许需要修改表结构。例如,您可能需要添加一列或删除一列,或者更改列的数据类型等。针对这些情况,在SQLServer中我们可以使用 ALTER TABLE 语句。
1.2.1 添加一列
要添加一列,使用 ALTER TABLE 语句,然后使用 ADD 关键字,并给出要添加列的名称和数据类型。
ALTER TABLE 表名
ADD 列名 数据类型;
例如,对于 employee 表,我们想要添加一个 salary 列:
ALTER TABLE employee
ADD salary DECIMAL(9, 2);
这个语句将在 employee 表中添加了一个 salary 列,该列的数据类型为 DECIMAL ,共 9 位数字,2 位小数。
1.2.2 删除一列
要删除一列,使用 ALTER TABLE 语句,然后使用 DROP COLUMN 关键字,并给出要删除列的名称。
ALTER TABLE 表名
DROP COLUMN 列名;
例如,对于 employee 表,我们想要删除 salary 列:
ALTER TABLE employee
DROP COLUMN salary;
这个语句将在 employee 表中删除了一个 salary 列。
1.2.3 更改列的数据类型
要更改一列的数据类型,使用 ALTER TABLE 语句,然后使用 ALTER COLUMN 关键字,并给出要更改列的名称和新的数据类型。
ALTER TABLE 表名
ALTER COLUMN 列名 数据类型;
例如,对于 employee 表,我们想要将 age 列的数据类型从 int 改为 varchar:
ALTER TABLE employee
ALTER COLUMN age varchar(10);
这个语句将在 employee 表中将 age 列的数据类型从 int 改为 varchar,最大长度为 10 个字符。
2. 如何查询表数据
在 SQLServer 中,使用 SELECT 语句来从表中获取数据。SELECT 语句可以指定要返回的列,可以使用 WHERE 子句限制返回的数据行,还可以支持排序等多种选项。
2.1 查询表中的所有数据
要查询表中的所有数据,可以使用以下语句:
SELECT * FROM 表名;
例如,查询 employee 表的所有数据,可以使用以下语句:
SELECT * FROM employee;
这个语句将返回 employee 表中的所有数据。
2.2 查询表中的部分数据
我们可以使用 SELECT 语句的 WHERE 子句限定返回的数据行。
SELECT * FROM 表名
WHERE 列名 操作符 值;
例如,查询 employee 表中 sex 为 'M' 的数据,可以使用以下语句:
SELECT * FROM employee
WHERE sex = 'M';
这个语句将返回 employee 表中 sex 为 'M' 的所有数据行。
2.3 指定返回的列
我们可以使用 SELECT 语句的列清单(column list)来指定返回的列。
SELECT 列1, 列2, 列3, ... FROM 表名;
例如,查询 employee 表中 name 和 department 两列数据,可以使用以下语句:
SELECT name, department FROM employee;
这个语句将返回 employee 表中 name 和 department 两列数据。
2.4 排序
我们可以使用SELECT语句的ORDER BY子句来排序返回的数据行。
SELECT * FROM 表名
ORDER BY 列名1, 列名2, 列名3, ... ASC | DESC;
例如,查询 employee 表按照 age 和 department 两列数据进行升序排序,可以使用以下语句:
SELECT * FROM employee
ORDER BY age ASC, department ASC;
这个语句将返回 employee 表按照 age 和 department 两列数据进行升序排序的所有数据行。
3. 表的相关操作
3.1 删除表
要删除一张表,可以使用 SQLServer 中的 DROP TABLE 语句。注意:删除表后,表中的所有数据也将被删除。
DROP TABLE 表名;
例如,删除 employee 表:
DROP TABLE employee;
3.2 复制表
要复制一张表,可以使用 SQLServer 中的 SELECT INTO 语句。SELECT INTO 语句同时创建一个新表,并使用 SELECT 语句从原始表中复制数据。
SELECT * INTO 新表名
FROM 原始表名;
例如,复制 employee 表并创建新表 new_employee:
SELECT * INTO new_employee
FROM employee;
3.3 重命名表
要重命名一张表,可以使用 ALTER TABLE 语句,并使用 RENAME TO 关键字。
ALTER TABLE 旧表名
RENAME TO 新表名;
例如,将 employee 表重命名为 newtable:
ALTER TABLE employee
RENAME TO newtable;
4. 总结
SQLServer 中的表是数据库中的基本组成单元。我们可以使用 CREATE TABLE 语句来创建表,并使用 ALTER TABLE 语句来修改表的结构。要查询表中的数据,我们可以使用 SELECT 语句,可以指定返回的列、限制返回的数据行、排序等多种选项。要删除、复制或重命名表,我们可以使用 DROP TABLE 、SELECT INTO 和 ALTER TABLE 语句。