Oracle编写简单的查询语句,以及限制数据和对数据的排序

本文介绍了如何使用Oracle SQL进行数据查询,包括基本的SELECT语句,使用DISTINCT消除重复行,结合运算符进行条件筛选,以及ORDER BY进行数据排序。示例查询涉及员工的职位、入职日期、部门编号、工资等多个字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结构化查询语言,简称SQL

可分为5类:

  • DQL   数据查询语言 :主要包括SELECT,用于从表中检索数据。
  • DML   数据操作语言 :主要包括INSERT,UPDATE和DELETE,用于添加,修改和删除表中的行数据。
  • TPL    事务处理语言 :主要包括COMMIT和ROLLBACK,用于提交和回滚。
  • DCL   数据控制语言 :主要包括GRANT和REVOKE,用于进行授权和收回权限。
  • DDL   数据定义语言 :主要包括CREATE、DROP、ALTER,用于定义、销毁、修改数据库对象。



select相关练习

SELECT * FROM DEPT;
SELECT * FROM EMP;
SELECT ENAME ,SAL ,sal+300 起薪 FROM EMP;

消除重复行,使用distinct关键字
SELECT DISTINCT DEPTNO FROM emp;

SELECT Ename||'的第一年总收入为'||(sal*2.2*6) , DEPTNO FROM EMP;

SELECT DISTINCT job "岗位" from emp;

SQL*plus desc EMP;

1.查询职位为SALESMAN的员工编号、职位、入职日期
SELECT EMPNO , job, hiredate FROM EMP WHERE job = 'SALESMAN';

2.查询1985年12月31日之前入职的员工姓名及入职日期
SELECT ENAME , HIREDATE FROM EMP WHERE HIREDATE < '31-12月-85';

3.查询部门编号不在10部门的员工姓名、部门编号。
select ENAME , DEPTNO FROM EMP WHERE DEPTNO <> 10;

1.查询入职日期在82年至85年的员工姓名,入职日期。
SELECT ENAME , HIREDATE from EMP WHERE HIREDATE BETWEEN '1-1月-1982' AND '31-12月-1985';

2.查询月薪在3000到5000的员工姓名,月薪。
SELECT ENAME ,sal from EMP WHERE SAL BETWEEN 3000 AND 5000;

3.查询部门编号为10或者20的员工姓名,部门编号。
SELECT ENAME, DEPTNO FROM EMP where DEPTNO IN (10,20);

4.查询经理编号为7902 7566 7788 7902, 7566, 7788的员工姓名,经理编号
SELECT ENAME ,MGR FROM EMP WHERE MGR in (7902,7566,7788);

1.查询员工姓名以A开头的员工姓名。
SELECT Ename FROM EMP WHERE ENAME LIKE 'A_%';

2.查询员工姓名倒数第2个字符为T的员工姓名。
SELECT Ename FROM EMP WHERE ENAME LIKE '%_T_';

3.查询奖金为空的员工姓名,奖金
SELECT ENAME , comm FROM EMP WHERE COMM IS NULL;

1.查询部门在20或30的员工姓名,部门编号,并按照工资升序排序。
SELECT Ename ,deptno ,sal FROM EMP WHERE DEPTNO IN (20,30) ORDER BY SAL ASC;

2.查询工资在2000-3000之间,部门不在10号的
员工姓名,部门编号,工资, 并按照部门升序,工资降序排序。
SELECT ENAME ,DEPTNO,sal FROM EMP
WHERE SAL BETWEEN 2000 AND 3000
AND DEPTNO <> 10
ORDER BY 2 ASC, 3 DESC;

3.查询入职日期在82年至83年之间,职位以SALES或者MAN开头的
员工姓名,入职日期,职位,并按照入职日期降序排序。
SELECT ENAME ,hiredate,job
FROM EMP
WHERE HIREDATE BETWEEN '1-1月-82' AND '31-12月-83'
AND job LIKE 'SALES_%' or job LIKE 'MAN_%'
ORDER BY 2 DESC;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值