基本 SQL 语言语法


                        基本 SQL 语言语法

说明:
方括号间的选项为可选选项;
斜杠间的选项为默认选项;

#################### select 子句 ####################

subquery ::=
    SELECT [/ALL/ | DISTINCT] {* | expr [[AS] c_alias] [, expr [[AS] c_alias]...]}
        FROM tableref
        [WHERE search_condition]
        [GROUP BY colname [, colname...]]
        [HAVING search_condition]
    | subquery {UNION [ALL] | INTERSECT [ALL] | EXCEPT [ALL]} subquery

select statement ::=
    subquery [ORDER BY result_column [/ASC/ | DESC] [, result_column [/ASC/ | DESC]...]];

说明:
INTERSECT [ALL] 和 EXCEPT [ALL] 是高级特性,不属于基本 SQL (Entry SQL-92),但包含于 Core SQL-99

#####################################################

################# 表引用 (tableref) #################

tableref ::=
    tablename [[AS] corr_name [(colname [, colname...])]]
    | (subquery) [AS] corr_name [(colname [, colname...])]
    | tableref [/INNER/ | {LEFT | RIGHT | FULL} [OUTER]] JOIN tableref
        {ON search_condition | USING (colname [, colname...])}

from_clause ::=
    FROM tableref [, tableref...]

#####################################################

####################### 谓词 ########################

比较谓词
    expr θ {expr | (subquery)}
BETWEEN 谓词
    expr [NOT] BETWEEN expr and expr
量化比较谓词
    expr θ{SOME | ANY | All}(subquery)
IN 谓词
    expr [NOT] IN {(subquery) | (val [, val...])}
EXIST 谓词
    [NOT] EXIST (subquery)
IS NULL 谓词
    colname IS [NOT] NULL
LIKE 谓词
    colname [NOT] LIKE val [ESCAPE val]

说明:其中θ是 {<, <=, =, <>, >, >=} 中的一个

#####################################################

##################### 集合函数 ######################

set_function_name([/ALL/ | DISTINCT] colname) | COUNT(*)
其中 set_function_name 是 {COUNT, SUM, MAX, MIN, AVG} 中的一个。

#####################################################

########### 求解 select 语句的概念性步骤 ############

1. 对 from 子句中的所有表做关系乘积;
2. 删除不满足 where 子句的行;
3. 根据 group by 子句对剩余的行进行分组;
4. 删除不满足 having 子句的值;
5. 求出 select 子句选择列表中的表达式的值;
6. 若有关键字 distinct 存在,则删除重复的行;
7. 求解子查询的 union、intersect 和 except;
8. 若有 order by 子句存在,则对所有选出来的行进行排序。

#####################################################





#################### insert 子句 ####################

INSERT INTO tablename [(colname [, colname...])]
    {VALUES (expr | NULL [, expr | NULL...]) | subquery};

#####################################################





#################### update 子句 ####################

UPDATE tablename
    SET colname = {expr | NULL | (subquery)}
        [, colname = {expr | NULL | (subquery)}...]
    [WHERE search_condition];

#####################################################





#################### delete 子句 ####################

DELETE FROM tablename
    [WHERE search_condition];

#####################################################





################# create table 子句 #################

CREATE TABLE [schema.]tablename
    ({colname datatype [DEFAULT {default_constant | /NULL/}] [col_constr [col_constr...]]
        | table_constr}
    [,{colname datatype [DEFAULT {default_constant | /NULL/}] [col_constr [col_col_constr...]]
        | table_constr}
    ...]);

#####################################################

################ 列约束 (col_constr) ################

{NOT NULL |
    [CONSTRAINT constraintname]
    UNIQUE
    | PRIMARY KEY
    | CHECK (search_condition)
    | REFERENCES tablename [(colname)]
        [ON DELETE CASCADE]}

说明:除了 NOT NULL 之外的约束均可以起名。

#####################################################

############### 表约束 (table_constr) ###############

[CONSTRAINT constraintname]
    {UNIQUE (colname [, colname...])
    | PRIMARY KEY (colname [, colname...])
    | CHECK (search_condition)
    | FOREIGN KEY (colname [, colname...])
        REFERENCES tablename [(colname [, colname...])]
            [ON DELETE CASCADE]}

说明:除了 NOT NULL 之外的约束均可以起名。

#####################################################
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值