常用SQL语句

模式的定义与删除

模式的定义

CREATE SCHEMA <模式名> AUTHORZATION <用户名> [<表定义字句>|<视图定义字句>|<授权定义字句>];

如果没有指定模式名,那么模式名隐含为用户名。

模式的删除

DROP SCHEMA <模式名><CASCADE|DESTRICT>

CASCADE(级联) 和 DESTRICT(限制) 两者比选其一

基本表的定义、删除与修改

定义基本表

CREATE TABLE <表名>(<列名><数据类型>[列级完整性约束条件]
                    [,<列名><数据类型>[列级完整性约束条件]]
                    ....
                    [,[表列级完整性约束条件]);
  • 主码由一个属性构成,可将 PRIMARY KEY 作为列级完成性约束条件
  • 主码由多个属性构成,PRIMARY KEY(<列名 1>[,<列名 2>…]) 必须作为表级完整性约束条件
  • 定义外码:FOREIGN KEY (外码名) REFERENCES <被参照表名>(被参照列名);

修改基本表

ALTER TABLE <表名>
[ADD [COLUMN] <新列名><数据类型> [完整性约束]]
[ADD <表级完整性约束>]
[DROP [COLUMN] <列名> [CASCADE|RESTRICT]]
[DROP CONSTRAINT<完整性约束名> [RESTRICT|CASCADE]]
[ALTER COLUMN <列名><数据类型>];

删除基本表

DROP TABLE <表名> [RESTRICT|CASCADE];

索引的建立与删除

建立索引

CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名> [<次序>][,<列名>[<次序>]]...);

在SQL Server中使用CLUSTERED而不是CLUSTER。
次序1

修改索引

ALTER INDEX <旧索引名> RENAME TO <新索引名>;

删除索引

DROP INDEX <索引名>;

数据查询

SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>....]
FROM <表名或试图名> [,<表名或试图名>...] | ( <SELECT语句> ) [AS] <别名>
[WHERE<条件表达式>]
[GROUP BY <列名 1> [HAVING<条件表达式>]]
[ORDER BY <列名 2> [ASC|DESC]];
  • 取消重复行:使用关键字 DISTINCT, 没有指定关键字则默认为ALL
  • 目标列表达式,即查询结果以经过表达式运算后的结果显示
  • WHERE字句中不能使用聚集函数作为条件表达式
  • 外连接`SELECT <目标列表达式> FROM <表名> [LEFT|RIGHT] OUTER JOIN <连接表名> ON (连接条件)
  • 嵌套查询中,子查询的SELECT语句中不能使用 ORDER BY 子句,即 OERDER BY 子句只能对最终查询结果排序
  • 嵌套查询中可使用IN, ANY(或SOME), ALL, EXISTS(代表量词:存在),使用存在量词EXISTS后,若内层查询结果非空,则外层的 WHERE 子句true,否则返回 false。
  • 集合查询主要使用并操作 UNION,交操作 INTERSECT 和差操作 EXCEPT。

数据更新

插入元组

INSERT INTO <表名> [(<属性列 1>[,<属性列 2>]....)]
VALUES (<常量 1>[,<常量 2>]....);
  • 如果INTO子句中没有指明任何属性列名,则新插入的元组并需在每个属性列上均有值。

插入子查询结果

INSERT INTO <表名> [(<属性列 1>[,<属性列 2>....])]
子查询;

修改数据

UPDATE <表名> 
SET <列名>=<表达式>[,<列名>=<表达式>]....
[WHERE<条件>];

删除数据

DELETE
FROM <表名>
[WHERE <条件>];

视图

建立视图

CREATE VIEW <视图名> [(<列名>[,<列名>] ....]
AS <子查询>
[WITH CHECK OPTION];

删除视图

DROP VIEW <视图名> [CASCADE];

查询视图

同基本表的查询操作相同。

更新视图

由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的跟新。但并不是所有的视图都是可更新的,因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新。

常用的查询条件表

查询条件谓词
比较=,>,<,>=,<=,!=,<>,!>,!<; NOT+上述比较运算符
确定范围BETWEEN AND, NOT WETWEEN AND
确定集合IN, NOT IN
字符匹配LIKE, NOT LIKE
空值IS NULL, IS NOT NULL
多重条件(逻辑运算)AND, OR, NOT
LIKE '<匹配串>' [ESCAPE '<换码字符>']
  • %(百分号) 代表任意长度的字符串
  • _(下划线) 代表任意单个字符

聚集函数表

函数名功能
COUNT(*)统计元组个数
COUNT([DISTINCT | ALL) <列名>统计一列中值的个数
SUM([DISTINCT | ALL) <列名>计算一列值的总和(此列必须是数值型)
AVG([DISTINCT | ALL) <列名>计算一列值的平均值(此列必须是数值型)
MAX([DISTINCT | ALL) <列名>求一列值中的最大值
MIN([DISTINCT | ALL) <列名>求一列值中的最小值

数据类型表

数据类型含义
CHAR(n),CHARACTER(n)长度为n的定长字符串
VARCHAR(n),CHARACTERARYING(n)最大长度为n的变长字符串
CLOB字符串大对象
BLOB二进制大对象
INT,INTEGER长整数(4字节)
SMALLINT短整数(2字节)
BIGINT大整数(8字节)
NUMERGIC(p,d)定点数,由p位数字(不包括符号、小数点)组成,小数点后面有d位数字
DECIMAL(p,d),DEC(p,d)同NUMERGIC
REAL取决于机器精度的单精度浮点数
DOUBLE PRECISION取决于机器精度的双精度浮点数
FLOAT(n)可选精度的浮点数,精度至少为n位数字
BOOLEAN逻辑布尔量
DATE日期,包含年、月、日,格式为YYYY-MM-DD
TIME时间,包含一日的时、分、秒,格式为HH:MM:SS
TIMESTAMP时间戳类型
INTERVAL时间间隔类型

  1. 次序可选 ASC(升序)或DESC(降序),默认值为ASC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值