为数据库创建数据表,可以使用SQL命令CREATE TABLE来完成。此语句的完整语法是相当复杂的,因为存在很多的可选子句创建表使用CREATE TABLE命令。
语法格式:
CREATE TABLE [IF NOT EXISTS] 表名
(列名 数据类型 [NOT NULL | NULL] [DEFAULT 列默认值]…)
ENGINE = 存储引擎
CREATE TABLE命令的基本格式:
CREATE TABLE tbl_name
(列名1 数据类型 1 [NOT NULL | NULL] ,
列名2 数据类型 2 [NOT NULL | NULL] ,
…..)
例:
CREATE TABLE book (
图书编号 char(20) NOT NULL PRIMARY KEY,
图书类别 varchar(20) NOT NULL DEFAULT '计算机',
书名 varchar(40) NOT NULL ,
作者 char(10) NOT NULL ,
出版社 varchar(20) NOT NULL ,
出版时间 date NOT NULL ,
单价 float(5,2) NOT NULL ,
数量 int(5),
折扣 float(3,2) ,
封面图片 blob
) ENGINE=InnoDB;
例中,primary key表示将学号字段定义为主键。engine=innodb 表示采用的存储引擎是innodb,是mysql在window平台默认的存储引擎,因此可以省略。
(1)显示数据表文件名
语法格式: SHOW TABLES
显示Bookstore 数据库建立的数据表文件:
USE Bookstore
SHOW TABLES ;
(2)显示数据表结构
语法格式:
{DESCRIBE | DESC} 表名 [列名 | 通配符 ]
DESC是DESCRIBE的简写,二者用法相同。
用DESCRIBE语句查看 Book 表的列的信息。
USE Bookstore
DESCRIBE Book ;
查看 Book 表图书编号 列的信息。
USE Bookstore
DESC Book 图书编号 ;
ALTER TABLE用于更改原有表的结构。例如,可以增加或删减列,创建或取消索引,更改原有列的类型,重新命名列或表,还可以更改表的评注和表的类型。
语法格式:
ALTER TABLE 表名
ADD [COLUMN] 列定义 [FIRST | AFTER列名] /*添加列*/
| ALTER [COLUMN] 列名 {SET DEFAULT 默认值| DROP DEFAULT}
/*修改默认值*/
| CHANGE [COLUMN] 旧列名 列定义 /*对列重命名*/
[FIRST|AFTER列名]
| MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名]
/*修改列类型*/
| DROP [COLUMN] 列名 /*删除列*/
| RENAME [TO] 新表名 /*重命名该表*/
假设已经在数据库Bookstore中创建了表book,表中存在“书名”列。在表book中增加“浏览次数”列并将表中的“书名”列删除。
ALTER TABLE book ADD 浏览次数 tinyint NULL ,
DROP COLUMN 书名 ;
假设数据库Bookstore中已经存在table1表,将table1表重命名为student。
ALTER TABLE table1 RENAME TO student;
修改表名除了上面的ALTER TABLE命令,还可以直接用RENAME TABLE语句来更改表的名字。
语法格式: RENAME TABLE 旧表名1 TO 新表名1
[ , 旧表名2 TO 新表名2] ...
假设数据库BookStore中已经存在table2表和table3表,将table2表重命名为orders,table3表重命名为orderlist。
RENAME TABLE table2 TO orders, Table3 TO orderlist;