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.幂等性是什么? 2.如何实现幂等性呢? 1.新增管理员,出弹窗的同时,请求后台。 2.后端根据雪花算法生成唯一标识key,以雪花数为key存到redis。并返回key给前端。 3.前端保存后端传过来的key。 4.前端输入完成…...
Vue模版语法
目录 接下来学习click 例题:修改背景颜色 例题:反复点击button按钮,可以不断切换背景颜色 先看以下例题是回顾vue的用法 <body><div id"box">{{myname}} - {{myage}}</div><script>var vm new Vue({el…...
新一代开源流数据湖平台Apache Paimon入门实操-上
文章目录 概述定义核心功能适用场景架构原理总体架构统一存储基本概念文件布局 部署环境准备环境部署 实战Catalog文件系统Hive Catalog 创建表创建Catalog管理表查询创建表(CTAS)创建外部表创建临时表 修改表修改表修改列修改水印 概述 定义 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优先队列-好题
链接: 354. 俄罗斯套娃信封问题 题意: 一个信封有长宽,如果一个信封的长宽均严格大于另一个信封,那么大的这个信封可以装下小的这个信封 求最多能套娃几个信封 解: 类似普通的最长上升子序列,但是信封…...
并发 如何创建线程 多线程
进程:一个程序的执行过程 线程:一个方法就是一个线程 并发:多个线程抢夺一个资源 操作同一个对象 创建线程方法1 //创建线程方法1 继承Thread类 重写润方法 调用start开启线程 public class TestThead extends Thread{Overridepublic voi…...
亚马逊鲲鹏系统是怎么引流的?
亚马逊鲲鹏系统有三种引流方式,可设置通过亚马逊站点搜索、站外引流、直接访问产品页面进入到相关产品页面进行操作。 1、通过亚马逊站点搜索 正常的登录到我们的亚马逊主页,然后通过设置关键词及asin,最后进入你指定的产品,进行…...
第五章 Git
5-1、Git的安装 1、为什么要使用代码版本控制系统 【1】版本控制 【2】开发中存在的麻烦 2、Git和SVN的对比 【1】Git和SVN对比 (1)SVN (2)Git 3、Git下载和安装 【1】下载 【2】安装 一路下一步就好了,更换安装…...
无涯教程-Lua - 变量声明
变量的名称可以由字母,数字和下划线字符组成。它必须以字母或下划线开头,由于Lua区分大小写,因此大写和小写字母是不同的。 在Lua中,尽管无涯教程没有变量数据类型,但是根据变量的范围有三种类型。 全局变量(Global) …...
vue3学习-组件基础、深入组件
组件 基本概述 单独的 .vue文件 单文件组件(SFC)(single file component) 使用子组件 导入,无需注册,直接使用编译时,区分大小写可使用 />关闭标签 传递 props 需要再组件上声明注册 def…...
原型链污染分析
原型链污染问题 原型链原型的继承原型链污染 原型链 原型的继承 先创建一个对象,查看一下属性 const obj { prop1: 111, prop2: 222,} 这里的Object.prototype就是对象的原型。 原型里面有许多的属性,这里面的constructor是我们需要着重关注的。 除此…...
RF PCB的9条改进型建议
1.小功率的RF的PCB设计中,主要使用标准的FR4材料(绝缘特性好、材质均匀、介电常数ε=4,10%)。主要使用4层~6层板,在成本非常敏感的情况下可以使用厚度在1mm以下的双面板,要保证反面是一个完整的地层,同时由于双面板的厚度在1mm以上,使得地层和信号层之间的FR4介质较厚,…...
网络安全(黑客)自学就业
前段时间,遇到网友提问,说为什么我信息安全专业的找不到工作? 造成这个结果主要是有两大方面的原因。 第一个原因,求职者本身的学习背景问题。那这些问题就包括学历、学校学到的知识是否扎实,是否具备较强的攻防实战…...
uni-app选择器( uni-data-picker)选择任意级别
背景说明 uni-app 官方的插件市场有数据驱动选择器,可以用作多级分类的场景。引入插件后,发现做不到只选择年级,不选择班级(似乎,只能到最后子节点了)。 需求中,有可能选择的不是叶子。比如&a…...
网络入侵探测器Pi.Alert
什么是 Pi.Alert ? Pi.Alert 是 WIFI/LAN 入侵探测器。通过扫描连接到您的 WIFI/LAN 的设备,提醒您未知设备的连接。它还警告断开“始终连接”的设备。 Pi.Alert 使用了三种扫描方式 方式1:arp-scan。arp扫描系统实用程序用于使用 arp 帧搜索…...
Flask项目打包为exe(附带项目资源,静态文件)
1.在项目根目录创建my_app.spec文件,内容如下: # -*- mode: python ; coding: utf-8 -*-block_cipher Nonea Analysis([server.py], # flask入口pathex[],binaries[], datas[("E:/**/templates","/templates"),("E:/**/s…...
无代码开发(BIP旗舰版-YonBuilder)
目录 我的应用 新建领域 菜单管理 应用构建 新建应用 对象建模 新增业务对象 新增业务实体 页面建模 新增页面 编辑页面 发布管理 我的应用 角色管理 yonbuilder开发平台,提供标准服务和专业开发服务; 本篇文章只演示标准服务的可视化应用…...
誉天程序员-瀑布模型-敏捷开发模型-DevOps模型比较
文章目录 2. 项目开发-开发方式2.1. 瀑布开发模型2.2. 敏捷开发模型2.3. DevOps开发模型2.4. 区别 自增主键策略1、数据库支持主键自增自增和uuid方案优缺点 2. 项目开发-开发方式 由传统的瀑布开发模型、敏捷开发模型,一跃升级到DevOps开发运维一体化开发模型。 …...
flutter:占位视图(骨架屏、shimmer)
前言 有时候打开美团,在刚加载数据时会显示一个占位视图,如下: 那么这个是如何实现的呢?我们可以使用shimmer来开发该功能 实现 官方文档 https://pub-web.flutter-io.cn/packages/shimmer 安装 flutter pub add shimmer示例…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
Appium下载安装配置保姆教程(图文详解)
目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...
