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

MySQL学习记录:第一章 DQL语言

文章目录

  • 第一章 查询语言,DQL语言
    • 一、基础查询
      • 1、查询表中单个字段
      • 2、查询表中多个字段
      • 3、查询表中所有字段
      • 4、查询常量值
      • 5、查询表达式
      • 6、查询函数
      • 7、起别名
      • 8、去重
      • 9、+号的作用
    • 二、条件查询
      • 1、按条件表达式筛选
      • 2、按逻辑表达式筛选
    • 三、模糊查询
    • 四、排序查询
    • 五、常见函数
      • 1、单行函数
        • (1)字符函数
          • ①LENGTH
          • ②CONCAT
          • ③UPPER|LOWER
          • ④SUBSTR|SUBSTRING
          • ⑤INSTR
          • ⑥TRIM
          • ⑦LPAD
          • ⑧RPAD
          • ⑨REPLACE
        • (2)数学函数
          • ①ROUND
          • ②CEIL
          • ③FLOOR
          • ④TRUNCATE
          • ⑤MOD
          • ⑥RAND
        • (3)日期函数
          • ①NOW()
          • ②CURDATE()
          • ③CURTIME()
          • ④获取日期时间的指定部分,年月日时分秒
          • ⑤STR_TO_DATE
          • ⑥DATE_FORMAT
          • ⑦ DATEDIFF
        • (4)其他函数
        • (5)流程控制函数
          • ①IF
          • ②CASE函数,使用一,switch case效果
          • ③CASE函数,使用二,类似多重if
      • 2、分组函数
        • (1)分组函数简单使用
        • (2)搭配参数类型验证
        • (3)是否忽略null值
        • (4)和distinct搭配
        • (5)count函数详细介绍,统计非空值个数
        • (6)知识点:GROUP BY
          • ①按表达式或函数分组
          • ②按多个字段分组
          • ③添加排序
    • 六、连接查询
      • 1、sql192标准:支持内连接
        • (1)等值连接
        • (2)连接时为表起别名,
          • ①验证两个表的顺序是否可以调换
          • ②连接查询可以加筛选
          • ③连接查询可以加分组
          • ④连接查询可以加排序
          • ⑤三表连接查询
        • (3)非等值连接
        • (4)自连接
      • 2、sql199标准:支持内连接*+外连接(左外*和右外*)+交叉连接
        • (1)内连接
          • ①等值连接
          • ②非等值连接
          • ③自连接
        • (2)外连接
          • ①左外连接与右外连接
          • ②全外连接(mysql不支持)
          • ③交叉连接
    • 七、子查询
      • 1、where后面或having后面*
        • (1)标量子查询(单行)
        • (2)列子查询(多行)
        • (3)行子查询(一行多列或多行多列)
      • 2、select后面
      • 3、from后面
      • 4、exists后面(相关子查询)
    • 八、分页查询*
    • 九、联合查询

第一章 查询语言,DQL语言

一、基础查询

/*
语法

SELECT  查询列表  FROM  表名;

特点
1、查询列表可以是字段、常量、表达式、函数,也可以是多个
2、查询结果是一个虚拟表
*/

1、查询表中单个字段

SELECT last_name FROM employees;

2、查询表中多个字段

SELECT last_name,salary,email FROM employees;

3、查询表中所有字段

SELECT * FROM employees;

4、查询常量值

#注意:字符型和日期型常量值须用单引号引起来

SELECT 100;
SELECT 'john';

5、查询表达式

SELECT 100%98;

6、查询函数

SELECT VERSION();

7、起别名

/*
目的
①便于理解;
②若查询字段有重名时可用别名区分*/

#方式一:使用AS

SELECT 100%98 as 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;

#方式二:使用空格

SELECT last_name 姓,first_name 名 FROM employees;

#案例:查询salary,显示结果为out_put

SELECT salary 'out put' FROM employees;

8、去重

#案例:查询员工表中涉及到的所有部门编号

SELECT DISTINCT department_id FROM employees;

9、+号的作用

