MySQL超入门(1)__迅速上手掌握MySQL
# 1.选择语句
# 注意事项:MySQL不区分大小写,SELECT * 代表选择全部
// 测试一
USE sql_store; -- 使用 sql_store库
SELECT * FROM customers -- 查询customers表
WHERE customer_id = 1 OR customer_id = 4 -- 条件判断为customer_id = 1或customer_id = 4
ORDER BY first_name -- 升序排序
// 结果一

// 测试二
SELECT
last_name,
first_name,
points,
points + 10 AS discount_factor, -- 将points + 10后的值用discount_factor列名表示
(points + 10) * 100 AS 'discount factor' -- ''中可加空格
FROM customers
ORDER BY points -- 根据points进行升序排序
// 结果二

// 小练习,预测结果
SELECT
name,
unit_price,
unit_price * 1.1 AS new_price
FROM products
ORDER BY new_price
# 小扩展:SELECT DISTINCT ……(去重语句),可去掉重复的查询结果
# 2.WHERE子句
# 注意事项:条件判定<>、!=表不等于
// 测试一
SELECT *
FROM customers -- 查询customers表
WHERE birth_date > '1991-01-01' -- 查询条件:birth_date大于1991-01-01
// 结果一

// 测试二
SELECT *
FROM orders
WHERE order_date >= '2019_01_01'
// 结果二

# 3. AND(和,两者都为真 —> 真),OR(或,两者有一个为真 —> 真),NOT 运算符(取反,真假互换)
// 测试一
SELECT * FROM customers
WHERE NOT(birth_date > '1990-01-01' OR points > 1000) -- 查询条件:birth_date <= '1990-01-01' 或 points <= 1000
// 结果一

// 小练习:查询order_items表,获取order_id等于6,且unit_price 乘以 quantity 大于 30的订单
结果如下:

# 4. IN运算符
// 测试一
SELECT * FROM customers
WHERE state = 'VA' OR state = 'GA' OR state = 'FL'
// 测试二
SELECT * FROM customers
-- WHERE state = 'VA' OR state = 'GA' OR state = 'FL'
WHERE state IN ('VA', 'GA', 'FL')
// 两者输出结果相同

-- 小练习:查询products表中的quantity_in_stock的价格为49,38,72的商品
SELECT * FROM products-- WHERE quantity_in_stock = 49 OR quantity_in_stock = 38 OR quantity_in_stock = 72WHERE quantity_in_stock IN (49, 38, 72)

// 由于quantity_in_stock中没有72的选项,所以查询不到72
# 5. BETWEEN运算符
// 测试一
SELECT *
FROM customers
WHERE points BETWEEN 800 AND 2800
-- 等价于 WHERE points >= 800 AND points <= 2800
// 结果一

-- 小练习:在customers表中查询birth_date在1990-01-01和2000-01-01之间的顾客
SELECT *
FROM customers
WHERE birth_date BETWEEN '1990-01-01' AND '2000-01-01'

-- 注意:WHERE birth_date BETWEEN 1990-01-01 AND 2000-01-01
-- 未用' ',却没有报错,返回结果为空
# 6. LIKE运算符(用的不多,有更高级的选择 REGEXP)
// 测试一
SELECT *
FROM customers
WHERE last_name LIKE '%c%' -- %代表0或多个字符,该条语句表示查询last_name中包含c的所有选项
-- WHERE last_name LIKE '%c%' -- %代表0或多个字符,该条语句表示查询last_name中包含c的所有选项
-- WHERE last_name LIKE '%y' -- 以y结尾的所有选项
-- WHERE last_name LIKE 'm%' -- 以m开头的所有选项
-- WHERE last_name LIKE 'b______y' -- _表示任意1个字符
// 结果一

-- 小练习:查询customers中phone中包含9的号码,且地址为中包含trail或field的顾客
SELECT *
FROM customers
WHERE phone LIKE '%9%' AND (address LIKE '%trail%' OR address LIKE '%field%')
# 7. REFGEXP运算符(正则表达式)
// 测试一
SELECT *
FROM customers
WHERE last_name REGEXP 'rush'
-- 等价于WHERE last_name LIKE '%rush%'
// 结果一

// 测试二
SELECT *
FROM customers
WHERE last_name REGEXP 'caff|field$|^dow|[abc]g|g[a-h]'
-- 包含caff字符的所有last_name
-- |代表 或
-- field$代表 以field结尾
-- ^dow代表 以dow开头
-- [abc]代表 在a,b,c中的任意一个字符
-- [a-h]代表 从a到h的任意一个字符
// 注意事项:空格在字符串中小心使用
// 结果二

