1 Data Define Language
1.1 SCHEMA
1.1.1 CREATE SCHEMA
1
CREATE SCHEMA [<模式名>] AUTHORIZATION <用户名> [<表定义子句>|<视图定义子句>|<授权定义子句>];
如果没有指定<模式名>,那么<模式名>隐含为<用户名>。用户名>模式名>模式名>
定义模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等。
注意,正如MySQL Glossary中所言,在 MySQL 中,SCHEMA 只是 DATABASE 的代名词:
In MySQL, physically, a schema is synonymous with a database. You can substitute the keyword SCHEMA instead of DATABASE in MySQL SQL syntax, for example using CREATE SCHEMA instead of CREATE DATABASE.
Some other database products draw a distinction. For example, in the Oracle Database product, a schema represents only a part of a database: the tables and other objects owned by a single user.
例子如下:
CREATE SCHEMA test AUTHORIZATION zhang
CREATE TABLE table1(col1 SMALLINT,
col2 INT,
col3 CHAR(20),
col4 NUMERIC(10,3),
col5 DECIMAL(5,2)
);
1.1.2 DROP SCHEMA
1
DROP SCHEMA <模式名> {CASCADE|RESTRICT};
RESTRICT 表示只有当该模式中没有任何下属的对象时才能执行DROP SCHEMA
语句,相当于 Linux 中的 rm -r <目录名>
;
例子:
1
DROP SCHEMA zhang CASCADE;
1.2 TABLE
1.2.1 CREATE TABLE
1
2
3
4
5
CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束条件]
[,<列名> <数据类型> [列级完整性约束条件]]
...
[,<表级完整性约束条件>]
);
DDL