189 lines
4.9 KiB
Markdown
189 lines
4.9 KiB
Markdown
表操作
|
|
========================
|
|
|
|
本节主要提供数据库表的创建、查看、修改和删除示例。
|
|
|
|
创建表
|
|
------------------------
|
|
|
|
使用 `CREATE TABLE` 语句在数据库中创建新表。
|
|
|
|
示例如下:
|
|
|
|
```sql
|
|
obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(3));
|
|
```
|
|
|
|
|
|
|
|
更多 `CREATE TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [CREATE TABLE](../../10.sql-reference/5.sql-statement/18.create-table.md)章节。
|
|
|
|
查看表
|
|
------------------------
|
|
|
|
使用 `SHOW CREATE TABLE` 语句查看建表语句。
|
|
|
|
示例如下:
|
|
|
|
```sql
|
|
obclient> SHOW CREATE TABLE test;
|
|
```
|
|
|
|
|
|
|
|
使用 `SHOW TABLES` 语句查看指定数据库中的所有表。
|
|
|
|
示例如下:
|
|
|
|
```sql
|
|
obclient> SHOW TABLES FROM my_db;
|
|
```
|
|
|
|
|
|
|
|
修改表
|
|
------------------------
|
|
|
|
使用 `ALTER TABLE` 语句来修改已存在的表的结构,包括修改表及表属性、新增列、修改列及属性、删除列等。
|
|
|
|
示例如下:
|
|
|
|
* 把表 `test` 的字段 `c2` 改名为 `c3`,并同时修改其字段类型。
|
|
|
|
```sql
|
|
obclient> DESCRIBE test;
|
|
+-------+------------+------+-----+---------+-------+
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
+-------+------------+------+-----+---------+-------+
|
|
| c1 | int(11) | NO | PRI | NULL | |
|
|
| c2 | varchar(3) | YES | | NULL | |
|
|
+-------+------------+------+-----+---------+-------+
|
|
|
|
obclient> ALTER TABLE test CHANGE COLUMN c2 c3 CHAR(10);
|
|
Query OK, 0 rows affected (0.08 sec)
|
|
obclient> DESCRIBE test;
|
|
+-------+----------+------+-----+---------+-------+
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
+-------+----------+------+-----+---------+-------+
|
|
| c1 | int(11) | NO | PRI | NULL | |
|
|
| c3 | char(10) | YES | | NULL | |
|
|
+-------+----------+------+-----+---------+-------+
|
|
```
|
|
|
|
|
|
|
|
* 增加、删除列
|
|
|
|
* 增加列前,执行 `DESCRIBE test``;` 命令查看表信息。
|
|
|
|
```sql
|
|
obclient> DESCRIBE test;
|
|
+-------+-------------+------+-----+---------+-------+
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
+-------+-------------+------+-----+---------+-------+
|
|
| c1 | int(11) | NO | PRI | NULL | |
|
|
| c2 | varchar(3) | YES | | NULL | |
|
|
+-------+-------------+------+-----+---------+-------+
|
|
2 rows in set (0.01 sec)
|
|
```
|
|
|
|
|
|
|
|
* 执行以下命令,增加 `c3` 列。
|
|
|
|
```sql
|
|
obclient> ALTER TABLE test ADD c3 int;
|
|
Query OK, 0 rows affected (0.08 sec)
|
|
```
|
|
|
|
|
|
|
|
* 增加列后,执行 `DESCRIBE test;` 命令查看表信息。
|
|
|
|
```sql
|
|
obclient> DESCRIBE test;
|
|
+-------+-------------+------+-----+---------+-------+
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
+-------+-------------+------+-----+---------+-------+
|
|
| c1 | int(11) | NO | PRI | NULL | |
|
|
| c2 | varchar(3) | YES | | NULL | |
|
|
| c3 | int(11) | YES | | NULL | |
|
|
+-------+-------------+------+-----+---------+-------+
|
|
3 rows in set (0.00 sec)
|
|
```
|
|
|
|
|
|
|
|
* 执行以下命令,删除 `c3` 列。
|
|
|
|
```sql
|
|
obclient> ALTER TABLE test DROP c3;
|
|
Query OK, 0 rows affected (0.08 sec)
|
|
```
|
|
|
|
|
|
|
|
* 删除列后,执行 `DESCRIBE test;` 命令查看表信息。
|
|
|
|
```sql
|
|
obclient> DESCRIBE test;
|
|
+-------+-------------+------+-----+---------+-------+
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
+-------+-------------+------+-----+---------+-------+
|
|
| c1 | int(11) | NO | PRI | NULL | |
|
|
| c2 | varchar(50) | YES | | NULL | |
|
|
+-------+-------------+------+-----+---------+-------+
|
|
2 rows in set (0.00 sec)
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 设置表 `test` 的副本数,并且增加列 `c5`。
|
|
|
|
```sql
|
|
obclient> ALTER TABLE test SET REPLICA_NUM=2, ADD COLUMN c5 INT;
|
|
Query OK, 0 rows affected (0.06 sec)
|
|
obclient> DESCRIBE test;
|
|
+-------+------------+------+-----+---------+-------+
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
+-------+------------+------+-----+---------+-------+
|
|
| c1 | int(11) | NO | PRI | NULL | |
|
|
| c2 | varchar(3) | YES | | NULL | |
|
|
| c5 | int(11) | YES | | NULL | |
|
|
+-------+------------+------+-----+---------+-------+
|
|
3 rows in set (0.00 sec)
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
更多 `ALTER TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [ALTER TABLE](../../10.sql-reference/5.sql-statement/7.alter-table.md) 章节。
|
|
|
|
删除表
|
|
------------------------
|
|
|
|
使用 `DROP TABLE` 语句删除表。
|
|
|
|
示例如下:
|
|
|
|
```sql
|
|
obclient> DROP TABLE test;
|
|
```
|
|
|
|
|
|
|
|
或者
|
|
|
|
```sql
|
|
obclient> DROP TABLE IF EXISTS test;
|
|
```
|
|
|
|
|
|
|
|
更多 `DROP TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DROP TABLE](../../10.sql-reference/5.sql-statement/30.drop-table.md)章节。
|