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示例…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...

认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...

算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...