Oracle 单表查询SQL

简介: 本文目录1. 简介2. select2.1 直接查询类2.2 查询结果处理2.3 非常特殊的NULL2.4 相当特殊的group by

1. 简介

SQL其实就是用户和关系数据库交互的标准语言,是老美制定的,大体上分为三大类:


1,DML数据操纵语言,对数据库中的数据进行增删改查等操作

2,DDL数据定义语言,主要是创建和修改数据库对象,比如表的创建、修改、删除

3,DCL数据控制语言,比如对用户进行授权


这三大类大体知道有这么回事就行了,本篇我们介绍单表查询中常用的SQL语句。


2. select

2.1 直接查询类

/*星号表示全部列*/
select * from emp;
/*可以选择指定的列empno和ename*/
select empno,ename from emp;
/*两根竖线表示连接*/
select empno||','||ename from emp;
/*as表示列的别名*/
select ename as emp_name from emp;
/*用e这个别名代表emp,注意Oracle中表的别名不实用as*/
select e.ename from emp e;

2.2 查询结果处理

/*查询结果升序排序(默认升序)*/
select * from emp order by ename;
/*查询结果降序排序*/
select * from emp order by ename desc;
/*查询结果转化,例如存储时1男0女*/
select 
case sex
when '1' then '男的'
when '0' then '女的'
end
from PEO t
/*查询前10行*/
select * from emp where rownum<=10;
/*排序后查询前10行*/
select * from (select * from emp order by ename)  where rownum<=10
/*结果筛选*/
select * from emp where ename='JAMES';/*名字是JAMES的*/
select * from emp where ename<>'JAMES';/*名字不是JAMES的*/
/*and同时满足 or满足一个以上,not对内容取反*/
select * from emp where ename='JAMES' and empno=7900;
select * from emp where ename='JAMES' or empno=7902;
select * from emp where not(ename='JAMES')
/*in、not in,集合判断*/
select * from emp where ename in ('JAMES','ALLEN','MILLER');
select * from emp where ename not in ('JAMES','ALLEN','MILLER');
/*like模糊匹配,%表示任意字符,_表示一个字符*
select * from emp where ename like '%A%'
select * from emp where ename like 'A____'
/*选择不重复的内容*/
select distinct(deptno) from emp
/*对选择结果进行计算*/
select sum(sal) as sumsal from emp;
select avg(sal) as sumsal from emp;
select count(comm) from emp;/*注意NULL列是不纳入计数的*/

2.3 非常特殊的NULL

需要注意的是,当用了group by语句后,select的列必须是group by后面的列,或者聚合函数(count/sum/avg/…)计算的列。

/*正确*/
select count(deptno),deptno from emp group by deptno;
/*错误,因为ename不是group by后面的列*/
select count(deptno),deptno,ename from emp group by deptno;
/*正确,因为sum是聚合函数*/
select sum(sal),deptno from emp group by deptno;
/*having其实很简单,就是限制性group by 及之前的语句,然后对结果进行筛选*/
select sum(sal),deptno from emp group by deptno /*执行后查询出结果*/HAVING sum(sal)>10000/*对结果筛选*/
相关文章
|
6月前
|
SQL 监控 关系型数据库
一键开启百倍加速!RDS DuckDB 黑科技让SQL查询速度最高提升200倍
RDS MySQL DuckDB分析实例结合事务处理与实时分析能力,显著提升SQL查询性能,最高可达200倍,兼容MySQL语法,无需额外学习成本。
|
6月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
6月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
7月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
442 18
|
6月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
429 8
|
5月前
|
SQL 关系型数据库 MySQL
(SQL)SQL语言中的查询语句整理
查询语句在sql中占了挺大一部分篇幅,因为在数据库中使用查询语句的次数远多于更新与删除命令。而查询语句比起其他语句要更加的复杂,可因为sql是数据库不可或缺的一部分,所以即使不懂,也必须得弄懂,以上。
334 0
|
7月前
|
SQL 人工智能 数据库
【三桥君】如何正确使用SQL查询语句:避免常见错误?
三桥君解析了SQL查询中的常见错误和正确用法。AI产品专家三桥君通过三个典型案例:1)属性重复比较错误,应使用IN而非AND;2)WHERE子句中非法使用聚合函数的错误,应改用HAVING;3)正确的分组查询示例。三桥君还介绍了学生、课程和选课三个关系模式,并分析了SQL查询中的属性比较、聚合函数使用和分组查询等关键概念。最后通过实战练习帮助读者巩固知识,强调掌握这些技巧对提升数据库查询效率的重要性。
237 0
|
8月前
|
SQL
SQL中如何删除指定查询出来的数据
SQL中如何删除指定查询出来的数据
|
9月前
|
SQL 存储 弹性计算
OSS Select 加速查询:10GB CSV 文件秒级过滤的 SQL 语法优化技巧
OSS Select 可直接在对象存储上执行 SQL 过滤,跳过文件下载,仅返回所需数据,性能比传统 ECS 方案提升 10~100 倍。通过减少返回列、使用等值查询、避免复杂函数、分区剪枝及压缩优化等技巧,可大幅降低扫描与传输量,显著提升查询效率并降低成本。
269 0
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。