三、Oracle的简单查询
Oracle的表查询
前提:搞清楚scott的几张表的含义
EMP:雇员表
字段 |
类型 |
注释 |
EMPNO |
员工编号 |
|
ENAME |
员工姓名 |
|
JOB |
员工职位 |
|
MGR |
上级编号 |
|
HIREDATE |
入职日期 |
|
SAL |
薪水 |
|
COMM |
奖金 |
|
DEPTNO |
部门编号 |
DEMP:部门表
字段 |
类型 |
注释 |
DEPTNO |
NUMBER(2) |
部门编号 |
DNAME |
VARCHAR2(14) |
部门名字 |
LOC |
VARCHAR2(13) |
所处位置 |
SALGRADE:工资级别表
字段 |
类型 |
注释 |
DEPTNO |
NUMBER(2) |
部门编号 |
DNAME |
VARCHAR2(14) |
部门名字 |
LOC |
VARCHAR2(13) |
所处位置 |
- 查看表结构
desc dept;
- 查询所有列
select * from dept;
- 查询指定列
select ename,sal,job,depno from emp;
- 取消重复行
select distinct deptno from emp;
举例:查询smith的薪水,工作和所在部门。
select sal,job,deptno from emp where ename='smith';
举例: 创建一张表: create table users( userid varchar2(20), userName varchar2(30), userPass varchar2(20) ); 插入数据: insert into users values('a0001', '王二小哈哈哈哦', 'fanyong@gmail.com'); 赋值数据:把自己的数据加入到自己的表中: insert into users(userid, userName, userPass) select * from users; 每次插入后数据量都是上一次的一倍, 查询记录行数: select count(*) from users; |
- 使用算数表达式,使用列的别名
显示每个雇员的年工资
select ename "姓名", sal*12+comm*12 "年收入" from emp;
但是计算结果有问题,所有工资comm字段为null的记录,年收入全部为null
- 如何计算null值?
使用nvl函数来判断是不是空值
select ename "雇员", sal*12 + nvl(comm, 0)*12 "年收入" from emp;
- 使用where子句
如何显示工资高于3000的员工:
select ename,sal from emp where sal>3000;
如何查找1982年1月2号以后入职的员工
select ename, hiredate from emp where hiredate>'2-1月-1982';
如何显示工资在2000到2500之间的员工
select ename, sal from emp where sal>2000 and sal<2500;
- 在where中使用in
如何显示员工编号是101或者220或者340的员工
select * from emp empno in (101,220,340);
- 使用like操作符
% : 表示任意0到多个字符
_ : 表示任意1个字符
如何显示首字母为S的员工姓名和工资
select ename, sal from emp where ename like 'S%';
如何显示第三个字符为大写O的所有员工的姓名和工资
select ename, sal from emp where ename like '__O%';
- 使用is null , is not null 操作符
如何显示没有上级雇员的信息
select ename from emp where mgr is null;
- 使用逻辑操作符号
查询工资高于500或者是岗位为Manager的雇员,同时还要满足他们姓名的首字母为大写字母J
select * from emp where (sal>500 or job='Manager') and ename like 'J%';
- 使用order by子句排序
如何按照工资从低到高的顺序显示雇员信息
select * from emp order by sal asc;
如何按照部门号升序而雇员的工资降序排列
select * from emp order by deptno asc, sal desc;
- 使用列的别名排序
select * from emp where (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪";
- 分页查询
先学子查询!
三、Oracle的简单查询相关推荐
- oracle中简单查询语句的格式及执行顺序分析
一条简单的查询sql格式如下: SELECT ... FROM .... [WHERE ...] --过滤单行 [GROUP BY ... [HAVING ...]]--GROUP BY对前面wh ...
- Oracle学习之路——简单查询
本人大三单身狗,虽说还有一年毕业,可是到了大四再幡然醒悟,奋发图强,着实有点晚.为了尽可能将自己从"毕业即失业"的悲惨现状中拯救出来,开始学习吧!!!本博客是为了记录鄙人学习之路中 ...
- 查询计算机系学生的详细记录,实验三_数据库的简单查询和连接_.doc
实验三_数据库的简单查询和连接_ 实验三 数据库的简单查询和连接查询 实验目的及要求 掌握SELECT语句的基本语法: 熟练掌握表的数据简单查询.数据排序: 熟练掌握表的连接查询的表示: 掌握等值连接 ...
- SQL简单查询——学生课程表
文章目录 一.学习目标 二.数表介绍 三.SQL简单查询 四.SQL复杂查询 一.学习目标 1.掌握 S E L E C T SELECT SELECT语句的语法格式,各句子的使用: 2.掌握别名的概 ...
- Oracle从零开始2——简单查询
2.1 所需要的表 雇员表(EMP) No 字段 类型 描述 1 EMPNO NUMBER(4) 表示雇员编号,是唯一编号 2 ENAME VARCHAR2(10) 表示雇员姓名 3 JOB VARC ...
- Oracle学习笔记(三)。连接查询。等值连接,非等值连接,自连接,LEFT OUTER JOIN,RIGHT JOIN,FULL JOIN,自然连接,内连接 INNERJOIN
文章目录 1. 什么是多表查询 2. 多表链接方式 3. 多表连接语法 3.1 语法结构 3.2 定义连接 3.3 原则 4. 等值连接-内连接 4.1 什么是等值连接 4.2 抉择矩阵 4.3 使用 ...
- oracle.简单查询、排序、限定查询、单行函数
一.简单查询: 1.查询数据表的所有列: SELECT * FROM 表名; SELECT 列名,列名.... FROM 表名; 2.起别名: SELECT 列名 [AS 别名],列名 别名.... ...
- oracle计算期间工作日的简单查询办法
oracle计算期间工作日的简单查询办法 SELECT sum(天数) 天数 FROM ( SELECT rownum 行,to_char(to_date('2019-12-31','yyyy-mm- ...
- Oracle数据库之数据库的简单查询
注:所有的操作都建立在Oracle的Scott用户自带的表中进行 一.查询表的结构与显示表 查看数据表 select * from tab; 查看表的结构 desc 表名称; 二.简单查询(单表查询) ...
最新文章
- ppt流程图字体太小_关于答辩PPT的制作技巧
- NeurIPS 2020 | 利用像素级别循环一致性解决领域自适应语义分割问题
- h5页面不可 移动_七大h5创建工具
- Servlet添加商品
- 用matalb、python画聚类结果图
- excel自动保存_萌新必看!python处理excel实例
- Java 性能优化系列之1[设计与程序优化]
- ubuntu部署django详细教程
- Apache POI 安全漏洞
- Ubuntu22.04安装网易云音乐实操笔记
- 数据库设计员工管理系统
- 鸟哥linux私房菜pdf及配套视频分享
- 第三方登陆之微博登录
- LUP分解方法,矩阵求逆
- 一分钟快速把一篇论文后面的参考文献全部下载下来
- 北京地铁,4号线换乘13号线,用时最短换乘线路
- 搭建风控系统道路上踩过的坑合集
- 解决Windows与Ubuntu双系统时间同步问题
- ACM-图论完全总结(知识点+模板)
- 提前揭秘CJ八大看点