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

你可能感兴趣的文章
mysql order by多个字段排序
查看>>
MySQL Order By实现原理分析和Filesort优化
查看>>
mysql problems
查看>>
mysql replace first,MySQL中处理各种重复的一些方法
查看>>
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
查看>>
mysql replace用法
查看>>
Mysql Row_Format 参数讲解
查看>>
mysql select as 多个_MySQL 中 根据关键字查询多个字段
查看>>
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql skip-grant-tables_MySQL root用户忘记密码怎么办?修改密码方法:skip-grant-tables
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
MYSQL sql语句针对数据记录时间范围查询的效率对比
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql sysbench测试安装及命令
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
MySQL Troubleshoting:Waiting on query cache mutex
查看>>