Files
oceanbase/docs/docs-cn/2.quickstart/6.basic-operations/2.table-operations.md
2022-02-10 14:51:49 +08:00

4.9 KiB

表操作

本节主要提供数据库表的创建、查看、修改和删除示例。

创建表

使用 CREATE TABLE 语句在数据库中创建新表。

示例如下:

obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(3));

更多 CREATE TABLE 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 CREATE TABLE章节。

查看表

使用 SHOW CREATE TABLE 语句查看建表语句。

示例如下:

obclient> SHOW CREATE TABLE test;

使用 SHOW TABLES 语句查看指定数据库中的所有表。

示例如下:

obclient> SHOW TABLES FROM my_db;

修改表

使用 ALTER TABLE 语句来修改已存在的表的结构,包括修改表及表属性、新增列、修改列及属性、删除列等。

示例如下:

  • 把表 test 的字段 c2 改名为 c3,并同时修改其字段类型。

    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``; 命令查看表信息。

      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 列。

      obclient> ALTER TABLE test ADD c3 int;
      Query OK, 0 rows affected (0.08 sec)
      
    • 增加列后,执行 DESCRIBE test; 命令查看表信息。

      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 列。

      obclient> ALTER TABLE test DROP c3;
      Query OK, 0 rows affected (0.08 sec)
      
    • 删除列后,执行 DESCRIBE test; 命令查看表信息。

      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

    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 章节。

删除表

使用 DROP TABLE 语句删除表。

示例如下:

obclient> DROP TABLE test;

或者

obclient> DROP TABLE IF EXISTS test;

更多 DROP TABLE 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 DROP TABLE章节。