当前位置: 首页 > news >正文

SQL ALTER TABLE 语句||SQL AUTO INCREMENT 字段

SQL ALTER TABLE 语句


ALTER TABLE 语句

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

SQL ALTER TABLE 语法

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

ALTER TABLE table_name                
ADD column_name datatype      

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

ALTER TABLE table_name                
DROP COLUMN column_name      

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

SQL Server / MS Access:

ALTER TABLE table_name                
ALTER COLUMN column_name datatype       

My SQL / Oracle:

ALTER TABLE table_name                
MODIFY COLUMN column_name datatype        


SQL ALTER TABLE 实例

 请看 "Persons" 表:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

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

 我们使用下面的 SQL 语句:

ALTER TABLE Persons                
ADD DateOfBirth date       

 请注意,新列 "DateOfBirth" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。如需了解 MS Access、MySQL 和 SQL Server 中可用的数据类型,请访问我们完整的 数据类型参考手册。

 现在,"Persons" 表将如下所示:

P_IdLastNameFirstNameAddressCityDateOfBirth
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


改变数据类型实例

 现在,我们想要改变 "Persons" 表中 "DateOfBirth" 列的数据类型。

 我们使用下面的 SQL 语句:

ALTER TABLE Persons                
ALTER COLUMN DateOfBirth year      

 请注意,现在 "DateOfBirth" 列的类型是 year,可以存放 2 位或 4 位格式的年份。


DROP COLUMN 实例

 接下来,我们想要删除 "Person" 表中的 "DateOfBirth" 列。

 我们使用下面的 SQL 语句:

ALTER TABLE Persons                
DROP COLUMN DateOfBirth        

 现在,"Persons" 表将如下所示:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

SQL AUTO INCREMENT 字段


 Auto-increment 会在新记录插入表中时生成一个唯一的数字。

AUTO INCREMENT 字段


 我们通常希望在每次插入新记录时自动创建主键字段的值。

 我们可以在表中创建一个自动增量(auto-increment)字段。

用于 MySQL 的语法


 以下SQL语句将 "Persons" 表中的“ID”列定义为自动递增(auto-increment)主键字段:

CREATE TABLE Persons                
(                
ID int NOT NULL AUTO_INCREMENT,                
LastName varchar(255) NOT NULL,                
FirstName varchar(255),                
Address varchar(255),                
City varchar(255),                
PRIMARY KEY (ID)                
)

 MySQL使用AUTO_INCREMENT关键字来执行自动增量( auto-increment )任务。 

 默认情况下,AUTO_INCREMENT的起始值为1,每个新记录增加1。

 若要以其他值开始AUTO_INCREMENT序列,请使用以下SQL语法:

ALTER TABLE Persons AUTO_INCREMENT=100       

 要在 "Persons" 表中插入新记录,我们不需要为"ID"栏指定值(自动添加唯一值):

INSERT INTO Persons (FirstName,LastName)                
VALUES ('Lars','Monsen')        

 上面的SQL语句在 "Persons" 表中插入一个新记录。“ID”栏将得到唯一值。"FirstName"栏设置为"Lars","LastName"栏设置为"Monsen"。

用于 SQL Server 的语法


 以下SQL语句将 "Persons" 表中的“ID”列定义为自动递增( auto-increment )主键字段:

CREATE TABLE Persons                
(                
ID int IDENTITY(1,1) PRIMARY KEY,                
LastName varchar(255) NOT NULL,                
FirstName varchar(255),                
Address varchar(255),                
City varchar(255)                
)       

 MS SQL Server使用IDENTITY关键字执行自动增量( auto-increment )任务。

 在上面的示例中,IDENTITY的起始值为1,每个新记录增量为1。

 提示:指定“ID”列以10开头,并递增5,将标识( identity )更改为IDENTITY(10,5)。

 要在 "Persons" 表中插入新记录,我们不需要为"ID"栏指定值(自动添加唯一值):

