SQL ALTER TABLE 语句用于在现有表中添加、删除或修改列

本文详细介绍了如何使用ALTERTABLE语句在现有数据库表中添加、删除或修改列。包括具体的语法指导和实例演示,如添加DateOfBirth字段、改变其数据类型为year以及删除该字段。

ALTER TABLE 语句

 ALTER TABLE 语句用于在现有表中添加、删除或修改列。

1.若要向表中添加列,请使用以下语法:

ALTER TABLE table_name                
ADD column_name datatype 

2.若要删除表中的列,请使用以下语法(请注意,一些数据库系统不允许这样删除数据库表中的列):

ALTER TABLE table_name                
DROP COLUMN column_name  

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

(1)SQL Server / MS Access:

ALTER TABLE table_name                
ALTER COLUMN column_name datatype       

(2)My SQL / Oracle:

ALTER TABLE table_name                
MODIFY COLUMN column_name datatype 

以下为实例:

1. 需求:添加字段

在这里插入图片描述

ALTER TABLE Persons                
ADD DateOfBirth date
 
新列 "DateOfBirth" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。  

在这里插入图片描述

2.改变数据类型实例

ALTER TABLE Persons                
ALTER COLUMN DateOfBirth year  

类型是 year,可以存放 2 位或 4 位格式的年份。

3.删除

ALTER TABLE Persons                
DROP COLUMN DateOfBirth  

在这里插入图片描述

<think> 我们正在讨论SQL添加现有的关键字问题。根据用户的问题,他想知道是使用ADD COLUMN还是ALTER TABLE。 根据之前的回答和引用资料,我们可以明确: 1. ALTER TABLE用于修改结构的关键字,包括添加删除修改等操作。 2. 添加的具体动作由ADD关键字(ADD COLUMN)来指定。 在标准SQL中,添加的语法通常为: ALTER TABLE table_name ADD [COLUMN] column_name data_type [constraints]; 注意:在大多数数据库系统中,COLUMN关键字是可选的。例如,在MySQL中,我们可以使用: ALTER TABLE table_name ADD new_column INT DEFAULT 0; 引用[1]中提到:在MySQL中,column_definition子句使用与CREATE TABLE相同的语法。并且示例中使用了ADD来添加(没有强制使用COLUMN关键字)。 引用[2]中展示的是CREATE TABLE语句,其中包含设置默认值的语法(DEFAULT 60),这提示我们在添加时也可以使用同样的方式设置默认值。 因此,我们可以总结: - 主要的关键字组合是ALTER TABLE ... ADD [COLUMN] ... - 其中COLUMN关键字在某些数据库中可以省略,但在某些数据库中(如SQLite)可能需要显式写出。 为了更准确,我们需要考虑不同数据库系统的差异: - MySQL: 支持ADD和ADD COLUMN(两者均可,但通常省略COLUMN)。 - PostgreSQL: 同样支持两种写法,但推荐使用ADD COLUMN以增强可读性。 - SQLite: 要求使用ADD COLUMN(不能省略COLUMN)。 所以,回答用户的问题: 在SQL中,添加现有需要两个关键字:ALTER TABLE和ADD(ADD COLUMN)。其中,ALTER TABLE指定要修改,而ADD(ADD COLUMN)指定添加的操作。 根据用户提供的引用[1],我们可以给出一个设置默认值的示例: ALTER TABLE students ADD age INT DEFAULT 0; 另外,关于用户之前的相关问题,我们也可以简要回答(但当前问题只关注关键字): 1. 可以同时设置默认值,如上述示例。 2. 不同数据库系统在ADD后是否使用COLUMN关键字有差异(如上所述)。 3. 添加时常见的约束有:NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT等(但注意,添加添加主键约束可能有限制,因为可能已有主键)。 4. 修改属性使用ALTER TABLE ... ALTER COLUMN ...(具体语法因数据库而异)。 现在,我们按照要求组织回答: </think> 在 SQL 中,向现有添加需要组合使用两个关键字:**`ALTER TABLE` 和 `ADD COLUMN`**(简写为 `ADD`)。具体说明如下: ### 语法结构 ```sql ALTER TABLE 名 ADD [COLUMN] 名 数据类型 [约束] [DEFAULT 默认值]; ``` - **`ALTER TABLE`** 指定要修改结构。 - **`ADD COLUMN`**( `ADD`) 声明要执行的操作是添加。`COLUMN` 关键字在某些数据库(如 MySQL)中可省略,但为了兼容性和清晰性,建议保留。 ### 示例(含默认值) ```sql -- 向 students 添加 age ,默认值为 0 ALTER TABLE students ADD COLUMN age INT DEFAULT 0; -- ✅ 明确使用 COLUMN 关键字 -- 简写为(MySQL/PgSQL 支持): ALTER TABLE students ADD age INT DEFAULT 0; -- ✅ 省略 COLUMN ``` --- ### 关键点总结 1. **必需组合** 必须同时使用 `ALTER TABLE`(指定操作对象)和 `ADD [COLUMN]`(指定操作类型)。 2. **默认值设置** 可通过 `DEFAULT` 子句直接赋予默认值(如 `DEFAULT 0`)[^1]。 3. **差异说明** - **MySQL/PostgreSQL**:支持省略 `COLUMN`(`ADD age INT`) - **SQLite**:必须显式使用 `ADD COLUMN`[^2] - **所有数据库**:`ALTER TABLE` 不可省略 --- ### 添加时的常见约束 | 约束类型 | 示例 | 作用 | |----------------|--------------------------|--------------------------| | `NOT NULL` | `ADD COLUMN name TEXT NOT NULL` | 禁止空值 | | `DEFAULT` | `ADD COLUMN price INT DEFAULT 60` | 设置默认值 | | `UNIQUE` | `ADD COLUMN email TEXT UNIQUE` | 确保值唯一 | | `PRIMARY KEY` | (通常不单独添加) | 需结合结构调整 | | `CHECK` | `ADD COLUMN age INT CHECK (age>0)` | 自定义条件约束 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值