📅  最后修改于: 2020-11-12 00:35:18             🧑  作者: Mango
语句ALTER TABLE主要用于删除,添加或修改现有表中的列。它还用于在当前表上添加许多约束。
ADD COLUMN用于将特定表添加到现有表中。我们可以添加其他信息,而无需再次创建整个数据库。
SQL添加列用于将列操作添加到现有SQL表中。我们可以删除表并根据需要重新创建它。在生产环境中,它与数据有关,因此具有破坏性。
借助Transact SQL命令,在表之前使用添加列操作。
ALTER TABLE table_name
ADD column_name column_definition;
根据语法,
列定义的语法:
Column_name date_type constraints;
如果要使用任何一条语句将多个列添加到现有表中,可以使用以下语法:
ALTER TABLE table_name (Name of the table)
ADD [COLUMN] column_definition, (for adding column)
ADD [COLUMN] column_definition,
...;
许多数据库支持ALTER TABLE ADD COLUMN语句。
要使用SQL向表中添加任何一列,我们可以指定是否要通过ALTER TABLE命令更改表结构,然后在RDBMS中使用ADD命令更改该表结构。
ALTER TABLE Add Column的语法是,
ALTER TABLE "table_name"
ADD "column_name" "Data Type";
看下面的例子。假设我们的起点是在CREATE TABLE部分中创建的Student表:
表学生
Column Name | Data Type |
---|---|
First_Name | char(30) |
Last_Name | char(25) |
Birth_Date | datetime |
Address | char(50) |
City | char(40) |
Country | char(20) |
如果我们要添加任何名为“性别”的列。然后,我们写:
MySQL:
ALTER TABLE Student ADD Gender char(1);
结果如下所示:
表学生
Column Name | Data Type |
---|---|
First_Name | char(30) |
Last_Name | char(25) |
Birth_Date | datetime |
Address | char(50) |
City | char(40) |
Country | char(20) |
Gender | char(1) |
注意:名为“性别”的新列将成为“学生”表中的最后一列。
可以添加多个列。
例如,如果我们要添加一个名为“ Telephone”的列和另一个名为“ Email”的列,我们应该输入以下内容:
MySQL:
ALTER TABLE Student ADD (Telephone char(15), Email char(20) );
现在表变成:
表学生
Column Name | Data Type |
---|---|
First_Name | char(30) |
Last_Name | char(25) |
Birth_Date | datetime |
Address | char(50) |
City | char(40) |
Country | char(20) |
Gender | char(1) |
Telephone | char(15) |
char(20) |
drop列用于将表中的列删除。它用于从表中删除不必要的列。
句法:
ALTER TABLE table_name /name of table
DROP COLUMN column_name;
修改函数用于修改简单表中的现有列。可以一次更改多个列。
句法:
ALTER TABLE table_name
MODIFY column_name column_type;
ROLL_NO | Name OF Employee |
---|---|
1 | Jessy |
2 | Trump |
3 | Stephan |
4 | Hawkins |
查询:
ALTER TABLE EMPLOYEE ADD (AGE number(3),COURSE varchar(20));
输出:
ROLL_NO | Name of employee | AGE | COURSE |
---|---|---|---|
1 | Jessy | ||
2 | Trump | ||
3 | Stephan | ||
4 | Hawkins |
ALTER TABLE EMPLOYEE MODIFY COURSE varchar(15);
在运行上述查询最大大小后,“列”当然从20减少到15。
ALTER TABLE EMPLOYEE DROP COLUMN AGE;
输出:
ROLL_NONAME | COURSE | ||
---|---|---|---|
1 | Ram | ||
2 | Abhi | ||
3 | Rahul | ||
4 | Tanu |