SQL ALTER TABLE 语句- 灵活修改表结构和数据类型
SQL ALTER TABLE 语句
SQL ALTER TABLE 语句用于在现有表中添加、删除或修改列,也可用于添加和删除各种约束。
ALTER TABLE - 添加列
要在表中添加列,请使用以下语法:
ALTER TABLE 表名
ADD 列名 数据类型;
以下 SQL 向 "Customers" 表添加了一个 "Email" 列:
ALTER TABLE Customers
ADD Email varchar(255);
ALTER TABLE - 删除列
要在表中删除列,请使用以下语法(请注意,某些数据库系统不允许删除列):
ALTER TABLE 表名
DROP COLUMN 列名;
以下 SQL 从 "Customers" 表中删除了 "Email" 列:
ALTER TABLE Customers
DROP 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 City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
现在,我们想在 "Persons" 表中添加一个名为 "DateOfBirth" 的列。
我们使用以下 SQL 语句:
ALTER TABLE Persons
ADD DateOfBirth date;
请注意,新列 "DateOfBirth" 的数据类型为 date,将保存日期。
"Persons" 表现在如下所示:
ID LastName FirstName Address City DateOfBirth
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
更改数据类型示例
现在,我们想更改 "Persons" 表中名为 "DateOfBirth" 的列的数据类型。
我们使用以下 SQL 语句:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;
请注意,"DateOfBirth" 列现在的数据类型为 year,将保存以两位或四位格式表示的年份。
删除列示例
接下来,我们想删除 "Persons" 表中名为 "DateOfBirth" 的列。
我们使用以下 SQL 语句:
ALTER TABLE Persons
DROP COLUMN DateOfBirth;
"Persons" 表现在如下所示:
ID LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 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,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
SQL ALTER TABLE 语句- 灵活修改表结构和数据类型的更多相关文章
- SQL-W3School-高级:SQL ALTER TABLE 语句
ylbtech-SQL-W3School-高级:SQL ALTER TABLE 语句 1.返回顶部 1. ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. ...
- SQL ALTER TABLE 语句在项目中的使用
1.在实际的项目开发过程中,之前已经创建好的实体类可能需要增加/删除字段,亦或是更改已有字段的属性,比如主键的增长策略从自增型改为UUID型,那么就会涉及到 SQL 中 alter table 语句的 ...
- SQL ALTER TABLE 语句
ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. SQL ALTER TABLE 语法 如需在表中添加列,请使用下列语法: ALTER TABLE tab ...
- 为什么在SQL Server2008在视图中修改表结构无效
解决办法: 在SQL server 2008 中,打开菜单-->工具
- mysql ALTER TABLE语句 语法
mysql ALTER TABLE语句 语法 作用:用于在已有的表中添加.修改或删除列.无铁芯直线电机 语法:添加列:ALTER TABLE table_name ADD column_name da ...
- 必须会的SQL语句(二) 创建表、修改表结构、删除表
1.创建数据库表 --使用哪个数据库,如果不写这一句是默认的数据库,也可以用鼠标选当前数据库 use testDB --创建表 Create Table tablename ( ...
- SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询
SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...
- sql server 修改表结构
文章来自http://blog.csdn.net/huwei2003/article/details/6076051 --修改数据库名称.表名称.字段名 --修改数据库名 sp_renamedb 'o ...
- SQL脚本修改表结构
SQL脚本修改表结构 新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default ...
- SQL Server 修改表结构(转载)
SQL Server 修改表结构 本文链接:https://blog.csdn.net/petezh/article/details/81744374 查看指定表结构 exec sp_help Rep ...
随机推荐
- HAProxy端口资源耗尽的解决办法
项目背景 系统使用HAProxy为mq和部分应用的负载均衡服务.近期,瞬时流量过大,导致出现连锁反应,HA开始波动. HAProxy版本:1.6.3 问题分析 心跳检测大量失败,项目状态极不稳定.观察 ...
- DataGear 制作支持全国、省、市三级数据钻取效果的地图数据可视化看板
通过DataGear的参数化数据集.图表联动和看板API功能,可以很方便地制作支持数据钻取效果的数据可视化看板. 首先,以上级地区名为参数,新建一个参数化SQL数据集: SELECT COL_NAME ...
- 【Azure API 管理】讨论APIM是否适合直接存储文件到Azure Storage Account呢?
问题描述 需要从 APIM 直接将大文件存入Azure Storage,没看到这方面的官方文档,所以是否有这方面的实践案例,或者APIM是否支持引用SDK (如Azure Storage SDK)? ...
- 浅入ABP(2):添加基础集成服务
浅入ABP(2):添加基础集成服务 版权护体作者:痴者工良,微信公众号转载文章需要 <NCC开源社区>同意. 目录 浅入ABP(2):添加基础集成服务 定义一个特性标记 全局统一消息格式 ...
- picgo+gitee+typora实现博客图床
背景 在微信公众号编写了推文后,从推文里面复制内容出来在其他平台发布,会出现图片展示不出来的情况,原因是因为该图片是微信的链接,被限制在其他平台显示. 诉求 编写的推文在多个平台都能进行发布,图片在多 ...
- gRPC入门学习之旅(一)
gRpc简介 gRPC 是Google公司开发的基于HTTP/2设计,面向移动的一个高性能.开源和通用的 RPC 框架,是一款语言中立.平台中立.开源的远程过程调用(RPC)系统. gRpc官网地址: ...
- 油猴脚本 - dicts.cn 单词自动跳转 双核浏览器可用
跳转格式 http://www.dicts.cn/?w=blight 20230605 更新 // ==UserScript== // @name dicts.cn 单词自动跳转 双核浏览器可用 // ...
- 摆脱鼠标系列 - vscode vim - 自动切换到英文 - im-select
为什么 摆脱鼠标系列 - vscode vim - 自动切换到英文 - im-select 省得每次都得按 shfit 下载软件 https://gitee.com/pengchenggang/im- ...
- 数字政府!3DCAT实时云渲染助推上海湾区数字孪生平台
数字孪生,是一种利用物理模型.传感器数据.运行历史等信息,在虚拟空间中构建实体对象或系统的精确映射,从而实现对其全生命周期的仿真.优化和管理的技术.数字孪生可以应用于各个领域,如工业制造.智慧城市.医 ...
- Walrus 0.6发布:预览资源变更、丰富公有云支持,满足企业多云需求
近日,数澈软件Seal(以下简称"Seal")宣布基于 IaC 的开源应用管理平台 Walrus 0.6 正式发布! 在之前的版本中,Walrus 引入应用模型并优化了应用部署体验 ...