Sql常用语句

Posted by wsxq2 on 2018-10-29
TAGS:  SQL

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