首页 > 数据库 >无涯教程-SQL - Alter(更改表)

无涯教程-SQL - Alter(更改表)

时间:2024-01-16 11:32:27浏览次数:32  
标签:name DROP 无涯 Alter SQL TABLE NULL table ALTER

SQL ALTER TABLE 命令用于添加,删除或修改现有表中的列,您还应该使用ALTER TABLE命令在现有表上添加和删除各种约束。

Alter - 语法

在现有表中添加 New Column 的ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name ADD column_name datatype;

现有表中 DROP COLUMN 的ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name DROP COLUMN column_name;

更改表中列的 DATA TYPE 的ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name MODIFY COLUMN column_name datatype;

将 NOT NULL 约束添加到表中的列的ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

将ALTER TABLE ADD UNIQUE CONSTRAINT 添加到表的基本语法如下。

ALTER TABLE table_name 
ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);

将 ADD CHECK CONSTRAINT 添加到表的ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name 
ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);

对表 ADD PRIMARY KEY 约束的ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name 
ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);

从表 DROP CONSTRAINT 使用ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name 
DROP CONSTRAINT MyUniqueConstraint;

如果您使用的是MySQL,则代码如下-

ALTER TABLE table_name 
DROP INDEX MyUniqueConstraint;

从表 DROP PRIMARY KEY 约束使用ALTER TABLE命令的基本语法如下。

ALTER TABLE table_name 
DROP CONSTRAINT MyPrimaryKey;

如果您使用的是MySQL,则代码如下-

ALTER TABLE table_name 
DROP PRIMARY KEY;

Alter - 示例

考虑具有以下记录的CUSTOMERS表-

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Learnfk    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

以下是将新建列添加到现有表的示例-

ALTER TABLE CUSTOMERS ADD SEX char(1);

现在,CUSTOMERS表已更改,并且将从SELECT语句输出以下内容。

+----+---------+-----+-----------+----------+------+
| ID | NAME    | AGE | ADDRESS   | SALARY   | SEX  |
+----+---------+-----+-----------+----------+------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 | NULL |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 | NULL |
|  3 | kaushik |  23 | Kota      |  2000.00 | NULL |
|  4 | kaushik |  25 | Mumbai    |  6500.00 | NULL |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 | NULL |
|  6 | Komal   |  22 | MP        |  4500.00 | NULL |
|  7 | Learnfk   |  24 | Indore    | 10000.00 | NULL |
+----+---------+-----+-----------+----------+------+

以下是从现有表中删除性别列的示例。

ALTER TABLE CUSTOMERS DROP SEX;

现在,更改了CUSTOMERS表,以下是SELECT语句的输出。

+----+---------+-----+-----------+----------+
| ID | NAME    | AGE | ADDRESS   | SALARY   |
+----+---------+-----+-----------+----------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 |
|  3 | kaushik |  23 | Kota      |  2000.00 |
|  4 | kaushik |  25 | Mumbai    |  6500.00 |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 |
|  6 | Komal   |  22 | MP        |  4500.00 |
|  7 | Learnfk   |  24 | Indore    | 10000.00 |
+----+---------+-----+-----------+----------+

参考链接

https://www.learnfk.com/sql/sql-alter-command.html

标签:name,DROP,无涯,Alter,SQL,TABLE,NULL,table,ALTER
From: https://blog.51cto.com/u_14033984/9269008

相关文章

  • 一文让你对mysql索引底层实现明明白白
    开篇:图片是本人随笔画的,有点粗糙,望大家谅解,如有不妥之处,请联系我们,感谢。一、索引到底底是什么.索引是帮助mysql高效获取数据的排好序的数据结构.索引是存储在文件里的.数据结构:二叉树HASHBTREE如果没有索引的话,循环一条一条的找,找一次就是一次IO,这样速度就会很慢我们知道数据库......
  • java连接postgresql
    提前请确保已经安装了postgresql相关的驱动包importjava.sql.*;publicclassPostgresConnectionExample{publicstaticvoidmain(String[]args)throwsSQLException{//定义数据库连接信息Stringurl="jdbc:postgresql://localhost:5432/myd......
  • sqlserver查询最近失败的任务
    selectjob_id,step_name,message,cast((cast(LEFT(run_date,4)ASVARCHAR)+'-'+SUBSTRING(cast(run_dateASVARCHAR),5,2)+'-'+cast(RIGHT(run_date,2)ASVARCHAR))+'......
  • dotnet efcore sqlite entity
    dotnet使用efcore读写sqlite数据库要使用EFCore读写SQLite数据库,您需要安装以下NuGet包:Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Tools以下是一个示例代码,它演示了如何使用EFCore读写SQLite数据库:usingSystem;usingMicrosoft.EntityFramew......
  • PostgreSQL优化数据库参数
    开箱即用的默认PostgreSQL配置并未针对任何特定工作负载进行调整。设置默认值以确保PostgreSQL在任何地方运行,消耗最少的资源,并且不会导致任何漏洞。它具有所有数据库参数的默认设置。数据库管理员或开发人员主要负责根据系统的工作负载调整PostgreSQL。在这篇博文中,我们将深......
  • mysql 中 utf8、utf16、utf32、utf8mb3、utf8mb4的区别
    UTF-8-“大小优化”:最适合基于拉丁字符的数据(或ASCII),每个字符只需1个字节,但大小相应增加符号种类(在最坏的情况下,每个字符最多可增加6个字节)UTF-16-“平衡”:每个字符至少需要2个字节,足以支持现有的主流语言集,并且具有固定的大小以便于字符处理(但是大小仍然可变,每个字符最多......
  • MySQL-12.MySQL数据类型
    1.MySQL中的数据类型常见数据类型的属性,如下2.整数类型2.1类型介绍整数类型一共有5种,包括TINYINT,SMALLINT,MEDIUMINT,INT(INTEGER)和BIGINT。它们的区别如下表所示2.2可选属性整数类型的可选属性有三个2.2.1MM:显示宽度,M的取值范围是(0,255)。例如,int(5):当数据宽度小......
  • Mysql常用存储引擎以及区别?
    InnoDB:是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作......
  • 无涯教程-SQL - Distinct语句
    SQLDISTINCT关键字与SELECT语句结合使用,以消除所有重复记录并仅获取唯一记录。Distinct-语法消除重复记录的DISTINCT关键字的基本语法如下-SELECTDISTINCTcolumn1,column2,.....columnNFROMtable_nameWHERE[condition]Distinct-示例考虑具有以下记录的CUSTO......
  • MySQL常规(总结)
    1.exist和in的区别1.1select*fromA whereidin(selectidfromB)in 先查询子表,再查询主表,不管子查询是否有数据,但是in只执行一次,查出B表中的所有id字段并缓存起来,检查A表的id是否与B表中的id相等,直到遍历完A表所有记录,所以当子查询数据较大时不适合使用in,因为它会将子......