博客
关于我
sql基本查询
阅读量:750 次
发布时间:2019-03-23

本文共 3001 字,大约阅读时间需要 10 分钟。

基于ORACLE数据库HR用户,以下是一系列关于SQL查询的操作和示例,逐步介绍各项功能及其应用场景。

查看表结构

可以使用DESC语句查看表的字段信息。例如,查看表的列名和数据类型:

DESC departments;

查看指定列

使用SELECT语句可以指定列来获取所需数据。例如,查看部门表的部门ID和部门名称:

SELECT department_id, department_name FROM departments;

应用算术运算

可以在SELECT语句中运用算术表达式来对数据进行计算。例如,为每个员工计算加薪后的工资:

SELECT employee_id, first_name, salary, salary + 100, salary * 1.10 FROM employees;

定义列别名

使用AS关键字可以为结果定义新的列别名。例如,为姓名字段定义多个别名:

SELECT last_name, last_name AS xing, "last name" AS shixing FROM employees;

连接列

使用连字符||可以将两个字段连接成一个字符串。例如,合并员工的名字和姓氏:

SELECT first_name || last_name AS name FROM employees;

如果需要在连接中间添加空格,可以使用' '

SELECT first_name || ' ' || last_name AS name FROM employees;

去重处理

使用DISTINCT关键字可以去除重复值。例如,获取部门ID的去重列表:

SELECT DISTINCT department_id FROM employees;

空值处理

使用IS NULL可以筛选出空值进行操作。例如,查询薪酬为空的员工信息:

SELECT employee_id, last_name, salary, commission_pct FROM employees WHERE salary IS NULL;

查询运算符

了解常用的运算符可以提升查询效率。例如,使用IN来查找多个值,BETWEEN用于范围查询。例如,查找工资在特定范围内的数据:

SELECT first_name, last_name, salary FROM employees WHERE salary BETWEEN 13000 AND 20000;

LIKE匹配

利用LIKE关键字可以实现字符串匹配。例如,查找员工姓名以"S"开头:

SELECT first_name, last_name FROM employees WHERE first_name LIKE '%S%';

也可以查找特定模式:

SELECT first_name, last_name FROM employees WHERE first_name LIKE '__S%';

条件查询

结合WHERE子句,可以限制查询结果。例如,查找部 belts Laurencia 其工资达到15000以上:

SELECT last_name, job_id, salary FROM employees WHERE last_name = 'Laurencia' AND salary >= 15000;

逻辑运算符

使用ANDOR结合逻辑条件进行复合查询。例如,命中同时满足部门ID等于90且工资大于等于10000的记录:

SELECT email, last_name, salary, department_id FROM employees WHERE salary >= 10000 AND department_id = 90;

日期查询

使用合适的日期格式进行查询,例如查找近期入职的员工:

SELECT * FROM employees WHERE hire_date = '24-12-05';

SQL排序

使用ORDER BY关键字可以对结果进行排序。例如,按入职日期升序排列:

SELECT last_name, first_name, hire_date FROM employees ORDER BY hire_date;

默认排序规则是升序,自定义排序方式可以通过ascdesc指定:

SELECT last_name, first_name, hire_date FROM employees ORDER BY hire_date ASC;

对于涉及空值的排序,可以使用NULLS FIRST确保空值出现在首位:

SELECT last_name, first_name, commission_pct FROM employees ORDER BY commission_pct NULLS FIRST;

也可以通过为字段 alias指定规则进行排序:

SELECT last_name, first_name AS m, commission_pct FROM employees ORDER BY m;

分页查询

使用FETCH关键字可以限制返回的记录数量,例如获取前5条记录:

SELECT employee_id, last_name, first_name FROM employees ORDER BY employee_id FETCH FIRST 5 ROWS ONLY;

如果需要获取随机的百分比数据,可以使用FETCH FIRST n% ROWS ONLY

SELECT employee_id, last_name, first_name FROM employees ORDER BY employee_id FETCH FIRST 10% ROWS ONLY;

列多个排序字段

使用逗号分隔列表可以对多个字段进行排序。例如,首先按部门ID升序排列,之后按姓名降序排列:

SELECT last_name, first_name, salary, department_id FROM employees ORDER BY department_id asc, first_name desc;

动态排序条件

可以使用算术表达式为排序依据动态指定值。例如,按照加上100后的工资排序:

SELECT last_name, first_name, salary, salary + 100 FROM employees ORDER BY salary + 100;

根据列号排序

可以直接使用列号进行排序,默认是按升序排列。例如,按第三列(department_id)排序:

SELECT last_name, first_name, salary, department_id FROM employees ORDER BY 3;

也可以指定具体的排序顺序,如部门ID升序和员工姓名降序:

SELECT last_name, first_name, salary, department_id FROM employees ORDER BY 3 ASC, 1 DESC;

通过以上技术,ORACLE的SQL功能可以满足多种高级需求,助力数据的精准管理和分析。

转载地址:http://kpbzk.baihongyu.com/

你可能感兴趣的文章
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>