-- 小练习:获取customers中
-- first_name是ELKA或AMBUR的客人
-- last_name以EY或ON结尾的客人
-- last_name以MY开头或含有SE的客人
-- last_name中包含B后面连接着R或U的客人
SELECT *
FROM customers
WHERE first_name REGEXP 'elka|ambur'
OR last_name REGEXP 'ey$|on$'
OR last_name REGEXP '^my|^se'
OR last_name REGEXP 'b[ru]'
# 8. IS NULL运算符
// 测试一
SELECT *
FROM customers
WHERE phone IS NULL -- 查询phone中的null(空号)
-- WHERE phone IS NOT NULL -- 查询phone中的非null(非空号)
// 结果一

-- 小练习:获取orders中未发货的货物(参数二选一:shipped_date OR shipper_id)
SELECT *
FROM orders
WHERE shipped_date IS NULL
# 9. ORDER BY子句
// 测试一
SELECT *
FROM customers
ORDER BY first_name -- 默认按first_name首字符进行升序排序(自顶而下,由小到大)
-- ORDER BY first_name DESC -- 按first_name首字符进行降序排序(自顶而下,由大到小)
// 结果一

-- MySQL中,可以使用任何列进行排序,即使不是SELECT查询的列。(与其他关系型数据库的区别)
-- 例:
SELECT first_name, last_name
FROM customers
ORDER BY birth_date DESC

-- MySQL中可以使用如下语句进行排列(但应尽量避免这种使用)
SELECT *,first_name, last_name
FROM customers
ORDER BY 2, 3
-- 2,3 分别对应着first_name, last_name
-- 使用这种排序方法,改变选择的参数,可能会导致查询结果出现变化
-- 练习:查询order_items表中的quantity和unit_price相乘的结果,条件为order_id = 2,按相乘结果倒序排序
SELECT *, quantity * unit_price AS order_items -- 为quantity * unit_price设置别名,便于管理该列数据
FROM order_items
WHERE order_id = 2
ORDER BY order_items DESC
# 10.LIMIT语句(该语句放在最后)
// 测试一
SELECT *
FROM customers
LIMIT 3 -- 此行表示只显示前三行数据
// 结果一

// 测试一
SELECT *
FROM customers
LIMIT 5,3 -- 此行表示只显示第五行后的前三行数据
// 结果二

-- 练习:获取customers中points最高的前三名
SELECT *
FROM customers
ORDER BY points DESC
LIMIT 3

