当前位置: 首页 > news >正文

数据库-MySQL之数据库必知必会1-9章

检索数据

1.检索不重复的行
从 Customers 表中检索所有的 ID
在这里插入图片描述

select DISTINCT cust_id
from Customers;

DISTINCT表示去掉重复的行
2.限制结果-分页
SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

排序检索数据

1.常规检索
使用ORDER BY子句对输出进行排序,默认是从小到大(A-Z)(顺序) 使用DESC表示倒序
在这里插入图片描述

select cust_name
from Customers 
ORDER BY cust_name DESC;

2.按多个列排序且不同列有不同顺序
在需要逆序的列后面加DESC即可
在这里插入图片描述

select cust_id,order_num
from Orders
ORDER BY cust_id,order_date DESC;

3. 找最值
使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。

过滤数据

1.WHERE子句
在这里插入图片描述

select prod_id,prod_name
from Products
where prod_price=9.49

1.WHERE操作符
在这里插入图片描述
示例:
编写 SQL 语句,从 Products 表中检索产品 ID(prod_id)和产品名称(prod_name),只返回价格为 9 美元或更高的产品。

select prod_id,prod_name
from Products
where prod_price>=9

BETWEEN的用法
在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后

select prod_name,prod_price
from Products 
where prod_price BETWEEN 3 AND 6
ORDER BY prod_price

2.组合WHERE子句
AND操作符:有多个条件
OR操作符:只满足一个条件
AND与OR组合操作符
示例:
【问题】编写SQL 语句,查找所有订购了数量至少100 个的 BR01、BR02 或BR03 的订单。你需要返回 OrderItems 表的订单号(order_num)、产品 ID(prod_id)和数量(quantity),并按产品 ID 和数量进行过滤

select order_num,prod_id,quantity
from OrderItems
where quantity>=100 && (prod_id= 'BR01' OR prod_id='BR02' OR prod_id='BR03')

IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配
在这里插入图片描述
此SELECT语句检索供应商1002和1003制造的所有产品。IN操作符后跟由逗号分隔的合法值清单,整个清单必须括在圆括号中
NOT操作符
WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
在这里插入图片描述
上述代码列出除1002和1003之外的所有供应商制造的产品

用通配符进行过滤

%

通配符(wildcard) 用来匹配值的一部分的特殊字符。
最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。为了找出所有以词jet起头的产品,可使用以下SELECT
语句
在这里插入图片描述
通配符可在搜索模式中任意位置使用,并且可以使用多个通配符。除了一个或多个字符外,%还能匹配0个字符。%
代表搜索模式中给定位置的0个、1个或多个字符。
注:虽然似乎%通配符可以匹配任何东西,但有一个例外,即NULL。即使是WHERE prod_name LIKE '%'也不能匹配
用值NULL作为产品名的行。

使用两个LIKE

select prod_name,prod_desc
from Products
where prod_desc LIKE '%toy%' AND prod_desc LIKE '%carrots%'

_

另一个有用的通配符是下划线(_)。下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符

用正则表达式进行搜索

基本字符匹配

REGEXP
在这里插入图片描述
在这里插入图片描述
LIKE只匹配整列值为1000 不会找出内容中有1000的但 REGEXP会

进行OR匹配

在这里插入图片描述

匹配几个字符之一

如果你只想匹配特定的字符,可通过指定一组用**[和]**括起来的字符来完成
在这里插入图片描述

匹配范围

在这里插入图片描述

匹配特殊字符

如果要找出包含.字符的值,怎样搜索
在这里插入图片描述

http://www.lryc.cn/news/225054.html

相关文章:

  • Selenium+Python自动化测试环境搭建
  • k8s存储卷 PV和PVC
  • 【架构】后端项目经典分层架构介绍
  • 二叉树的中序遍历
  • 什么是代理IP池?真实测评IP代理商的IP池是否真实?
  • 接收表单数据
  • 串口通信(11)-CRC校验介绍算法
  • 什么是Java虚拟机(JVM),它的作用是什么?
  • 力扣876:链表的中间结点
  • 三菱FX3U系列—原点回归指令
  • ES常用查询命令
  • 【Qt之元对象系统】
  • 基于FPGA的EMAC模块与FIFO模块:高速数据传输与存储
  • 大数据毕业设计选题推荐-农作物观测站综合监控平台-Hadoop-Spark-Hive
  • 高校教务系统登录页面JS分析——长沙理工大学教务系统
  • element-ui的form校验失败
  • java数据结构--阻塞队列
  • 使用p2p实现Linux内网快速分发文件
  • Android Studio报错:connect refused
  • ubuntu 源码编译安装make过程很慢问题解决
  • 深度学习 opencv python 实现中国交通标志识别 计算机竞赛
  • 希尔排序原理
  • 测试用例的设计方法(全):判定表驱动分析方法
  • node 第十七天 使用rsa非对称加密 实现前后端加密通信 JSEncrypt和node-rsa
  • Spring-依赖注入findAutowireCandidates源码实现
  • 单页面应用与多页面应用的区别?
  • 模型预处理的ToTensor和Normalize
  • nodejs express multer 保存文件名为中文时乱码,问题解决 originalname
  • 大数据之LibrA数据库系统告警处理(ALM-12035 恢复任务失败后数据状态未知)
  • 汽车生产RFID智能制造设计解决方案与思路