本节主要提供数据库表的创建、修改和删除示例。
创建表
使用 CREATE TABLE
语句在数据库中创建新表。
示例如下:
obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(3)) REPLICA_NUM = 3, PRIMARY_ZONE = 'zone1';
更多 CREATE TABLE
语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 CREATE TABLE 章节。
修改表
使用 ALTER TABLE
语句来修改已存在的表的结构,包括修改表及表属性、新增列、修改列及属性、删除列等。
示例如下:
修改表
test
的字段c2
的字段类型。obclient> DESCRIBE test;
+-------+-------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+-------------+------+-----+---------+-------+
| C1 | NUMBER(38) | NO | PRI | NULL | NULL |
| C2 | VARCHAR2(3) | YES | NULL | NULL | NULL |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)
obclient> ALTER TABLE test MODIFY c2 CHAR(10);
Query OK, 0 rows affected (0.05 sec)
obclient> DESCRIBE test;
+-------+------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+------------+------+-----+---------+-------+
| C1 | NUMBER(38) | NO | PRI | NULL | NULL |
| C2 | CHAR(10) | YES | NULL | NULL | NULL |
+-------+------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
增加、删除列
增加列前,执行
DESCRIBE test;
命令查看表信息。obclient> DESCRIBE test;
+-------+--------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+--------------+------+-----+---------+-------+
| C1 | NUMBER(38) | NO | PRI | NULL | NULL |
| C2 | VARCHAR2(3) | YES | NULL | NULL | NULL |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.02 sec)
执行以下命令,增加
c3
列。obclient> ALTER TABLE test ADD c3 int;
Query OK, 0 rows affected (0.05 sec)
增加列后,执行
DESCRIBE test;
命令查看表信息。obclient> DESCRIBE test;
+-------+--------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+--------------+------+-----+---------+-------+
| C1 | NUMBER(38) | NO | PRI | NULL | NULL |
| C2 | VARCHAR2(3) | YES | NULL | NULL | NULL |
| C3 | NUMBER(38) | YES | NULL | NULL | NULL |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
执行以下命令,删除
c3
列。obclient> ALTER TABLE test DROP COLUMN c3;
Query OK, 0 rows affected (0.05 sec)
删除列后,执行
DESCRIBE test;
命令查看表信息。obclient> DESCRIBE test;
+-------+--------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+--------------+------+-----+---------+-------+
| C1 | NUMBER(38) | NO | PRI | NULL | NULL |
| C2 | VARCHAR2(3) | YES | NULL | NULL | NULL |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
设置表
test
的副本数,并且增加列c5
。obclient> ALTER TABLE test SET REPLICA_NUM=2, ADD c5 INT;
Query OK, 0 rows affected (0.02 sec)
obclient> DESCRIBE test;
+-------+--------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+--------------+------+-----+---------+-------+
| C1 | NUMBER(38) | NO | PRI | NULL | NULL |
| C2 | VARCHAR2(3) | YES | NULL | NULL | NULL |
| C5 | NUMBER(38) | YES | NULL | NULL | NULL |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
更多 ALTER TABLE
语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 ALTER TABLE 章节。
删除表
使用 DROP TABLE
语句删除表。
示例如下:
obclient> DROP TABLE test;
Query OK, 0 rows affected (0.04 sec)
更多 DROP TABLE
语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 DROP TABLE 章节。