INSERT INTO Persons (FirstName,LastName)                
VALUES ('Lars','Monsen')        

 上面的 SQL 语句在 "Persons" 表中插入一个新记录。“ID”栏将得到唯一值。"FirstName"栏设置为"Lars","LastName"栏设置为"Monsen"。

用于 Access 的语法


 以下 SQL 语句将 "Persons" 表中的“ID”列定义为自动递增( auto-increment )主键字段:

CREATE TABLE Persons                
(                
ID Integer PRIMARY KEY AUTOINCREMENT,                
LastName varchar(255) NOT NULL,                
FirstName varchar(255),                
Address varchar(255),                
City varchar(255)                
)       

 MS Access使用 AUTOINCREMENT 关键字执行自动增量( auto-increment )任务。

 默认情况下,AUTOINCREMENT的起始值为1,每个新记录递增 1。

 提示:指定“ID”栏以10开头,并递增5,将自动递增( autoincrement )更改为自动递增(105)( AUTOINCREMENT(10,5))。

 要在 "Persons" 表中插入新记录,我们不需要为"ID"栏指定值(自动添加唯一值):

INSERT INTO Persons (FirstName,LastName)                
VALUES ('Lars','Monsen')        

 上面的 SQL 语句在 "Persons" 表中插入一个新记录。“ID”栏将得到唯一值。"FirstName"栏设置为"Lars","LastName"栏设置为"Monsen"。

语法 for Oracle


 在 Oracle 中,代码有点复杂。

 您必须使用序列( sequence )对象(该对象生成数字序列)创建自动增量( auto-increment )字段。

 使用以下CREATSEQUENT语法:

CREATE SEQUENCE seq_person                
MINVALUE 1                
START WITH 1                
INCREMENT BY 1                
CACHE 10        

 上面的代码创建了一个名为seq_pean的序列( sequence) 对象,它以1开头,以1递增。此对象缓存10个值以提高性能。缓存选项指定要存储多少序列值以提高访问速度。

 要在"Persons" 表中插入新记录,我们必须使用nextval函数,该函数从seq_hor序列检索下一个值:

INSERT INTO Persons (ID,FirstName,LastName)                
VALUES (seq_person.nextval,'Lars','Monsen')       

 上面的SQL语句在 "Persons" 表中插入一个新记录。"ID" 列从 seq_person 序列中分配下一个数字。"FirstName"栏设置为"Lars","LastName"栏设置为"Monsen"。

http://www.lryc.cn/news/233440.html

相关文章:

  • 【源码系列】短剧系统开发国际版短剧系统软件平台介绍
  • JavaWeb[总结]
  • 如何解决小程序异步请求问题
  • NSSCTF第12页(3)
  • 基于ssm+vue交通事故档案系统
  • DNS1(Bind软件)
  • PDF自动打印
  • 【C#】类型转换-显式转换:括号强转、Parse法、Convert法、其他类型转string
  • 【智能家居】4、智能家居框架设计和代码文件工程建立
  • 【GAN】数据增强基础知识
  • Skywalking流程分析_3(服务的准备、启动、关闭)
  • mysql中的各种日志文件redo log、undo log和binlog
  • 【电视剧-长相思】经典语录
  • 串口通信原理及应用
  • python爬取穷游网景点评论
  • Phar 文件上传以及反序列化
  • 面试其他注意事项
  • sklearn 笔记 BallTree/KD Tree
  • ConstraintLayout使用详解
  • Java8Stream快速使用
  • work环境配置
  • Flutter应用-使用sqflite升级数据库
  • 集群搭建(redis7)
  • 高能分享:软件测试十大必问面试题(附带答案)
  • Java 反射设置List属性
  • wpf devexpress Property Grid创建属性定义
  • 78.子集--77.组合
  • 【C++】模版-初阶
  • 【JavaEE初阶】 TCP服务器与客户端的搭建
  • 23111710[含文档+PPT+源码等]计算机毕业设计基于SpringBoot的体育馆场地预约赛事管理系统的设计