# 11.小结
分析下列代码各行的作用,并运行验证结果
USE sql_store;
SELECT *,
address,
city,
points * 10 AS 'all points'
FROM customers
WHERE first_name REGEXP 'y$|^b|[a-n]c'
OR last_name LIKE '_y%'
OR state IN ('VA')
OR ((points BETWEEN 800 AND 3000) AND phone IS NOT NULL)
ORDER BY points DESC
LIMIT 3,5相关文章:
MySQL超入门(1)__迅速上手掌握MySQL
# 1.选择语句 # 注意事项:MySQL不区分大小写,SELECT * 代表选择全部 // 测试一 USE sql_store; -- 使用 sql_store库 SELECT * FROM customers -- 查询customers表 WHERE customer_id 1 OR customer_id 4 -- 条件判断为customer_id 1或customer_id …...
四、浏览器渲染过程,DOM,CSSDOM,渲染,布局,绘制详细介绍
知识点: 1、为什么不能先执行 js文件?? 我们不能先执行JS文件,必须等到CSSOM构建完成了才能执行JS文件,因为前面已经说过渲染树是需要DOM和CSSOM构建完成了以后才能构建,而且JS是可以操控CSS样式的&#…...
2021-06-10 51单片机设计一个蜂鸣器报警电路每秒
缘由求助一下谢谢啦51单片机_嵌入式-CSDN问答设计一个蜂鸣器报警电路,按下K1,蜂鸣器响一声,按下K2,蜂鸣器响三声,按下K3,蜂鸣器长鸣。要求响声和间隔的时间均为1秒,长鸣不限时,但是此时应设置一…...
D‘Agostino-Pearson正态检验|偏度skewness和峰度kurtosis
DAgostino-Pearson检验(也称为DAgostino和Pearson正态性检验)是一种用于检验数据是否符合正态分布的统计检验方法。它基于数据的样本统计量,主要包括偏度(skewness)和峰度(kurtosis),…...
基于树莓派CM4制作img系统镜像批量制作TF卡
文章目录 前言1. 环境与工具2. 制作镜像3. 烧录镜像4. 总结 前言 树莓派烧录完系统做定制化配置比较费时间。在面对大批量的树莓派要配置,那时间成本是非常巨大的。第一次配置完可以说是摸着石头过河,但是会弄了以后再配置,都是一些重复性操…...
【中秋国庆不断更】OpenHarmony组件内状态变量使用:@State装饰器
State装饰的变量,或称为状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。 在状态变量相关装饰器中,State是最基础的,使变量拥有状态属性的装饰器&am…...
【Java 进阶篇】MySQL多表关系详解
MySQL是一种常用的关系型数据库管理系统,它允许我们创建多个表格,并通过各种方式将这些表格联系在一起。在实际的数据库设计和应用中,多表关系是非常常见的,它能够更好地组织和管理数据,实现数据的复杂查询和分析。本文…...
【开发篇】十、Spring缓存:手机验证码的生成与校验
文章目录 1、缓存2、用HashMap模拟自定义缓存3、SpringBoot提供缓存的使用4、手机验证码案例完善 1、缓存 缓存是一种介于数据永久存储介质与数据应用之间的数据临时存储介质使用缓存可以有效的减少低速数据读取过程的次数(例如磁盘IO),提高…...
【Aurora 8B/10B IP(1)--初步了解】
Aurora 8B/10B IP(1)–初步了解 1 Aurora 8b/10b IP的基本状态: •通用数据通道吞吐量范围从480 Mb/s到84.48 Gb/s •支持多达16个连续粘合7GTX/GTH系列、UltraScale™ GTH或UltraScale+™ GTH收发器和4绑定GTP收发器 •Aurora 8B/10B协议规范v2.3顺从的 •资源成本低(请参…...
C++ vector容器的介绍与使用
一、vector简介 std::vector 是 C 标准模板库 (STL) 中的一个动态数组容器。允许存储元素(可以使用任何数据类型作为其元素类型)集合,并能够动态调整其大小。 特点: 动态大小:与常规数组不同,vector 可以…...
openstack的组成
OpenStack 是一个开源的云计算平台,由一系列组件构成,各组件之间相互协作,提供了完整的基础设施即服务(IaaS)解决方案。下面详细解释了 OpenStack 的主要组件及其相互关系: Nova(计算服务&…...
[React] React高阶组件(HOC)
文章目录 1.Hoc介绍2.几种包装强化组件的方式2.1 mixin模式2.2 extends继承模式2.3 HOC模式2.4 自定义hooks模式 3.高阶组件产生初衷4.高阶组件使用和编写结构4.1 装饰器模式和函数包裹模式4.2 嵌套HOC 5.两种不同的高阶组件5.1 正向的属性代理5.2 反向的继承 6.如何编写高阶组…...
【逐步剖C++】-第二章-C++类和对象(中)
前言:本章继【逐步剖C】-第二章-C类和对象(上)介绍有关类和对象更深层次的知识点,这里是文章导图: 本文较长,内容较多,大家可以根据需求跳转到自己感兴趣的部分,希望能对读者有一些帮…...
PL/SQL动态SQL
目录 1. 动态 sql 2. 带参数的动态 sql -- 不使用 USING 传参 1. 动态 sql -- 在 PL/SQL 程序开发中,可以使用 DML 语句,但是很多语句(如 DDL),不能直接在 PL/SQL中执行,这些语句可以使用动态 sql 来实现. 语法格式: EXECUTE IMMEDIATE --动态语句的字符串 [into 变量…...
Python绘图系统24:添加辅助坐标轴
文章目录 辅助坐标增减坐标轴时间轴**代码优化源代码 Python绘图系统: 前置源码: Python打造动态绘图系统📈一 三维绘图系统 📈二 多图绘制系统📈三 坐 标 轴 定 制📈四 定制绘图风格 📈五 数据…...
Java自学网站--十几个网站的分析与评测
原文网址:Java自学网站--十几个网站的分析与评测_IT利刃出鞘的博客-CSDN博客 简介 很多想学Java的人不知道怎样选教程,本文对Java自学网站进行评测。 本文不带主观倾向,只客观分析各个网站的区别。 第1类:大型培训机构(黑马等…...
java接口怎么写
Java接口是一种定义规范的抽象类型,可以包含常量和方法的声明。接口在Java编程中具有重要的作用,可以实现代码的重用和灵活性。本文将详细介绍Java接口的编写方式和使用方法。 一、什么是Java接口 在Java中,接口(Interface&…...
第8章 Spring(二)
8.11 Spring 中哪些情况下,不能解决循环依赖问题 难度:★★ 重点:★★ 白话解析 有一下几种情况,循环依赖是不能解决的: 1、原型模式下的循环依赖没办法解决; 假设Girl中依赖了Boy,Boy中依赖了Girl;在实例化Girl的时候要注入Boy,此时没有Boy,因为是原型模式,每次都…...
从0开始python学习-24.selenium 浏览器常见的操作
1. 浏览器的最大化/最小化:maximize_window () / minimize_window() 2. 设置浏览器的宽高:set_window_size() 3. 设置浏览器的位置:set_window_position(0,0) —》左上角为原点 4. 刷新:refresh() 5. 前进:forward() 6…...
Canal实现数据同步
1、Canal实现数据同步 canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。 1.1 Canal工作原理 原理相对比较简单: 1、canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送…...
架构范式转移:DeepSeek-Coder-V2如何重构企业级代码智能的ROI模型
架构范式转移:DeepSeek-Coder-V2如何重构企业级代码智能的ROI模型 【免费下载链接】DeepSeek-Coder-V2 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Code…...
Windows更新修复终极指南:Script-Reset-Windows-Update-Tool完全解析
Windows更新修复终极指南:Script-Reset-Windows-Update-Tool完全解析 【免费下载链接】Script-Reset-Windows-Update-Tool This script reset the Windows Update Components. 项目地址: https://gitcode.com/gh_mirrors/sc/Script-Reset-Windows-Update-Tool …...
Illustrator智能脚本终极指南:如何让设计效率提升300%
Illustrator智能脚本终极指南:如何让设计效率提升300% 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 还在为Adobe Illustrator中重复繁琐的操作而烦恼吗?想…...
ARM架构TLB失效指令VALE1IS/VALE1ISNXS详解
1. ARM TLB失效指令基础解析在ARMv8/v9架构中,TLB(Translation Lookaside Buffer)作为内存管理单元(MMU)的核心组件,缓存了虚拟地址到物理地址的转换结果。当操作系统修改页表后,必须通过TLB失效…...
ESXi 8.0 最低存储要求:8GB 起步,这样装最稳
在部署 VMware ESXi 8.0 虚拟化环境时,存储规划是基础且关键的一步,很多新手常混淆系统引导盘与虚拟机数据盘的要求。核心结论清晰:ESXi 8.0 最低需 8GB SD 卡 / USB 作为引导介质,同时必须搭配独立的数据存储;生产环境…...
RAG 系统优化全流程:从数据入库到召回排序
RAG(Retrieval-Augmented Generation)系统的检索质量直接决定生成内容的上限。本文从工程落地角度,系统梳理 RAG 检索链路的三个核心阶段——入库、查询与召回。针对每个阶段的关键技术(语义分割、问答模拟、查询改写、语义校验、混合检索、语义重排)给出定义、问题背景、…...
AI系统合规性故障模式解析:从公平性、隐私到可解释性的工程实践
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“AI-Compliance-Failure-Patterns”。光看名字,你大概能猜到它和AI的合规性有关,但具体是做什么的,可能还有点模糊。简单来说,这个项目就像一本针对AI系…...
基于OCR与NLP的智能账单分析系统:从数据处理到消费洞察
1. 项目概述:一个AI驱动的家庭账单智能分析系统最近在GitHub上看到一个挺有意思的项目,叫ai_code_family_bill。光看名字,你大概能猜到它和家庭账单、AI分析有关。作为一个长期和代码、数据打交道的技术人,我第一反应是࿱…...
如何在Dev-C++中配置TDM-GCC编译器
在Dev-C中配置TDM-GCC编译器的步骤如下: 步骤1:下载TDM-GCC编译器 访问 TDM-GCC官网下载适用于Windows的安装包(推荐选择64位版本:tdm-gcc-xxx.exe) 步骤2:安装TDM-GCC 运行安装程序,选择默认…...
从Siri上车看车载语音交互:技术演进、产业融合与安全设计
1. 项目概述:当Siri首次驶入驾驶舱2012年洛杉矶国际车展上的一则新闻,在当时的汽车与科技圈激起了不小的涟漪。通用汽车宣布,其旗下的雪佛兰品牌将成为首批将苹果Siri语音助手集成到车载信息娱乐系统中的汽车制造商,首发车型包括雪…...