/*
java中+号作用
①运算符:两个操作数都为数值型
②连接符:只要有一个操作数为字符串

mysql中+号的作用
①仅仅是运算符功能

select 数值+数值,直接运算
select 字符+数值,先试图将字符转换成数值,若转换成功,则继续运算;否则转换为0,再运算
select null+值,结果都为null

相关知识点
CONCAT(str1,str2,…),拼接字符

IFNULL(expr1,expr2),判断某字段或表达式是否为null,若是null,返回指定的值,否则返回原本的值

ISNULL(expr),判断某字段或表达式是否为null,若是null,则返回1,否则返回0
*/

#案例:查询员工名和姓连接成一个字段,并显示为姓名

SELECT CONCAT(last_name,first_name) 姓名 FROM employees;

#显示表的全部列,各列用逗号连接,列头显示out_put

SELECT
CONCAT(first_name,',',last_name,',',job_id,',',IFNULL(commission_pct,0)) 
as 'out_put'
FROM
employees;

#显示department表结构,并查询表

DESC departments;
SELECT * FROM departments;

二、条件查询

/*
语法

SELECT
查询列表
FROM
表名
WHERE
筛选条件;

分类
(1)按条件表达式筛选,> < = != <> >= <=
(2)按逻辑表达式筛选,用于连接条件表达式 && || !,and or not

   ①&&和and:两个条件都为true,结果为true,反之为false②||和or:只要有一个条件为true,结果为true,反之为false③!和not:如果连接的条件本身为false,结果为true,反之为false

(3)模糊查询
①LIKE:一般与通配符搭配使用,可以判断字符型或数值型

  % 任意多个字符,包含0个字符- 任意单个字符

②BETWEEN AND

 可以提高语句简洁度包含临界值,且临界值不可调换顺序

③IN

判断某个字段的值是否属于in列表中的某一项
使用更简洁,列表内的值类型须保持一致或兼容

④is NULL is not NULL

=或<>不能判断null值
is null 或者is not null:仅仅可以判断null值,可读性比较高
安全等于:<=>,可以判断null值又可以判断普通数值,可读性低

*/

1、按条件表达式筛选

#案例:查询工资>12000的员工信息

SELECT * FROM employees
WHERE salary > 12000;

#案例:查询部门编号不等于90号的员工名和部门编号

SELECT  last_name, department_id FROM
employees WHERE department_id != 90;

2、按逻辑表达式筛选

#案例:查询工资在10000到20000之间的员工名、工资及奖金

SELECT  last_name, salary, commission_pct
FROM  employees WHERE
salary >= 10000 && salary <= 20000;

#案例:查询部门编号不是在90到110之间,或者工资高于15000的员工信息

SELECT * FROM employees 
WHERE
#department_id<90 OR department_id>110 OR salary>15000;
NOT(department_id>=90 AND department_id<=110) OR salary>15000;

三、模糊查询

#案例:查询员工名中包含字符a的员工信息

SELECT * FROM employees
WHERE last_name LIKE '%a%';

#案例:查询员工名第四个字符a,第七个字符为a的员工信息

SELECT * FROM employees
WHERE last_name LIKE '___a__a%';

#案例:查询员工名中第二个字符为_的员工名

SELECT last_name FROM employees 
WHERE 
#last_name LIKE '_\_%';
last_name LIKE '_$_%' ESCAPE '$';

#案例:查询员工编号在100到120之间的员工信息

SELECT * FROM employees
WHERE
#employee_id >= 100 AND employee_id <= 120;
employee_id BETWEEN 100 AND 120;

#案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号

SELECT last_name, job_id FROM employees
WHERE
#job_id = 'IT_PROG' OR job_id = 'AD_VP' OR job_id = 'AD_PRES';
job_id in ('IT_PROG','AD_VP','AD_PRES');

#案例:查询没有|有奖金的员工名和奖金率

SELECT last_name, commission_pct FROM employees
WHERE
#commission_pct IS NULL;
commission_pct <=> NULL;
#commission_pct IS NOT NULL;

#案例:查询工资为12000的员工信息

SELECT last_name, salary FROM employees
WHERE salary <=> 12000;

