Oracle的sql语言:
sql全称:struct query language 结构化查询语言
四大类:
DDL:数据定义语言 create alter drop
DQL:数据查询语言 select
DML:数据操作语言 insert update delete
DCL:数据控制语言 grant revoke
TCL:事务控制语言 (DML可以操作) savepoint commit rollback to
事务保存点:savepoint 保存点的名
事务回滚:rollback to 保存点
事务手动提交: commit
DML语句提交的情况(DQL不会造成自动提交):
l一条显式的commit语句
l一条DDL语句或者DCL语句(相当于commit)
select*fromemp orderbyhiredate desc
注明:默认是升序(asc)
语法:
Select *|列名(字段名)
From 表名
Where 条件【or|in|like】
Group by 分组
Having 分组条件
Order by 排序desc asc
知识点三:Oracle中的预定义(内置)函数 - 效率高
|- 字符函数:处理字符串
|- 数学函数:处理数字
|- 日期函数:时间进行处理
|- 转换函数:类型间转换
1:字符函数
问题1: 把员工姓名和工作类型连接在一起,中间用“-”分割显示
语法:concat(字符串1,字符串2)
2.日期或时间函数运算规则:日期相减=天数日期-日期=天数
语法:sysdate
3 数字函数
问题1:按每月30天计算员工的每日工资,要求计算结果四舍五入到小数点后2位
函数:round
语法:round(数字,精度)
4 转换函数语法:to_char(时间,格式)
6 分组函数sum、avg、count、max、min
问题1:显示部门30中所有员工的工资总和
Select *|列名(字段名)
From 表名
Where 条件【or|in|like】
Group by 分组
Having 分组条件
Order by 排序desc asc
知识点四:多表查询 emp dept
分为4种
1、等连接
2、不等连接
3、外连接
4、自连接
3-1、等连接
分析:姓名-emp.ename
部门名称-dept.dname
关系:emp(deptno) ódept(deptno)
3-2、不等连接
问题:显示员工的编号,姓名,工资,以及工资所对应的级别。
分析:员工编号-empno,姓名-ename,工资-sal,工资等级-grade
关系:emp(sal) between salgrade(LOSAL) and salgrade(HISAL)
3-3、外连接
问题:查询所有部门名称和对应的员工姓名,若该部门没有员工,只显示部门名称
分析: 部门名称 dept.dname
员工姓名 emp.ename
Oracle中使用(+)表示外连接,可以理解(+) 所在字段的对侧(以=分开左右两部分)为主要显示信息
3-3、自连接(等连接,)
问题:显示员工姓名及其上级员工的姓名
分析:员工姓名emp.ename
上级员工姓名 emp.name