当前位置: 首页 > news >正文

SQL基础入门—— 简单查询与条件筛选

在SQL中,查询是从数据库中获取数据的核心操作,而条件筛选是查询中不可或缺的一部分。通过使用条件筛选,我们可以精准地从大量数据中提取我们需要的信息。本节将详细讲解如何使用SQL进行简单查询与条件筛选,包含常见的条件运算符和函数。

1. 使用WHERE进行条件筛选

WHERE子句是SQL查询中用于指定条件的关键部分。它用于限制查询结果集,仅返回满足特定条件的行。条件可以基于列的值、计算结果或多种比较运算符。

1.1 基本条件筛选
SELECT * FROM employees
WHERE salary > 50000;

这个查询将返回所有薪水大于50,000的员工记录。

1.2 多条件筛选(AND,OR)
  • AND:多个条件同时满足时才会返回结果。
  • OR:至少满足一个条件即可返回结果。
SELECT * FROM employees
WHERE salary > 50000 AND department = 'Engineering';

这个查询返回薪水大于50,000并且属于"Engineering"部门的员工。

SELECT * FROM employees
WHERE department = 'Engineering' OR department = 'Sales';

这个查询返回所有属于"Engineering"或"Sales"部门的员工。

1.3 排除特定值(NOT)

使用NOT关键字排除某些值。

SELECT * FROM employees
WHERE NOT department = 'HR';

这个查询返回所有部门不是"HR"的员工。

1.4 条件筛选中使用NULL值

在SQL中,NULL表示缺失或未知的值。要筛选包含NULL或不包含NULL的记录,可以使用IS NULLIS NOT NULL

SELECT * FROM employees
WHERE salary IS NULL;

这个查询返回薪水为空的员工记录。

SELECT * FROM employees
WHERE salary IS NOT NULL;

这个查询返回所有薪水不为空的员工记录。

2. 使用LIKE, IN, BETWEEN等操作符

SQL提供了多个操作符来进行更加复杂和灵活的条件筛选。

2.1 LIKE 操作符

LIKE用于进行模糊匹配,支持通配符。常见的通配符有:

  • %:匹配零个或多个字符。
  • _:匹配单个字符。
SELECT * FROM employees
WHERE name LIKE 'John%';

这个查询返回所有名字以"John"开头的员工。

SELECT * FROM employees
WHERE name LIKE '_o%';

这个查询返回所有名字以"son"结尾的员工。

SELECT * FROM employees
WHERE name LIKE '_o%';

这个查询返回所有名字的第二个字符是"o"的员工。

2.2 IN 操作符

IN用于检查一个列的值是否存在于指定的多个值中,它可以简化多个OR条件的查询。

SELECT * FROM employees
WHERE department IN ('Engineering', 'Sales', 'Marketing');

这个查询返回所有属于"Engineering"、"Sales"或"Marketing"部门的员工。

2.3 BETWEEN 操作符

BETWEEN用于选择范围内的值(包括边界值),适用于数字、日期和时间类型。

SELECT * FROM employees
WHERE salary BETWEEN 40000 AND 60000;

这个查询返回薪水在40,000到60,000之间的员工。

SELECT * FROM employees
WHERE hire_date BETWEEN '2023-01-01' AND '2023-12-31';

这个查询返回在2023年1月1日到12月31日之间入职的员工。

2.4 NOT 操作符

NOT可以与其他操作符配合使用,排除符合条件的记录。

SELECT * FROM employees
WHERE department NOT IN ('HR', 'Finance');

这个查询返回所有不在"HR"和"Finance"部门的员工。

SELECT * FROM employees
WHERE salary NOT BETWEEN 50000 AND 70000;

这个查询返回薪水不在50,000到70,000之间的员工。

3. 基本的字符串操作与日期函数

SQL还提供了强大的字符串和日期操作功能,帮助开发者高效地处理和转换数据。

