语句
1.添加字段
ALTER TABLE 表名
ADD 列名1 类型 FIRST,
ADD 列名2 类型 AFTER 列名1,
ADD 列名3 类型;
2.修改字段
ALTER TABLE 表名 CHANGE COLUMN 字段名 新字段名 数据类型;
3.修改字段数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
4.删除字段
ALTER TABLE 表名 DROP 要删的字段名;
5.修改表名
ALTER TABLE 旧表名 RENAME AS 新表名;
或者
RENAME TABLE 旧表名 TO 新表名;
6.复制表
CREATE TABLE 新表名 LIKE 旧表名;
7.删除表
DROP TABLE 表名;
例题
创建图书馆管理数据库dblibrary,创建项目如下:
(1)创建图书表book,保存图书信息,使用InnoDB引擎存储。表结构如下表所示:
字段名称 | 字段内容 | 数据类型 | 长度 | 说明 |
---|---|---|---|---|
Bookid | 图书编号 | char | 20 | 非空 |
Booktitle | 图书名称 | varchar | 40 | 非空 |
ISBN | ISBN号 | char | 21 | |
Typeid | 图书类别 | tinyint | ||
Author | 作者 | varchar | 30 | |
Pubdate | 出版日期 | date | ||
Price | 价格 | decimal | 10,2 | |
Regdate | 入库日期 | date | ||
State | 当前状态 | varchar | 10 |
CREATE DATABASE dblibrary;
USE dblibrary;
CREATE TABLE book(
Bookid char(20) NOT NULL,
Booktitle varchar(40) NOT NULL,
ISBN char(21),
Typeid tinyint,
Author varchar(30),
Pubdate date,
Price decimal(10,2),
Regdate date,
State varchar(10)
)ENGINE=InnoDB;
DESC book;
结果如下:
+-----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| Bookid | char(20) | NO | | NULL | |
| Booktitle | varchar(40) | NO | | NULL | |
| ISBN | char(21) | YES | | NULL | |
| Typeid | tinyint(4) | YES | | NULL | |
| Author | varchar(30) | YES | | NULL | |
| Pubdate | date | YES | | NULL | |
| Price | decimal(10,2) | YES | | NULL | |
| Regdate | date | YES | | NULL | |
| State | varchar(10) | YES | | NULL | |
+-----------+---------------+------+-----+---------+-------+
(2)在表book中添加字段press,表示出版社,数据类型是char(10),可以为空,且该列位于author之后。
ALTER TABLE book ADD press CHAR(10) AFTER Author;
+-----------+---------------+------+-----+---------+-------+
| Bookid | char(20) | NO | | NULL | |
| Booktitle | varchar(40) | NO | | NULL | |
| ISBN | char(21) | YES | | NULL | |
| Typeid | tinyint(4) | YES | | NULL | |
| Author | varchar(30) | YES | | NULL | |
| press | char(10) | YES | | NULL | |
| Pubdate | date | YES | | NULL | |
| Price | decimal(10,2) | YES | | NULL | |
| Regdate | date | YES | | NULL | |
| State | varchar(10) | YES | | NULL | |
+-----------+---------------+------+-----+---------+-------+
(3)将表book中字段press重命名为publication,数据类型改为varchar(30),可以为空。
ALTER TABLE book CHANGE press publication VARCHAR(30) NULL;
(4)删除表book中的字段publication。
ALTER TABLE book DROP publication;
(5)将表book重命名为books。
ALTER TABLE book RENAME AS books;
或者
RENAME TABLE book TO books;
(6)创建表books的复制表book_copy.
CREATE TABLE book_copy LIKE books;
(7)显示数据库dblibrary中的所有表名。
SHOW TABLES;
(8)显示表books的结构。
SHOW COLUMNS FROM books FROM dblibrary;
或者
DESC books;
(9)显示表books的创建表语句。
SHOW CREATE TABLE books;
(10)删除表book_copy。
DROP TABLE book_copy;
NULL的含义是值未知。
MySQL中支持的存储引擎主要包括InnoDB存储引擎、MyISAM存储引擎、MEMORY存储引擎。