#查询员工号为176的员工姓名和部门编号、年薪

SELECT last_name, departmen

相关文章:

MySQL学习记录:第一章 DQL语言

文章目录 第一章 查询语言,DQL语言一、基础查询1、查询表中单个字段2、查询表中多个字段3、查询表中所有字段4、查询常量值5、查询表达式6、查询函数7、起别名8、去重9、+号的作用二、条件查询1、按条件表达式筛选2、按逻辑表达式筛选三、模糊查询四、排序查询五、常见函数1、…...

redis+token+分布式锁确保接口的幂等性

目录 1.幂等性是什么&#xff1f; 2.如何实现幂等性呢&#xff1f; 1.新增管理员&#xff0c;出弹窗的同时&#xff0c;请求后台。 2.后端根据雪花算法生成唯一标识key&#xff0c;以雪花数为key存到redis。并返回key给前端。 3.前端保存后端传过来的key。 4.前端输入完成…...

Vue模版语法

目录 接下来学习click 例题&#xff1a;修改背景颜色 例题&#xff1a;反复点击button按钮&#xff0c;可以不断切换背景颜色 先看以下例题是回顾vue的用法 <body><div id"box">{{myname}} - {{myage}}</div><script>var vm new Vue({el…...

新一代开源流数据湖平台Apache Paimon入门实操-上

文章目录 概述定义核心功能适用场景架构原理总体架构统一存储基本概念文件布局 部署环境准备环境部署 实战Catalog文件系统Hive Catalog 创建表创建Catalog管理表查询创建表&#xff08;CTAS&#xff09;创建外部表创建临时表 修改表修改表修改列修改水印 概述 定义 Apache Pa…...

ELK 企业级日志分析系统(一)

目录 一、ELK 简介 1.1 组件说明 1.2 为什么要使用ELK 1.3 完整日志系统的基本特征 1.4 ELK工作原理 二、Elasticsearch的介绍 2.1 Elasticsearch的核心: 三、Logstash 3.1 Logstash简介 四、Kibana 五、部署ELK日志分析系统 5.1 服务器配置 5.2 ELK Elasticse…...

2023-08-01力扣今日二题-Hard-DPLIS优先队列-好题

链接&#xff1a; 354. 俄罗斯套娃信封问题 题意&#xff1a; 一个信封有长宽&#xff0c;如果一个信封的长宽均严格大于另一个信封&#xff0c;那么大的这个信封可以装下小的这个信封 求最多能套娃几个信封 解&#xff1a; 类似普通的最长上升子序列&#xff0c;但是信封…...

并发 如何创建线程 多线程

进程&#xff1a;一个程序的执行过程 线程&#xff1a;一个方法就是一个线程 并发&#xff1a;多个线程抢夺一个资源 操作同一个对象 创建线程方法1 //创建线程方法1 继承Thread类 重写润方法 调用start开启线程 public class TestThead extends Thread{Overridepublic voi…...

亚马逊鲲鹏系统是怎么引流的?

亚马逊鲲鹏系统有三种引流方式&#xff0c;可设置通过亚马逊站点搜索、站外引流、直接访问产品页面进入到相关产品页面进行操作。 1、通过亚马逊站点搜索 正常的登录到我们的亚马逊主页&#xff0c;然后通过设置关键词及asin&#xff0c;最后进入你指定的产品&#xff0c;进行…...

第五章 Git

5-1、Git的安装 1、为什么要使用代码版本控制系统 【1】版本控制 【2】开发中存在的麻烦 2、Git和SVN的对比 【1】Git和SVN对比 &#xff08;1&#xff09;SVN &#xff08;2&#xff09;Git 3、Git下载和安装 【1】下载 【2】安装 一路下一步就好了&#xff0c;更换安装…...

无涯教程-Lua - 变量声明

变量的名称可以由字母&#xff0c;数字和下划线字符组成。它必须以字母或下划线开头&#xff0c;由于Lua区分大小写&#xff0c;因此大写和小写字母是不同的。 在Lua中&#xff0c;尽管无涯教程没有变量数据类型&#xff0c;但是根据变量的范围有三种类型。 全局变量(Global) …...

