简单语法
————老子亲笔
-- SQL分类
DDL(Data Definition Language):数据定义语言,用来定义表、列等;
如:创建数据表...
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
如:添加数据,修改数据,删除数据
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
如:查询数据
DTL (Data Transaction Language):数据事务语言,用来操作事务。
如:开启事务,提交事务
DCL (Data Control Language):数据控制语言。用来操作用户和权限
如:创建用户,授权。
-- 简单语法
-- in介绍
not in:和in是相反的-- 例子 select * from emp where sal not in(800,1600,3000);
-- like介绍
like:它只用在字符串列,表示对字符串进行模糊查询
%:表示在这个%出现的地方可以有0个或者多个字符
_: 表示在_出现的地方有且只能一个任意字符
not like:和like相反
like 中的转义字符:\
在新版的oracle中,使用转义字符需要手动去定义 定义 escape '\'
转义字符,它会把紧跟在它后面的字符当作一个普通的字符去处理
select * from emp where ename like '%\_%' escape '\';(like转义字符示例)
select * from emp where ename like '%S'; (like使用示例)
-- exists介绍
exists:它不和任何列一起使用,后面跟的是一个子查询(查询语句select语句),如果子查询能查出结果,那么这个条件就是成立的,查不出结果条件不成立
not exists:和exists相反
select * from emp where exists(select * from emp where 1=0);
select * from emp where exists(select * from emp);
-- and ,or, between and 介绍
这个都懂
-- is null,is not null 介绍
is null:表示这个值是空时条件成立
is not null:表示值不为空间条件成立
select * from emp where comm is null;
select * from emp where comm is not null;
-- dual 内置表的介绍
dual表:它是oracle内置的一个单行表,
select 1 from dual;
select 'abc' from dual;
select 2*3 from dual;
select 1,2,3,4 from dual;
select 1 from emp;
查询员工的年薪
select sal*12 from emp;
排序分组
————老子亲笔
-- order by 升序降序
order by asc|desc: asc表示升序,desc表示降序
where 条件 order by 排序列的列名 asc|desc;
order by :-- 升序降序可以连着用
select * from emp order by deptno asc,sal asc;-- 升序降序连着用
-- 聚合函数 最大值。。。
count(列名|*|常数):它求记录数(数据条数)
max(列名):取最大值
min(列名):取最小值
avg(列名):取平均值
sum(列名):求和
-- 分组 group by
where 条件 group by 分组列 或者跟 order by 排序列 asc|desc
order by 排序列 asc|desc
group by:分组的关键字,后面跟分组列名,可以是一个分组列,也可以是多个列
-- having 分组后缀条件
where 条件 group by 分组列 having 条件 order by 排序列
having:它是对分组后的数据进行筛选,条件表达式中可以使用聚合函数
where和having的异同
where:条件,where后面跟的条件比having后的条件先执行,条件中不允许使用聚合函数。
having:条件中可以使用聚合函数,一般having和group by联用。
老子的集合,联合查询语法笔记
————劳资亲笔
-- 集合汇总
union all(并集)-- 所有的元素直接并在一起,不删除重复元素
union (并集除重)-- 也是所有的元素集合在一起,但是把两个集合里面重复的只留下一种,其余的删除。
{select * from emp where deptno = 30 union all select * from emp where deptno = 20-- 集合使用示例
intersect(交集)-- 交集:取两个集合重叠部分的元素
Minus(差集)-- 表示差集,第一个集合的所有元素减去两个集合重叠部分的元素
这是where形式&#x