3.1 字符串操作
  • CONCAT:将多个字符串连接在一起。
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;

这个查询返回员工的全名。

  • SUBSTRING:提取字符串的子串。
SELECT SUBSTRING(first_name, 1, 3) FROM employees;

这个查询返回员工名字的前3个字符。

  • TRIM:去掉字符串两端的空格。
SELECT TRIM(name) FROM employees;

这个查询返回去除前后空格的员工名字。

  • LENGTH:返回字符串的长度。
SELECT LENGTH(first_name) FROM employees;

这个查询返回员工名字的字符数。

  • REPLACE:替换字符串中的部分内容。
SELECT REPLACE(email, 'example.com', 'newdomain.com') FROM employees;

这个查询将员工邮箱中的"example.com"替换为"newdomain.com"。

3.2 日期函数
  • CURDATE:返回当前日期。
SELECT CURDATE();

这个查询返回当前日期。

  • NOW:返回当前的日期和时间。
SELECT NOW();

这个查询返回当前的日期和时间。

  • DATE_FORMAT:格式化日期。
SELECT DATE_FORMAT(hire_date, '%Y-%m-%d') FROM employees;

这个查询将员工的入职日期格式化为"年-月-日"的形式。

  • DATEDIFF:计算两个日期之间的差值,返回天数。
SELECT DATEDIFF(NOW(), hire_date) AS days_since_hired FROM employees;

SELECT DATEDIFF(NOW(), hire_date) AS days_since_hired FROM employees;

这个查询返回员工入职至今的天数。

  • DATE_ADDDATE_SUB:在日期上增加或减少指定的时间。
SELECT DATE_ADD(hire_date, INTERVAL 1 YEAR) FROM employees;

这个查询返回员工入职日期之后1年的日期。

SELECT DATE_SUB(hire_date, INTERVAL 6 MONTH) FROM employees;

这个查询返回员工入职日期之前6个月的日期。

总结

SQL提供了多种强大的工具和操作符,用于执行简单查询和进行条件筛选。通过WHERE子句,开发者可以精确地控制查询的结果集,利用LIKEINBETWEEN等操作符进行灵活的筛选,提升查询的效率和可读性。同时,SQL还提供了丰富的字符串和日期函数,使得开发者可以高效地操作和转换数据。掌握这些基本的查询技巧是开发者在实际工作中快速获取数据的基础。

 


http://www.mrgr.cn/news/78291.html

相关文章:

  • Flink 热存储维表 使用 Guava Cache 减轻访问压力
  • # MySql字符集报错
  • Rust中Tracing 应用指南
  • STL之算法概览
  • 如何使用OCR技术批量识别图片中的文字并重命名文件,OCR 技术批量识别图片中的文字可能出现的错误
  • SpringBoot 项目中使用 spring-boot-starter-amqp 依赖实现 RabbitMQ
  • ubuntu 安装docker
  • Linux下的火墙管理及优化
  • C语言蓝桥杯组题目
  • WonderJourney 学习笔记
  • Qt获取文件夹下的文件个数(过滤和不过滤的区别)
  • 第 4 章 Java 并发包中原子操作类原理剖析
  • 【Jenkins】docker 部署 Jenkins 踩坑笔记
  • 类和对象--中--初始化列表(重要)、隐式类型转化(理解)、最后两个默认成员函数
  • Android 布局菜单或按钮图标或Menu/Item设置可见和不可见
  • 《Vue 初印象:快速上手 Vue 基础语法》
  • PostgreSQL详细安装教程
  • 基于SpringBoot共享汽车管理系统【附源码】
  • Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”
  • linuxCNC(三)ini配置文件说明
  • 利用编程思维做题之最小堆选出最大的前10个整数
  • 网络基础二
  • 数据结构代码合集
  • 【cocos creator】下拉框
  • 16_嵌入式开发编译不同Linux平台的依赖库
  • 数据结构_图的应用