ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
alter_specification:
ADD [COLUMN] create_definition [First | After column_name ]
or ADD INDEX [index_name] (index_col_name,...)
or ADD PRIMARY KEY (index_col_name,...)
or ADD UNIQUE [index_name] (index_col_name,...)
or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
or CHANGE [COLUMN] old_col_name create_definition
or MODIFY [COLUMN] create_definition
or DROP [COLUMN] col_name
or DROP PRIMARY KEY
or DROP INDEX index_name
or RENAME [AS] new_tbl_name
or table_options
ALTER TABLE允许你修改一个现有表的结构。例如,你可以增加或删除列、创造或消去索引、改变现有列的类型、或重新命名列或表本身。你也能改变表的注释和表的类型
你可以在单个ALTER TABLE语句中发出多个ADD、ALTER、DROP和CHANGE子句。这是MySQL对ANSI SQL92的一个扩充,SQL92在每个ALTER TABLE语句中只允许一个子句。
CHANGE col_name、DROP col_name和DROP INDEX是MySQL对 ANSI SQL92 的扩充。
MODIFY是 Oracle 对ALTER TABLE的扩充。
DROP INDEX删除一个索引。这是MySQL对 ANSI SQL92 的一个扩充。
以下例子展示了ALTER TABLE的使用。首先展示表t1。表t1采用如下方法创建:
Create Table t1 (a integer,b Char(10));
把表t1重新命名为t2:
Alter Table t1 ReName t2;
把列a从Integer更改为TinyInt Not Null (名称保持不变),并把列b从Char(10)更改为Char(20), 同时把列b重新命名为列c:
Alter Table t2 Modify a TinyInt Not Null,Change b c Char(20);
添加一个新的TimeStamp列,名称为d:
Alter Table t2 Add d TimeStamp
在列d和列a中添加索引:
Alter Table t2 Add index(d),Add index(c)
删除列c:
Alter Table t2 Drop Column c
添加一个新的AUTO_Increment整数列,名称为c:
Alter Table t2 Add c Int Unsigned Not Null Auto_Increment
->Add Primary Key(c);
当你添加一个Auto_Increment列时列值被自动地按序号填入,对于MyISAM表,您可以在ALTER TABLE之前执行SET INSERT_ID=value来设置第一个序号,也可以使用AUTO_INCREMENT=value表选项来设置
如果你想要改变列的类型而非名字,就算他们是一样的,CHANGE语法仍然需要2个列名。例如:
ALTER TABLE table1 CHANGE b b BIGINT NOT NULL;
然而,在MySQL3.22.16a,你也可以使用MODIFY来改变列的类型而不是重命名它:
ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
MySQL数据库在指定位置增加字段
create table t1(age int,address varchar(50));
alter table t add column name varchar(20) after age;
alter table t1 add column id int FIRST;
分享到:
相关推荐
- **语法说明**:`INSERT` 语句用于向表中插入新的数据行。 - **示例**: ```sql INSERT INTO employees (id, name, age) VALUES (1, '张三', 25); ``` ### 数据更新 #### UPDATE 语句 ```sql UPDATE table_...
alter语句可以改变表的结构,包括改变字段名、改变不同数据库字段间的关系。alter语句的基本格式如下: alter table table_name alter_spec [,alter_spec ...] 其中,table_name是表名,alter_spec是改变的参数。...
1. **DDL转换**:该工具能够解析MySQL的CREATE TABLE、ALTER TABLE等DDL语句,并将其转换为PostgreSQL可以理解的语法。这涉及到字段类型、约束、索引等的映射,例如,MySQL的`ENUM`类型在PostgreSQL中可能需要转换为...
13.3 MySQL 实用工具语句: - DESCRIBE:显示表的结构信息。 - USE:切换到指定的数据库。 13.4 事务处理和锁定语句: - START TRANSACTION, COMMIT, ROLLBACK:用于开始、提交和回滚事务,确保数据一致性。 - 不能...
下面是 MySQL 中常用的 SQL 语句。 创建表 创建表是数据库的基本操作之一,用于存储数据。创建表的基本语法为: ```sql CREATE TABLE 表名 ( 列名 数据类型, 列名 数据类型, ... ); ``` 例如,创建一个名为 `...
SQL是用于管理关系数据库的语言,MySQL语法手册首先会介绍SQL的基础概念,包括数据类型(如整数、浮点数、字符串、日期/时间)、创建和删除数据库以及数据表的语句(CREATE DATABASE, DROP DATABASE, CREATE TABLE, ...
本文将详细介绍MySQL中的两个重要语句:ALTER DATABASE和ALTER TABLE。 首先,我们来看ALTER DATABASE语句。这个语句用于修改已经存在的数据库的属性,如字符集和整序。例如,如果你想要更改数据库的默认字符集为...
### MySQL 数据库基本的使用语法语句 #### 登录MySQL数据库 登录MySQL数据库可以通过命令行完成,这包括连接远程服务器和本地服务器。 1. **登录远程服务器端数据库** - 命令格式:`mysql -h 服务器名称 –u ...
下面将详细介绍MySQL中的SQL语句及其生成器的相关知识。 1. SQL基础概念 SQL,全称为结构化查询语言,是用于创建、查询、更新和删除数据库中数据的标准语言。它分为DQL(查询语言)、DML(数据操纵语言)、DDL...
4. **索引与约束**:如果新列需要被索引或有特定的约束(如NOT NULL或UNIQUE),需要在ALTER语句中指定。 5. **数据迁移**:在某些情况下,可能需要先创建新表,然后将数据迁移过去,再删除旧表并重命名新表。这是...
### MySQL语句-ALTER DATABASE详解 #### 一、概述 `ALTER DATABASE` 是MySQL中一个重要的数据库管理命令,主要用于修改现有数据库的各种属性和配置。通过使用这一命令,管理员能够灵活地调整数据库设置以满足不同...
### MySQL SQL经典语句知识点详解 #### 一、基础操作 **1. 创建数据库** - **语法**: `CREATE DATABASE database-name;` - **说明**: 此命令用于创建一个新的数据库实例。`database-name`应替换为实际数据库名称...
例如,在MySQL中,可以使用CREATE PROCEDURE语句来创建存储过程,而在Oracle中,需要使用CREATE PROCEDURE语句来创建存储过程,并可以使用alter procedure语句来修改存储过程。 MySQL和Oracle两种数据库管理系统...
MySQL是世界上最广泛使用的开源关系型数据库管理系统之一,其语法语句是进行数据库操作的基础。本篇文章将详细解析MySQL的一些核心语法,包括创建表、创建索引、改变表结构、删除数据对象以及执行查询。 首先,我们...
在本篇文章中,我们将详细介绍 MySQL 语句大全的基本语法和高级查询运算词。 一、基本语法 1. 创建数据库:CREATE DATABASE database-name create database 语句用于创建一个新的数据库。 2. 删除数据库:DROP ...