目录

SQL语句的语法

在阅读语句语法时,应该记住以下约定。

| 符号表示用来指出几个选择中的一个,因此 NULL | NOT NULL 表示或者给出 NULL 或者给出 NOT NULL。 包含在方括号中的关键字或者子句(如 [like this])是可选的。 下面列出的语法几乎对所有 DBMS 都有效。关于具体语法可能变动的细节,建议读者参考自己的 DBMS 文档。

包含在方括号中的关键字或者子句(如 `[like this])是可选的。

下面列出的语法几乎对所有 DBMS都有效。关于具体语法可能变动的细节,建议读者参考自己的 DBMS 文档。

1. ALTER TABLE

ALTER TABLE用来更新已经存在的表结构。为了创建新表,应该使用 CREATE TABLE

1
2
3
4
5
6
ALTER TABLE tablename
(
    ADD|DROP column datatype NULL|NOT NULL,
    ADD|DROP column datatype NULL|NOT NULL,
    ...
);

2. COMMIT

COMMIT用来将事物写入数据库。

1
COMMIT [TEANSACTION];

3. CREATE INDEX

CREATE INDEX用于在一个或多个列上创建索引。

1
2
CREATE INDEX indexname
ON tablename (column, ...);

4. CREATE PROCEDURE

CREATE PROCEDURE 用于创建储存过程。Oracle 使用的语法稍有不同。

1
2
3
CREATE PROCEDURE procedurename [parameters] [options]
AS
SQL statement;

5. CREATE TABLE

CREATE TABLE 用于创建新数据库表。更新已经存在的表的结构,使用 ALTER TABLE

1
2
3
4
5
6
CREATE TABLE tablename
(
    ADD|DROP column datatype [NULL|NOT NULL] [CONSTRAINTS],
    ADD|DROP column datatype [NULL|NOT NULL] [CONSTRAINTS],
    ...
);

6. CREATE VIEW

CREATE VIEW用来创建一个或多个表上的新视图。

1
2
3
4
5
CREATE VIEW viewname AS
SELECT columns, ...
FROM tables, ...
WHERE ...
[HAVING ...];

7. DELETE

DELETE从表中删除一行或多行。

1
2
DELETE FROM tablename
[WHERE ...]

8. DROP

DROP永久地删除数据库对象(表、视图、索引)。

1
2
DROP INDEX|PROCEDURE|TABLE|VIEW
indexname|procedurename|tablename|viewname; 

9. INSERT

INSERT 为表添加一行。

1
2
INSERT INTO tablename [(columns, ...)]
VALUES(values, ...);

10. INSERT SELECT

INSERT SELECTSELECT的结果插入到一个表。

1
2
3
INSERT INTO tablename [(columns, ...)]
SELECT columns, ... FROM tablename, ...
[WHERE ...];

11. ROLLBACK

ROLLBACK用于撤销一个事物块。

1
2
3
4
5
ROLLBACK [TO savepointname];

or

ROLLBACK TRANSACTION; 

12. SELECT

SELECT 用于从一个表或多哥表(视图)中检索数据。

1
2
3
4
5
6
7
SELECT columnname, ...
FROM tablename,...
[WHERE ...]
[UNION ...]
[GROUP BY ...]
[HAVING ...]
[ORDER BY ...];

13. UPDATE

UPDATE更新表中的一行或多行。

1
2
3
UPDATE tablename
SET columnname = value, ...
[WHERE ...];