- ORACLE SQL 语言:
DML:数据操纵语言,用于数据的查询与修改,是属于对数据的操作,一般的语句包括增(INSERT)、删(DELETE)、查(SELECT)、改(UPDATE)。
DDL:数据定义语言,用于定义数据库的结构,是属于对数据库对象的操作,创建数据库对象用CREATE关键字,更改表结构用ALTER关键字,删除用DROP。
DCL:数据控制语言,用于控制数据库的访问,GRANT(授予权限)、REVOKE:(撤销权限)、COMMIT(提交)、ROLLBACK(事务回滚)、SAVEPOINT(设置保存点)、LOCK(锁定)。
对于进行新增修改的数据没有进行COMMIT提交的都为未保存,而未提交的数据操纵可以ROLLBACK进行回滚,即在数据操作后没有进行COMMIT然后发现所填数据有误时可ROLLBACK。如下图所示在对SC表进行新增时把SNO字段s开头填错为c开头,而还没有进行提交操作时,就可在SQL窗口输入ROLLBACK;执行即可。
- ORACLE 函数:
单行函数:只对一行进行转换,且每行返回一个结果。其中当行函数中包括字符函数、数值函数、日期函数、转换类函数和通用函数。
- 大小写控制函数:
- LOWER 小写转换,把数据字段全部转成小写形式
- UPPER 大写转换,把数据字段全部转成大写形式
- INITCAP 把数据字段首字母转成大写形式
- 字符控制函数:
- CONCAT 字段连接,与||相似
- SUBSTR 匹配固定位置字符
- LENGTH 获取字符长度
- INSER 获取匹配字段位置
- LPAD 规定字段长度左填充
- RPAD 规定字段长度右填充
- TRIM 截取指定字符(直接使用时去掉首尾空格)
- REPLACE 替换指定字符
- 数字函数
- ROUND四舍五入
- TRUNC 截断
- MOD 求余
- 日期函数
- MONTHS_BETWEEN日期间相差月数
- ADD_MONTHS指定日期加N月
- NEXT_DAY指定日期下个星期N对应日期
- LAST_DATE 本月最后一天
- 转换函数
- TO_DATE 日期转换(时间格式HH24:MI:SS)添加字符用""
- TO_CHAR字符串转换(L:本地货币符,9:数字)
- TO_NUMBER数字转换
- 通用函数
- Nvl(expr1,expr2) expr1 为null时,返回expr2
- Nvl2(expr1,expr2,expr3) expr1 不为null返回 expr2,为null返回expr3
- Nvllif(expr1,expr2) 相等返回null不等返回expr1
- Coalesce (expr1,…) 前一个为null则返回下一个
常用单行函数举例:
分组函数:作用于一组数据,并对一组数据返回一个值关键字GROUP BY
- AVG 平均值
- SUM 合计
- MIN 最小值
- MAX 最大值
- COUNT 总条数
注:组函数忽略空值,可以使用单行函数NVL,在计算条数时使用DISTINCT 返回非空且不重复的条数,对分组函数进行条件查询时使用 HAVING 关键字
组函数使用举例:查询EMPLOYEES 表的各个部门的SALARY平均值、总数、最大值、最小值、总条数、且平均值大于7000的按DEPARTMENT_ID倒序排序
- 查询、过滤和排序:
查询:对数据的显示,SELECT 语句,连表时使用可使用ORACLE 中特有的连接方式:
右连接A表(+) = B表、左连接A表 = B表(+),也可使用SQL1999语法:
LEFT/RIGHT JOIN ON、CROSS JOIN 为叉集(与笛卡尔集相同),NATURAL JOIN 为自然连接会以两表中具有相同名字的列创建连接
过滤:即对数据进行条件筛选和排号在FROM 后紧接 WHERE 关键字,最后使用ORDER BY 字段进行排序
在过滤条件中字符和日期要包含在单引号中,且日期格式要与数据库记录类型一致,否则要进行字符转换
- 比较运输符:+-*/ 、BETWEEN ..AND ..(两个值直接包含边界)、IN(..)存在于括号内的值
- LIKE 模糊查询:%--代表多个任意字符,_--代表一个字符。注:在匹配特殊字段时要使用转义符:即’\’在加上ESCAPE’\’
SET运算符:把两个或多个查询语句用于一起显示,但所查询的字段在每个查询语句中必须要相同
set运算符(可用于两表查询集合)
Union(all) | 两表并集(+ALL不去重) |
Intersect | A表与B表的交集 |
Minus | 把A表中含有B表的部分去除 |
注:在合并时如有需分别显示字段用TO_CHAR/NUMBER…(NULL)占列
- 数据库对象操作:
Alter sequence add/modify | 序列增加/修改 | |||||||
Rename tabkenameed to tablename | 更改表名 | |||||||
Alter table add/modify/drop column(rename column) | 表结构增加/修改(列名修改) 约束:disable失效/enable激活 constraint 约束名
| |||||||
Drop table/view/sequence/… | 对象…删除 | |||||||
Insert into table/View values() | 数据添加(表和视图相通) | |||||||
Update set(修改值)..WHERE条件 | 数据修改 | |||||||
Truncate/Delete from tablename | 数据清除(Delete 可回滚rollback,Truncate不可回滚) |