SQL 简介
SQL (Structured Query Language,
结构化查询语言)支持如下类别命令:
数据定义语言:CREATE(创建)、ALTER(更改)、TRUNCATE(截断)、DROP(删除)命令。
数据操纵语言:INSERT(插入)、SELECT(选择)、DELETE(删除)、UPDATE(修改)命令。
事务控制语言:COMMIT(提交)、SAVEPOINT(保存点)、ROLLBACK(回滚)命令。
数据控制语言:GRANT(授予)、REVOKE(回收)命令。
特点:
1、非过程语言,它同时可以访问多条记录。
2、所有关系型数据库的通用型语言,可移植性强。
3、对于数据和对象的操作简单。
数据定义语言
用于改变数据库结构,包括创建、修改和删除数据库对象。
1、CREATE TABLE 创建表
CREATE TABLE [schema.]table
(columname datetype [, .]);
.表名的最大长度为30个字符;
.表名首字母为字母,可以用下划线、数字和字母,但不能使用空格和单引号;
.同一用户模式下的不同表不能有相同的名称;
.表名、列名、用户名、和其他对象名不区分大小写,系统会自动转换成大写。
2、ALTER TABLE 修改表
ALTER TABLE <tablename>
MODIFY (column definition);
ADD (column definition);
DROP COLUMN column;
3、TRUNCATE TABLE 截取表
TRUNCATE TABLE <tablename>;
快速删除记录并释放空间,不使用事务处理,无法回滚,效率高。
DESC <tablename> 查看表结构
4、DROP TABLE 删除表
DROP TABLE <tablename>
数据操纵语言
DISTINCT 防止选择重复的行。
事务控制语言
COMMIT 提交并结束事务处理。
SAVEPOINT 保存点,将很长的事务处理划分为较小的部分,用于标记事务中可以应用回滚的点。
ROLLBACK 用来撤销在当前的事务中已完成的操作。可以回滚整个事务处理;也可以将事务回滚到某个保存点。
UPDATE xxx;
SAVEPOINT mark1;
DELETE FROM xxx;
SAVEPOINT mark2;
ROLLBACK TO SAVEPOINT mark1;
COMMIT;
数据控制语言
为用户提供权限控制命令。
授予对象权限
GRANT SELECT,UPDATE ON order_master
TO MARTIN;
取消对象权限
REVOKE SELECT,UPDATE ON order_master
FROM MARTIN;
SQL 操作符
算术操作符
算术表达式有 NUMBER 数据类型的列名、数值常量和连接它们的算术操作符组成。(+ - * /)
比较操作符
用于比较两个表达式的值。
=、!=、<、>、<=、>=、BETWEEN AND (检查是否在两个值之间)
[NOT] IN(与列表中的值匹配)
[NOT] LIKE(匹配字符模式, * _ 通配符)
[NOT] IS NULL(检查是否为空)
逻辑操作符
用于组合生成一个真或假的结果。AND OR NOT
集合操作符
集合操作符将两个查询的结果组合成一个结果集合。
UNION(联合) 返回两个查询选定不重复的行。(删除重复的行)
UNION ALL(联合所有) 合并两个查询选定的所有行,包括重复的行。
INTERSECT(交集) 只返回两个查询都有的行。
MINUS(减集) 在第一个查询结果中排除第二个查询结果中出现的行。 (第一 -- 第二)
使用集合操作符连接起来的 SELECT 语句中的列应遵循以下规则:
.通过集合操作连接的各个查询相同列数,匹配列的数据类型;
.这种查询不应含有 LONG 类型的列;
.列标题来自第一个 SELECT 语句。
SELECT orderno FROM order_master
UNION
SELECT orderno FROM order_detail;
连接操作符 (||)
用于将两个或者多个字符串合并成一个字符串,或者将一个字符串与一个数值合并在一起。
SELECT ('供应商'|| venname || '的地址是' || venaddress)
FROM vendor_master
Oracle 常用数据类型
1、字符数据类型
CHAR 固定长度字符串 长度 1~2000个字节,未指定则默认为 1字节
VARCHAR2 可变长度字符串 长度 1~4000个字节,定义时必须指定大小
LONG 可变长度字符串 最多能存储 2GB,存储超过 VARCHAR2 的长文本信息
ps.一个表中只有一列为 LONG 数据类型,
.LONG 列不能建立索引,
.存储过程不能接受 LONG 数据类型的参数
2、数值数据类型
NUMBER 数据类型可以存储 正数、负数、零、定点数(不带小数点的?)和精度为38为的浮点数。
格式: NUMBER [(precision 精度,数字总位数 1~38间
, scale 范围,小数点右边的位数 -84~127间)]
3、时期时间数据类型