Oracle 语言基础
1,基本 select 语句
select *|{[distinct] column|expression [alias],...}
from table;
distinct 删除重复行
2,过滤和排序
where 子句紧随 from子句
字符和日期要包含单引号中 默认日期格式是DD-MON-RR;
比较运算 = ,>, >=, <, <=,<>不等于也可以是(!=)
还有between and ,in(set) ,like(%代表零个或者多个字符,_代表一个字符), is null , escape 回避特殊符号的
逻辑运算 AND ,OR,NOT
GRDER BY 子句 (ASC 升序 DESC 降序) GRODER BY 子句在select语句的结尾。
3,单行函数
大小写控制函数 LOWER() 变小写 , UPPER()变大写 , INITCAP() 首字母大写
字符控制函数 CONCAT(连接),SUBSTR(截取),LENGTH(计算长度),INSTR(截取的字符在哪位置),LPAD(对左边进行填充),TRIM(删除两边的空格,也可以指定),RPAD(对右边进行填充);
数字函数 ROUND(四舍五入),TRUNC(截取),MOD(求余)
日期 MONTHS_BETWEEN(‘01-JAN-95‘,‘11-JAN-94‘) 两个日期相差的月数 ADD_MONTHS(‘11-JAN-94‘,6) 向指定日期的下一个日期
NEXT_DAY(‘01-SEP-95‘,‘FRIDAY‘ )指定日期的下一个日期 LAST_DAY(‘01-FEB-95‘) 本月的最后一天
ROUND (‘SYSDATE‘,‘MONTH‘) 四舍五入, TRUNC (‘SYSDATE‘,‘MONTH‘) 截断
转换函数 TO_CHAR()函数对日期的转换和对数字的转换 ,TO_NUMBER 将字符转换成数字, TO_DATE()将字符转换成日期
通用函数 NVL() 将空值转换一个已知的值,NVL2()不为空返回第一个否则返回第二个,NULLIF()相等返回null不相等返回第一个
COALESCE()如果哦第一个表达式为空,则返回下一个表达式,找到一个不为空的值。
条件表达式 CASE id WHEN ‘ ‘ THEN
WHEN ‘ ‘ THEN
ELSE eid
DECODE (id , ‘ ‘ , value
‘ ‘ , value
‘ ‘ , value
salary)
4,分组函数
AVG(平均值), SUM(合计),MIN(最小值),MAX(最大值),COUNT(记数)
组函数忽略空值 使用NVL函数是分组函数无法忽略空值
可以使用GROUP BY 子句将表中的数据分成若干组
在select 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中
注意:不能在WHERE子句中使用组函数
不能在HAVING子句中使用组函数
5,多表查询
自然连接
NATURAL JOIN 子句 会以两个表中具有相同名字的列为条件创建等值连接
USING 子句 可以使用USING子句指定等值连接中需要用到的列
NATURAL JOIN 和USING 子句经常同时使用
ON 子句创建连接 可以使用ON子句指定额外的连接条件 这个连接条件是与其它条件分开的ON子句使语句具有更高的易读性
CROSS JOIN 产生叉集和笛卡尔集是相同的
外连接 (+)显示 没有+号的不满足条件的数据
左外连接 LEFT OUTER JOIN
右外连接 RIGHT OUTER JOIN
满外连接 FULL OUTER JOIN
6,子查询
单行子查询 =,>=,>,<,<=,<>
多行子查询 IN,ANY,ALL
7,集合运算
UNION/UNION ALL 并集
INTERSECT 交集
MINUS 差集
8,DML数据操作语言
INSERT 语句 插入
UPDATE 语句 更新
DELETE 语句 删除
DELETE和TRUNCATE
DELETE操作可以rollback 可以闪回 可能产生碎片,并且不释放空间
TRUNCATE 清空表
9,数据库事务
一个或者多个DML语句
一个DDL语句
一个DCL语句
事务以第一个DML语句的执行作为开始,以下面的其中之一作为结束
显示结束:commit rollback
隐式结束(自动提交):DDL语言,DCL语言 exit(事务正常退出)
隐式回滚(系统异常终止):关闭窗口,死机,掉电
使用 SAVEPOINT语句在当前事务中创建保存点
使用ROLLBACK TO SAVEPOINT语句回滚到创建的保存点
10,数据库的隔离级别
READ UNCOMMITTED (读未提交数据)
READ COMMITED(读已提交) oracle默认级别
REPEATABLE READ(可重复度) mysql默认级别
SERIALIZABLE(串行化)
11,创建和管理表
CREATE TABLE语句 必须具备CTEATE TABLE权限
数据类型 描述
VARCHAR2(SIZE) 可变长字符数据
CHAR(SIZE) 定长字符数据
NUMBER(P,S) 可变长数值数据
DATE 日期型数据
LONG 可变长字符数据,最大可以达到2G
CLOB 字符数据,最大可以达到4G
RAW AND LONG RAW 原始的二进制数据
BLOB 二进制数据,最大可达到4G
BFILE 存储外部文件的二进制数据,最大4G
ROWID 行地址
ALTER TABLE 语句
ADD追加一个新列
TABLE ALTERED 修改一个列
DROP COLUMN 删除一个列
DROP TABLE 语句 删除表 不能回滚 但是可以闪回
RENAME TO 语句 改变对象的名称
TRUNCATE TABLE 语句 清空表 不能回滚
约束
NOT NULL 不为空
UNIQUE 唯一
PRIMARY KEY 主键
FOREIGN KEY 外键
CHECK 定义每一行记录所有必须满足的条件
12,其它数据看对象
视图 建立在已有表的基础上
CREATE (OR REPLACE) VIEW
AS
视图定义中包含以下元素不能DELETE(组函数,GROUP BY 子句,DISTINCT 关键字,TOWNUM 伪列)
视图中定义包含以下元素之一时不能使用UPDATE(组函数,GROUP BY子句,DISTINCT 关键字,ROWNUM 伪列,列的定义为表达式)
DROP VIEW VIEW; 删除视图
序列 CREATE SEQUENCE 定义序列
NEXTVAL 返回序列中下一个有效的指,任何用户都可以引用
CURRVAL 中存放序列的当前值
NEXTVAL 应在 CURRVAL 之前指定 二者应同时有效
索引
自动创建:在定义 PRIMARY KEY 或者UMIQUE 约束后系统自动在相应的列上创建唯一性索引
手动创建:用户可以在其他列上创建非唯一的索引,以加速查询
CREATE INDEX index
ON table
同义词使用同义词访问相同的对象
方便访问其它用户的对象
缩短对象名字的长度
CREATE SYNONYM synonym
FOR object
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。