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/*对结果筛选*/
相关文章
|
3天前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
25 9
|
23天前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
92 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
1月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
38 8
|
1月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
60 4
|
1月前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
1月前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
156 10
|
1月前
|
SQL 关系型数据库 MySQL
|
2月前
|
SQL 数据库 开发者
功能发布-自定义SQL查询
本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
|
1月前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
35 0
|
2月前
|
SQL 数据可视化 BI
SQL语句及查询结果解析:技巧与方法
在数据库管理和数据分析中,SQL语句扮演着至关重要的角色

推荐镜像

更多