数据定义
模式
定义模式:
CREATE SCHEMA "模式名" AUTHORIZATION <用户名>
删除模式:
DROP SCHEMA "模式名" CASCADE/RESTRICT
// CASCADE(级联):在删除模式的同时把所有的数据库对象全部删除
// RESTRICT(限制):如果该模式中已定义了下属的数据库对象(表、视图等),则拒绝删除语句的执行
基本表
定义基本表:
CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束条件]
,<列名><数据类型>[列级完整性约束条件]
...
,[表级完整性约束条件]);
eg:
CREATE TABLE Table1 (TA001 CHAR(9) PRIMARY KEY,
TA002 SMALLINT UNIQUE,
TA003 CHAR(4),
TA004 DATE);
CREATE TABLE Table2 (TB001 CHAR(9) ,
TB002 SMALLINT UNIQUE,
TB003 TIME,
TB004 DATE,
PRIMARY KEY(TB001,TB002),
FOREIGN KEY (TB001) REFERENCES Table1(TA001));
删除基本表:
DROP TABLE <表名> [RESTRICT/CASCADE]
索引
建立索引:
CREATE [UNIQUE][CLUSTER] INDEX <索引名> ON <表名> (<列名>[<次序>]...)
次序:ASC升序(默认),DESC降序
**UNIQUE**:表示此索引的每一个索引值只对应唯一的数据记录
**CLUSTER**:表示要建立的索引是聚簇索引
修改索引:
ALTER INDEX <旧索引名> RENAME TO <新索引名>
删除索引:
DROP INDEX <索引名>
数据查询
SELECT [ALL /DISTINCT] <目标列表达式> [,<目标列表达式>]...
FROM <表名/视图名...> /(SELECT语句)[AS]<别名>
[WHERE <条件表达式>]
[GROUP BY <列名1> <HAVING<条件表达式>]] #将查询结果按一列或多列的值分组,值相等的一组
ORDER BY <列名2> [ASC/DESC]]; #对一个或多个属性列的排序
DISTINCT:去掉重复行
=等于 >大于 <小于 >=大于等于 <=小于等于
!=或<>不等于 !>不大于 !<不小于
确定范围:BETWEEN…AND…
NOT BETWEEN…AND…
字符匹配:%代表任意长度的字符串 _代表任意字符
[NOT] LIKE '<匹配串>' [ESCAPE '换码字符>']
数据更新
插入数据:
INSERT INTO <表名>[(属性列1)(属性列2)...] VALUES(<常量1>[,<常量2>]...)
修改数据:
UPDATE <表名> SET <列名>=<表达式>...
[WHERE <条件>];
删除数据:
DELETE FROM <表名> [WHERE<条件>];
视图
建立视图:
CREATE VIEW <视图名> [<列名>...]
AS<子查询>
[WITH CHECK OPTION];
删除视图:
DROP VIEW <视图名>[CASCADE];