- 关键字不能作为表的列名或表名 SELECT * FROM V$RESERVED_WORDS WHERE keword IN ('WHRE','DATE','DROP','ALTER');
- 查询数据库用户 SELECT username,accout_status,created FROM dba_users;
- 创建用户 CREAT USER mai IDENTIFIED BY thepassword;
- 新建>命令窗口 进入交互模式
- SELECT 列名... FROM 表名 WHERE 限定语句; 避免使用SELECT * ... 会增加系统开销
- dual表的用途
- 基本的算术运算: SELECT (10+20)/2 FROM dual; 四舍五入:SELECT ROUND((12+17)/3,2) FROM dual; 求余: SELECT MOD(3/2) FROM dual;
- 获取当前时间: SELECT SYSDATE FROM dual; SELECT SYSDATE-to_date('2019-07-16 22:30:15','yyyy-MM-DD hh24:mi:ss')
- NVL(expr1,expr2) 转换一个空值到一个实际的值(解决场景:一个列的值加上一个空值会得到空,如果再乘以一个数也会时空,所以可以用nvl先把空值转换为0)
- 别名 AS(可省略 ,空格后直接接别名),中文别名必须用双引号括起来(也只有别名用双引号)
- 字符串连接符 ||
- DISTINCT 去重 SELECT DISTINCT ... FROM ...;
- regexp_like,regexp_instr
- having可以使用聚合函数
- 不等于 <> 或者 !=
-
ALL 大于最大的; <ALL大于最小的; >ANY 大于最小的 <ANY小于最大的
- 通配符 %匹配0个或多个 _匹配单个
- 转义 SELECT * FROM ... WHERE a = '%%%' ESCAPE ''
- 如果值什么都没有 is null, ='' 和 =null 都匹配不到
- 逻辑运算符 NOT AND OR ,要改变运算顺序可以用括号
- 排序 SELECT .. FROM .. ORDER BY EXP1,EXP2 DESC;
- 常用函数
- LOWER
- UPPER
- INITCAP
- NVL
- DECODE
- CONCAT
- SUBSTR
- LENGTH
- INSTR
- LPAD
- RPAD
- LTRIM
- RTRIM
- TRIM
- ROUND
- TRUNC
- MOD
- POWER
- SIGN
- ASCII
- CHR
- TO_CHAR
- TO_DATE
Oracle学习
2019-07-16