vue3学习-组件基础、深入组件

组件 基本概述 单独的 .vue文件 单文件组件&#xff08;SFC&#xff09;&#xff08;single file component&#xff09; 使用子组件 导入&#xff0c;无需注册&#xff0c;直接使用编译时&#xff0c;区分大小写可使用 />关闭标签 传递 props 需要再组件上声明注册 def…...

原型链污染分析

原型链污染问题 原型链原型的继承原型链污染 原型链 原型的继承 先创建一个对象&#xff0c;查看一下属性 const obj { prop1: 111, prop2: 222,} 这里的Object.prototype就是对象的原型。 原型里面有许多的属性&#xff0c;这里面的constructor是我们需要着重关注的。 除此…...

RF PCB的9条改进型建议

1.小功率的RF的PCB设计中,主要使用标准的FR4材料(绝缘特性好、材质均匀、介电常数ε=4,10%)。主要使用4层~6层板,在成本非常敏感的情况下可以使用厚度在1mm以下的双面板,要保证反面是一个完整的地层,同时由于双面板的厚度在1mm以上,使得地层和信号层之间的FR4介质较厚,…...

网络安全(黑客)自学就业

前段时间&#xff0c;遇到网友提问&#xff0c;说为什么我信息安全专业的找不到工作&#xff1f; 造成这个结果主要是有两大方面的原因。 第一个原因&#xff0c;求职者本身的学习背景问题。那这些问题就包括学历、学校学到的知识是否扎实&#xff0c;是否具备较强的攻防实战…...

uni-app选择器( uni-data-picker)选择任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器&#xff0c;可以用作多级分类的场景。引入插件后&#xff0c;发现做不到只选择年级&#xff0c;不选择班级&#xff08;似乎&#xff0c;只能到最后子节点了&#xff09;。 需求中&#xff0c;有可能选择的不是叶子。比如&a…...

网络入侵探测器Pi.Alert

什么是 Pi.Alert &#xff1f; Pi.Alert 是 WIFI/LAN 入侵探测器。通过扫描连接到您的 WIFI/LAN 的设备&#xff0c;提醒您未知设备的连接。它还警告断开“始终连接”的设备。 Pi.Alert 使用了三种扫描方式 方式1&#xff1a;arp-scan。arp扫描系统实用程序用于使用 arp 帧搜索…...

Flask项目打包为exe(附带项目资源,静态文件)

1.在项目根目录创建my_app.spec文件&#xff0c;内容如下&#xff1a; # -*- mode: python ; coding: utf-8 -*-block_cipher Nonea Analysis([server.py], # flask入口pathex[],binaries[], datas[("E:/**/templates","/templates"),("E:/**/s…...

无代码开发(BIP旗舰版-YonBuilder)

目录 我的应用 新建领域 菜单管理 应用构建 新建应用 对象建模 新增业务对象 新增业务实体 页面建模 新增页面 编辑页面 发布管理 我的应用 角色管理 yonbuilder开发平台&#xff0c;提供标准服务和专业开发服务&#xff1b; 本篇文章只演示标准服务的可视化应用…...

誉天程序员-瀑布模型-敏捷开发模型-DevOps模型比较

文章目录 2. 项目开发-开发方式2.1. 瀑布开发模型2.2. 敏捷开发模型2.3. DevOps开发模型2.4. 区别 自增主键策略1、数据库支持主键自增自增和uuid方案优缺点 2. 项目开发-开发方式 由传统的瀑布开发模型、敏捷开发模型&#xff0c;一跃升级到DevOps开发运维一体化开发模型。 …...

flutter:占位视图(骨架屏、shimmer)

前言 有时候打开美团&#xff0c;在刚加载数据时会显示一个占位视图&#xff0c;如下&#xff1a; 那么这个是如何实现的呢&#xff1f;我们可以使用shimmer来开发该功能 实现 官方文档 https://pub-web.flutter-io.cn/packages/shimmer 安装 flutter pub add shimmer示例…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...