关于Oracle数据库常见的SQL语句及工作经验

Ava ·
更新时间:2024-09-21
· 729 次阅读

oracle常见查询语句总结select sum(字段)
from 表名 where 条件 group by 字段
例子1.

select [distinct] *| [as] [列别名],列名称 [as] [列别名]from 表名称 [表别名] [where 条件(s)] [order by 排序的字段 | 列索引号 asc|desc,排序的字段2 asc|desc ...]...;

执行顺序:
1、先执行from子句,确定要检索数据的来源
2、执行where子句,使用限定符对数据进行过滤
3、执行select子句,确定要检索出的数据列
4、执行order by子句排序
distinct:去除重复的列,当查询两条记录的所有的列都相同时才会去除重复代码示例:

--查询emp表中的数据 SELECT * FROM emp; --查询出公司员工编号,姓名,工作 select empno,ename,job from emp; --起别名 select job as jobs from emp; --去除重复的行记录 select distinct job as jobs from emp; --查询出年工资,每天的工资 select empno,ename,sal*12 Annual_salary,sal/30 day_salaryfrom emp; 2、select子句后面编写常量

1、字符串常量:使用"’"声明,如:“se”
2、数字常量:直接输出数字,如:4532
3、日期:
4、单引号:(’)

--增加货币单位的常量 select empno as 雇员编号,ename as 雇员姓名,(sal+200)*12+5000 as 年薪,'¥' 货币 from emp; --连接符||的使用 select '编号:' || empno||' 的雇员姓名是:'||ename 雇员信息 from emp; 3、限定查询

限定查询的实例

--工资高于1200的所有与员工的信息 select * from emp where sal >1200; - --查询出所有业务员(CLEARK)雇员的信息 select * from emp where job='CLERK' --查询出10部门中的激励或者20部门中业务员的信息 select * from emp where (deptno=20 and job='CLEARK') OR (deptno=10 and job='MANAGER') --查询出在1981年雇佣的全部雇员信息 select *from empwhere hiredate between '01-1月-1981' and '31-12月-1981' --查询出佣金不为空的信息 select *from emp where comm is not null;select * from empwhere not comm is null; --in的指定范围的查询 select * from empwhere empno in(7369,7788,7566); --现在查询除了7369,7788,7566之外的雇员的信息 select * from empwhere empno not in(7369,7788,7566); 4、模糊查询like,not like

百分号(%):可匹配任意类型和长度(可以匹配0位,1位或多位长度)的字符
下划线(_):匹配单个任意字符,通常来限制表达式的字符长度

实例:--查询出雇员姓名以S开头的所有雇员的信息 select * from empwhere ename like 'S%' --查询出第二个字母是M的全部雇员信息 select * from empwhere ename like '_M%' -- 查询出姓名中任意位置包含字母F的雇员信息 select * from empwhere ename like '%F%' --找出10部门中所有的经理(MANAGER),部门20中所有的业务员(CLEARK),既不是经理又不是业务员但薪金大于2000元的所有员工的详细资料并且要求这些雇员的西宁中包含字母S或字母K select * from empwhere ((deptno=10 and job='MANAGER')or (deptno=20 and job='CLERK') or (job not in ('MANAGER','CLEARK') and sal >2000))and(ename like '%S%' or ename like '%K%') 5、对结果进行排序 --排序的查询语句 select empno,ename,sal,job from emporder by 3 desc --order by sal desc - -按照工资由高到低排序,工资相等的话按照雇佣日期由早到晚进行排序 select * from emporder by sal desc,hiredate asc; 6.Alias(列的别名)

:紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号“”,以便在别名中包含空格或特殊的字符并区分大小写。||(关键字,连接符):把列与列,列与字符连接在一起,用 ‘||’表示,可以用来‘合成’列。character(字符串):字符串可以是 SELECT 列表中的一个字符,数字,日期,日期和字符只能在单引号中出现,每当返回一行时,字符串被输出一次。SELECT UserID||'Character'||TableID AS "Alias" FROM TABLE

lz_N_one 原创文章 16获赞 5访问量 1598 关注 私信 展开阅读全文
作者:lz_N_one



sql语句 工作经验 SQL oracle数据库 Oracle

需要 登录 后方可回复, 如果你还没有账号请 注册新账号