写点什么

SQL ALTER TABLE 语句 - 灵活修改表结构和数据类型

作者:小万哥
  • 2023-12-06
    广东
  • 本文字数:1849 字

    阅读完需:约 6 分钟

SQL ALTER TABLE  语句- 灵活修改表结构和数据类型

SQL ALTER TABLE 语句

SQL ALTER TABLE 语句用于在现有表中添加、删除或修改列,也可用于添加和删除各种约束。

ALTER TABLE - 添加列

要在表中添加列,请使用以下语法:


ALTER TABLE 表名ADD 列名 数据类型;
复制代码


以下 SQL 向 "Customers" 表添加了一个 "Email" 列:


ALTER TABLE CustomersADD Email varchar(255);
复制代码

ALTER TABLE - 删除列

要在表中删除列,请使用以下语法(请注意,某些数据库系统不允许删除列):


ALTER TABLE 表名DROP COLUMN 列名;
复制代码


以下 SQL 从 "Customers" 表中删除了 "Email" 列:


ALTER TABLE CustomersDROP COLUMN Email;
复制代码

ALTER TABLE - 重命名列

要在表中重命名列,请使用以下语法:


ALTER TABLE 表名RENAME COLUMN 旧名 TO 新名;
复制代码

ALTER TABLE - 修改数据类型

要更改表中列的数据类型,请使用以下语法:

对于 SQL Server / MS Access:

ALTER TABLE 表名ALTER COLUMN 列名 数据类型;
复制代码

对于 MySQL / Oracle(10G 之前的版本):

ALTER TABLE 表名MODIFY COLUMN 列名 数据类型;
复制代码

对于 Oracle 10G 及更高版本:

ALTER TABLE 表名MODIFY 列名 数据类型;
复制代码

SQL ALTER TABLE 示例

看看 "Persons" 表:


ID  LastName  FirstName  Address  City1  Hansen  Ola  Timoteivn 10  Sandnes2  Svendson  Tove  Borgvn 23  Sandnes3  Pettersen  Kari  Storgt 20  Stavanger
复制代码


现在,我们想在 "Persons" 表中添加一个名为 "DateOfBirth" 的列。


我们使用以下 SQL 语句:


ALTER TABLE PersonsADD DateOfBirth date;
复制代码


请注意,新列 "DateOfBirth" 的数据类型为 date,将保存日期。


"Persons" 表现在如下所示:


ID  LastName  FirstName  Address  City  DateOfBirth1  Hansen  Ola  Timoteivn 10  Sandnes   2  Svendson  Tove  Borgvn 23  Sandnes   3  Pettersen  Kari  Storgt 20  Stavanger   
复制代码

更改数据类型示例

现在,我们想更改 "Persons" 表中名为 "DateOfBirth" 的列的数据类型。


我们使用以下 SQL 语句:


ALTER TABLE PersonsALTER COLUMN DateOfBirth year;
复制代码


请注意,"DateOfBirth" 列现在的数据类型为 year,将保存以两位或四位格式表示的年份。

删除列示例

接下来,我们想删除 "Persons" 表中名为 "DateOfBirth" 的列。


我们使用以下 SQL 语句:


ALTER TABLE PersonsDROP COLUMN DateOfBirth;
复制代码


"Persons" 表现在如下所示:


ID  LastName  FirstName  Address  City1  Hansen  Ola  Timoteivn 10  Sandnes2  Svendson  Tove  Borgvn 23  Sandnes3  Pettersen  Kari  Storgt 20  Stavanger
复制代码


希望这些例子能够帮助您更好地理解 SQL ALTER TABLE 语句的用法。

SQL 约束

SQL 约束用于指定表中数据的规则,以确保数据的准确性和可靠性。约束可以在创建表时指定,也可以在创建表后使用 ALTER TABLE 语句添加。

创建表时指定约束

CREATE TABLE 表名 (    列1 数据类型 约束,    列2 数据类型 约束,    列3 数据类型 约束,    ....);
复制代码

常用的约束类型

1. NOT NULL 约束

确保列不能有 NULL 值。


CREATE TABLE 表名 (    列1 数据类型 NOT NULL,    列2 数据类型,    列3 数据类型,    ....);
复制代码

2. UNIQUE 约束

确保列中的所有值都是不同的。


CREATE TABLE 表名 (    列1 数据类型 UNIQUE,    列2 数据类型,    列3 数据类型,    ....);
复制代码

3. PRIMARY KEY 约束

是 NOT NULL 和 UNIQUE 约束的组合,在表中唯一标识每一行。


CREATE TABLE 表名 (    列1 数据类型 PRIMARY KEY,    列2 数据类型,    列3 数据类型,    ....);
复制代码

4. FOREIGN KEY 约束

用于防止破坏表之间关系的操作。


CREATE TABLE 表名1 (    列1 数据类型 PRIMARY KEY,    列2 数据类型,    列3 数据类型,    ....);
CREATE TABLE 表名2 ( 列A 数据类型, 列B 数据类型, 列C 数据类型, FOREIGN KEY (列A) REFERENCES 表名1(列1));
复制代码

5. CHECK 约束

确保列中的值满足特定条件。


CREATE TABLE 表名 (    列1 数据类型,    列2 数据类型 CHECK (列2 > 0),    列3 数据类型,    ....);
复制代码

6. DEFAULT 约束

如果未指定值,则为列设置默认值。


CREATE TABLE 表名 (    列1 数据类型,    列2 数据类型 DEFAULT 默认值,    列3 数据类型,    ....);
复制代码

7. CREATE INDEX 约束

用于快速创建和检索数据库中的数据。


CREATE INDEX 索引名ON 表名 (列1, 列2, 列3, ...);
复制代码


这些约束类型可以根据表的设计和需求进行灵活组合使用,以确保数据库中的数据的完整性和一致性。

最后

为了方便其他设备和平台的小伙伴观看往期文章:


微信公众号搜索:Let us Coding,关注后即可获取最新文章推送


看完如果觉得有帮助,欢迎 点赞、收藏、关注

发布于: 刚刚阅读数: 4
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
SQL ALTER TABLE  语句- 灵活修改表结构和数据类型_MySQL_小万哥_InfoQ写作社区