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发送…...
4步实现Android Studio本地化配置:从语言障碍到高效开发
4步实现Android Studio本地化配置:从语言障碍到高效开发 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 问题诊断&…...
OpenClaw多模型管理:Qwen3.5-4B-Claude与其他模型的协作方案
OpenClaw多模型管理:Qwen3.5-4B-Claude与其他模型的协作方案 1. 为什么需要多模型协作 去年冬天,当我第一次尝试用OpenClaw自动化处理技术文档时,发现单一模型很难兼顾所有任务场景。有些模型擅长代码生成但逻辑推理薄弱,有些长…...
asp毕业设计下载(全套源码+配套论文)——基于asp+access的公司门户网站设计与实现
基于aspaccess的公司门户网站设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的公司门户网站设计与实现,更多精选毕业设计项目实例见文末哦。 文章目录: 基于aspaccess的公司门户网站设计与实现&a…...
原子操作的实现原理
在并发编程、操作系统与计算机体系结构中,原子操作是保证数据安全、避免竞态条件的基石。它的核心特性是不可中断、不可分割,操作要么完整执行,要么完全不执行,绝不会出现中间状态。本文将从定义出发,逐层拆解原子操作…...
FaceFusion项目二次开发踩坑记:深入content_analyser.py,手动修复模型依赖哈希问题
FaceFusion项目二次开发踩坑记:深入content_analyser.py,手动修复模型依赖哈希问题 当你在全新环境中部署经过二次开发的FaceFusion项目时,可能会遇到一个令人头疼的问题——模型文件哈希校验失败。这个问题通常表现为控制台输出类似[FACEFUS…...
Flutter透明视频播放实战:用AlphaPlayer插件5分钟搞定礼物特效
Flutter透明视频播放实战:用AlphaPlayer插件5分钟搞定礼物特效 在移动应用开发中,炫酷的动画效果往往能显著提升用户体验,尤其是在社交、直播和游戏类应用中。透明视频特效作为其中一种高级表现形式,能够实现元素与背景的无缝融合…...
脉冲神经网络也能玩转频域?FSTA-SNN时空注意力模块的5个实战应用场景
脉冲神经网络频域建模实战:FSTA-SNN模块的五大创新应用 脉冲神经网络(SNN)作为第三代神经网络,近年来在计算机视觉领域展现出独特优势。传统SNN模型在时空特征提取上存在明显短板,而FSTA-SNN模块的提出为这一困境提供了…...
破局B站音频提取难题:BilibiliDown革新性解决方案全解析
破局B站音频提取难题:BilibiliDown革新性解决方案全解析 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors…...
AI赋能安装流程:快马智能诊断工具,自动解决软件安装兼容性问题
在开发软件的过程中,安装环节往往是第一个拦路虎。特别是当遇到系统环境复杂、依赖库版本冲突、权限配置等问题时,传统的安装方式常常让人头疼不已。最近我在尝试开发一个智能安装问题诊断工具时,发现InsCode(快马)平台的AI辅助功能特别实用&…...
避坑指南:三自由度机械臂DH参数建模与逆解求解的那些‘坑’(从理论到Matlab/Python验证)
三自由度机械臂运动学建模实战:从DH参数陷阱到逆解验证 机械臂运动学建模是机器人学中最基础却最容易踩坑的领域之一。很多工程师和学生在理论学习阶段看似掌握了DH参数法和正逆运动学推导,但一旦动手实践,总会遇到各种"诡异"的问题…...
