博客
关于我
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/

你可能感兴趣的文章
ASP.NET MVC Action Filters
查看>>
Powershell中禁止执行脚本解决办法
查看>>
OO_Unit2 多线程电梯总结
查看>>
git clone 出现fatal: unable to access ‘https://github 错误解决方法
查看>>
04_Mysql配置文件(重要参数)
查看>>
python 加密算法及其相关模块的学习(hashlib,RSA,random,string,math)
查看>>
JavaSE总结
查看>>
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
查看>>
Python IO编程
查看>>
CSS入门总结
查看>>
使用 TortoiseGit 时,报 Access denied 错误
查看>>
基于 HTML5 WebGL 的污水处理厂泵站自控系统
查看>>
django-表单之模型表单渲染(六)
查看>>
c++之程序流程控制
查看>>
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
查看>>
有道云笔记 同步到我的博客园
查看>>
李笑来必读书籍整理
查看>>
Hadoop(十六)之使用Combiner优化MapReduce
查看>>
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
查看>>
CoreCLR源码探索(八) JIT的工作原理(详解篇)
查看>>