1. MSSQL中创建表格的意义
MSSQL是Microsoft SQL Server的缩写,是一款由微软公司开发的关系型数据库管理系统,广泛应用于企业级应用程序和网站。在MSSQL中创建表格是数据库设计的基本步骤之一,表格是存储数据的基本单位,在表格中定义了数据的结构和相关约束,可以进行数据的存储、查询和更新等操作。因此,创建表格是数据库应用的重要组成部分。
2. 创建表格的SQL语句
2.1 CREATE TABLE语句的基本语法
在MSSQL中,使用CREATE TABLE语句可以创建一个新的数据库表格。其基本语法如下:
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
column3 datatype [ NULL | NOT NULL ],
....
);
其中,table_name是要创建的表格的名称,column是表格的列名,datatype是列的数据类型,NULL表示该列可以为空值,NOT NULL表示该列不允许为空值。例如,下面的代码创建了一个名为employees的表格,包含了id、name、age和salary四个列。
CREATE TABLE employees
(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
salary NUMERIC(8,2) DEFAULT 0.00
);
2.2 列属性的约束
在CREATE TABLE语句中,可以对列属性进行约束,来限制列的取值范围和操作。常用的列属性约束有:
PRIMARY KEY:将指定列作为表格的主键,唯一地标识每一行数据。
UNIQUE:限制指定列的值必须唯一,不能重复。
NOT NULL:限制指定列的值不能为NULL,必须设置实际值。
DEFAULT:指定列的默认值,在插入新行时如果没有指定该列的值,则使用默认值。
CHECK:定义指定列的取值范围,只允许符合条件的行被插入或更新。
FOREIGN KEY:定义一个列作为外键,与另一个表格的主键建立关系,实现表格间的关联操作。
2.3 示例代码
下面是一个示例代码,演示了如何在MSSQL中创建一张包含约束的表格:
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
address VARCHAR(100) NOT NULL,
city VARCHAR(50) NOT NULL,
state CHAR(2) NOT NULL,
zip CHAR(10) NOT NULL,
email VARCHAR(50) UNIQUE,
phone VARCHAR(20) NOT NULL,
dob DATE CHECK(dob > '1900-01-01')
);
在这个表格中,customer_id列被指定为主键,不能重复,first_name和last_name列必须设置具体值,不能为NULL,email列必须唯一,dob列被限定必须晚于1900年1月1日。
3. 改变表格定义
在MSSQL中,可以使用ALTER TABLE语句对已有的表格进行修改和扩展。常见的表格定义修改操作包括:
添加新列
删除已有列
修改列的数据类型、约束或默认值
创建新的约束
3.1 添加新列
在表格中添加新的列,可以使用ALTER TABLE语句的ADD COLUMN选项:
ALTER TABLE table_name
ADD COLUMN column_name datatype [ NULL | NOT NULL ];
其中,table_name是要修改的表格的名称,column_name是要添加的列名,datatype是列的数据类型,NULL表示该列可以为空值,NOT NULL表示该列不允许为空值。例如,在employees表格中添加一个新列gender:
ALTER TABLE employees
ADD COLUMN gender VARCHAR(10) DEFAULT 'UNKNOWN';
这个语句在employees表格中添加了gender列,数据类型为VARCHAR(10),默认值为‘UNKNOWN’。
3.2 删除已有列
在表格中删除已有列,可以使用ALTER TABLE语句的DROP COLUMN选项:
ALTER TABLE table_name
DROP COLUMN column_name;
其中,table_name是要修改的表格的名称,column_name是要删除的列名。例如,在employees表格中删除age列:
ALTER TABLE employees
DROP COLUMN age;
这个语句在employees表格中删除了age列。
3.3 修改列的数据类型、约束或默认值
在表格中修改已有列,可以使用ALTER TABLE语句的ALTER COLUMN选项:
ALTER TABLE table_name
ALTER COLUMN column_name datatype [ NULL | NOT NULL | DEFAULT value | ADD CONSTRAINT constraint_name ];
其中,table_name是要修改的表格的名称,column_name是要修改的列名,datatype是列的新数据类型,NULL表示该列可以为空值,NOT NULL表示该列不允许为空值,DEFAULT value表示设置列的默认值,ADD CONSTRAINT constraint_name表示创建一个新的约束。例如,在employees表格中将salary列的数据类型修改为DECIMAL(10,2),将约束修改为:列不可为空,修改默认值为10000:
ALTER TABLE employees
ALTER COLUMN salary DECIMAL(10,2) NOT NULL DEFAULT 10000;
这个语句修改了employees表格中salary列的数据类型和默认值,并将列约束修改为NOT NULL。
4. 表格的使用
在MSSQL中,可以使用INSERT、SELECT、UPDATE和DELETE语句对表格进行数据操作。这里以employees表格为例,演示如何对表格进行数据的插入和查询:
4.1 插入数据
使用INSERT语句可以向表格中插入新的数据行:
INSERT INTO employees (id, name, age, salary)
VALUES (1, 'David', 28, '6000.00'),
(2, 'Linda', 32, '8000.00'),
(3, 'John', 25, '5000.00');
这个语句向employees表格插入了3行数据,包含id、name、age和salary四个列。
4.2 查询数据
使用SELECT语句可以从表格中查询数据行:
SELECT * FROM employees WHERE salary > 6000;
这个语句查询employees表格中salary大于6000的行,并将查询结果输出。
5. 小结
在MSSQL中创建和修改表格是数据库应用的基本操作之一,CREATE TABLE和ALTER TABLE语句提供了丰富的选项和约束条件,可以灵活定义表格结构和数据类型。表格的使用涉及到数据的插入、查询、修改和删除等操作,熟练掌握这些操作是MSSQL数据库管理的基本要求。