SQL的高级查询练习知识点(day24)

2024-09-07 13:52

本文主要是介绍SQL的高级查询练习知识点(day24),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1 学习目标

2 基础查询

2.1 语法

2.2 例子

3 条件查询

3.1 含义

3.2 语法

3.3 条件表达式

3.3.1 条件运算符

3.3.2 例子

3.4 逻辑表达式

3.4.1 逻辑运算符

3.4.2 例子

3.5 模糊查询

3.5.1 概述

3.5.2 例子

4 DISTINCT关键字

4.1 含义

4.2 例子

5 总结


一键三连哦!各位袁友......

1 学习目标

  1. 重点掌握基础查询语法
  2. 重点掌握条件查询语法
  3. 重点掌握distinct关键字的使用

2 基础查询

2.1 语法

SELECT 字段1,字段2,... [FROM 表名];
  • 备注

    类似于Java中 :System.out.println(要打印的东西);

    特点:

    ① 通过select查询完的结果 ,是一个虚拟的表格,不是真实存在

    ② 要查询的东西可以是常量值、可以是表达式、可以是字段、可以是函数

2.2 例子

①切入到hr库

USE hr;

②查询employees表中的所有字段内容,省略字段

SELECT * FROM employees;

③查询employees表中的所有字段内容,不省略字段

SELECT employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id 
FROM employees;

④查询employees表中的部分字段,但是字段显示顺序为first_name、last_name、email

SELECT first_name,last_name,email 
FROM employees;

⑤查询employees表中的部分字段,但是字段显示顺序为email、last_name、first_name

SELECT email,last_name,first_name 
FROM employees;

3 条件查询

3.1 含义

  • 条件查询:根据条件过滤原始表的数据,查询到想要的数据

3.2 语法

SELECT 要查询的字段|表达式|常量值|函数 
FROM 表 
WHERE 条件;

3.3 条件表达式

3.3.1 条件运算符

条件运算符含义
>大于
<小于
>=大于等于
<=小于等于
=等于
!=不等于
<>不等于
BETWEEN 小 AND 大在指定范围之间
IN在一组指定的值中取值
IS NULL字段为NULL

3.3.2 例子

①查看employees表结构

DESC employees;

②查询员工id是110的员工部分信息

SELECT employee_id, first_name, salary
FROM employees
WHERE employee_id = 110;

③查询50部门的员工

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id = 50;

④查询不在50部门的员工(排除50部门)

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id <> 50;

或者

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id != 50;

⑤查询工资小于 3000的员工

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE salary < 3000;

⑥查询工资是 [8000, 9000]范围的员工

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE salary BETWEEN 8000 AND 9000;

⑦查询主管id是100、120、122的员工

SELECT employee_id, first_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 120, 122);

⑧没有主管的人(manager_id 是null值)

SELECT employee_id, first_name, salary, manager_id
FROM employees
WHERE manager_id IS NULL;

3.4 逻辑表达式

3.4.1 逻辑运算符

逻辑运算符含义
&&两个条件如果同时成立,结果为true,否则为false
AND两个条件如果同时成立,结果为true,否则为false
||两个条件只要有一个成立,结果为true,否则为false
OR两个条件只要有一个成立,结果为true,否则为false
NOT如果条件成立,则not后为false,否则为true

3.4.2 例子

①查询工资是 [8000, 10000]范围的员工

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE salary >= 8000 AND salary <= 10000;

或者

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE salary >= 8000 && salary <= 10000;

②查询薪资等于8000或者薪资等于10000的员工

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE salary = 8000 OR salary = 10000;

或者

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE salary = 8000 || salary = 10000;

③查询工资<3000,或者工资>15000

SELECT employee_id, first_name, salary
FROM employees
WHERE salary < 3000 OR salary > 15000;

或者

SELECT employee_id, first_name, salary
FROM employees
WHERE salary NOT BETWEEN 3000 AND 15000;

④排除部门50,80,100,60

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id NOT IN(50,80,100,60);

⑤有提成的员工,commission_pct不是null

SELECT employee_id, first_name, salary, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;

3.5 模糊查询

3.5.1 概述

  • 使用LIKE关键字可以进行字符串的模糊查询,但是需要使用通配符

  • 通配符

    • _ 单个字符
    • % 多个字符
  • 格式示例

LIKE '%X%' 	表示字符串中包含字符X
LIKE '_X%' 	表示字符串中第二个字符是X
LIKE 'X%'  	表示字符串以X开始
LIKE '%X'  	表示字符串以X结束
LIKE '%X_Y'	表示字符串倒数第三个字符数X并且最后一个字符是Y

3.5.2 例子

①查询first_name中包含'en'的员工信息

SELECT employee_id, first_name, salary
FROM employees
WHERE first_name LIKE '%en%';

②first_name第三个和第四个字符是'en'

SELECT employee_id, first_name, salary
FROM employees
WHERE first_name LIKE '__en%';

③排除电话中包含'44'

SELECT employee_id, first_name, salary, phone_number
FROM employees
WHERE phone_number NOT LIKE '%44%';

4 DISTINCT关键字

4.1 含义

  • 去除重复数据

4.2 例子

①所有的部门id(要求部分id不重复显示),并且不显示null

SELECT DISTINCT department_id
FROM employees
WHERE department_id IS NOT NULL;

②所有部门中,有哪些工作岗位

SELECT DISTINCT department_id,job_id
FROM employees
WHERE department_id IS NOT NULL;

5 总结

①基础查询

使用SELECT语句可以从数据库中检索数据。以下是基本SELECT语句的一般格式:

SELECT column1, column2, ... 
FROM table_name;

此语句将返回表格“table_name”中所有行的“column1”、“column2”等列。

②条件查询

条件查询使用WHERE子句来过滤要返回的行。以下是使用WHERE子句的SELECT语句的一般格式:

SELECT column1, column2, ... 
FROM table_name WHERE condition;

其中,“condition”是一个逻辑表达式,它定义了要返回哪些行。例如,要检索“employees”表中工资大于50000的员工的姓名和姓氏,请执行以下操作:

SELECT first_name, last_name 
FROM employees 
WHERE salary > 50000;

③DISTINCT关键字

DISTINCT关键字用于从结果集中返回唯一的值。以下是DISTINCT关键字的一般格式:

SELECT DISTINCT column1, column2, ... 
FROM table_name;

此语句将返回表格“table_name”中所有唯一的“column1”、“column2”等列。

例如,要获取“employees”表中唯一的职位列表,请执行以下操作:

SELECT DISTINCT job_title 
FROM employees;

上篇文章:MySQL数据库的基本概念(day23)-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/141679002下篇文章:SQL的高级查询练习知识点中(day25)-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/141804900

这篇关于SQL的高级查询练习知识点(day24)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145243

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识