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发送…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...