mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.03 sec) |
上面四个数据库是MySQL的内建数据库,是供MySQL内部使用的,在MySQL安装完成后即会由系统创建。 |
mysql> CREATE DATABASE IF NOT EXISTS testdb; Query OK, 1 row affected (0.01 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | testdb | +--------------------+ 5 rows in set (0.01 sec) |
IF NOT EXISTS表示在不存在的情况下创建,如果已经存在则不创建。 |
mysql> USE testdb; Database changed |
|
mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | testdb | +------------+ 1 row in set (0.00 sec) |
mysql> DROP DATABASE IF EXISTS testdb; Query OK, 0 rows affected (0.04 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) |
SHOW TABLES FROM 数据库名; |
如果已经设置了当前数据库,则只需要 |
CREATE TABLE IF NOT EXISTS 表名 (
列名1 数据类型 [列的属性],
列名2 数据类型 [列的属性],
...
列名n 数据类型 [列的属性]
); |
比如:
mysql> CREATE TABLE IF NOT EXISTS first_table (
-> first_column INT,
-> second_column VARCHAR(100)
-> );
Query OK, 0 rows affected (0.05 sec) |
在创建表时可以为表添加注释,像下面这样:
|
DROP TABLE IF EXISTS 表1, 表2, ..., 表n; |
删除表和删除数据库一样都需要谨慎。 |
DESCRIBE 表名; DESC 表名; EXPLAIN 表名; SHOW COLUMNS FROM 表名; SHOW FIELDS FROM 表名; |
比如:
mysql> DESCRIBE first_table; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | first_column | int | YES | | NULL | | | second_column | varchar(100) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 2 rows in set (0.02 sec) |
如果想查看表的定义语句,则可以使用
上面的许多语句在未设置当前数据库的情况下也可以执行,只需要使用
|
ALTER TABLE 旧表名 RENAME TO 新表名; RENAME TABLE 旧表名1 TO 新表名1, 旧表名2 TO 新表名2, ... 旧表名n TO 新表名n; |
如果在修改表名的同时指定了数据库名,还可以把这张表转移到对应的数据库下面,比如:
|
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [列的属性]; ALTER TABLE first_table ADD COLUMN third_column CHAR(4); |
可以指定增加列的特定位置,比如放到第一列。默认情况下新增列都会被放到最后一列。 添加到第一列:
添加到指定列的后面:
|
ALTER TABLE 表名 DROP COLUMN 列名; |
方式一:
ALTER TABLE 表名 MODIFY 列名 新数据类型 [新属性]; |
修改后的数据类型和属性一定要兼容表中现有的数据,比如VARCHAR(100)兼容VARCHAR(3)。 |
方式二:
ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型 [新属性]; |
ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 FIRST; ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 AFTER 指定列名; |
一条语句中可以包含多个操作,比如:
|
SELECT * FROM 表名; SELECT 列名1, 列名2 ...列名n FROM 表名; |
INSERT INTO 表名(列1, 列2, ...) VALUES(列1的值, 列2的值, ...); INSERT INTO 表名(列1, 列2, ...) VALUES(列1的值, 列2的值, ...), (列1的值, 列2的值, ...), (列1的值, 列2的值, ...),...; |
可以只指定部分的列,没有显式指定的列的值将被置为NULL。 |