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

检索数据

1.检索不重复的行
从 Customers 表中检索所有的 ID
数据库-MySQL之数据库必知必会1-9章_第1张图片

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即可
数据库-MySQL之数据库必知必会1-9章_第2张图片

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

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

过滤数据

1.WHERE子句
数据库-MySQL之数据库必知必会1-9章_第3张图片

select prod_id,prod_name
from Products
where prod_price=9.49

1.WHERE操作符
数据库-MySQL之数据库必知必会1-9章_第4张图片
示例:
编写 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操作符用来指定条件范围,范围中的每个条件都可以进行匹配
数据库-MySQL之数据库必知必会1-9章_第5张图片
此SELECT语句检索供应商1002和1003制造的所有产品。IN操作符后跟由逗号分隔的合法值清单,整个清单必须括在圆括号中
NOT操作符
WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
数据库-MySQL之数据库必知必会1-9章_第6张图片
上述代码列出除1002和1003之外的所有供应商制造的产品

用通配符进行过滤

%

通配符(wildcard) 用来匹配值的一部分的特殊字符。
最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。为了找出所有以词jet起头的产品,可使用以下SELECT
语句
数据库-MySQL之数据库必知必会1-9章_第7张图片
通配符可在搜索模式中任意位置使用,并且可以使用多个通配符。除了一个或多个字符外,%还能匹配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
数据库-MySQL之数据库必知必会1-9章_第8张图片
数据库-MySQL之数据库必知必会1-9章_第9张图片
LIKE只匹配整列值为1000 不会找出内容中有1000的但 REGEXP会

进行OR匹配

数据库-MySQL之数据库必知必会1-9章_第10张图片

匹配几个字符之一

如果你只想匹配特定的字符,可通过指定一组用**[和]**括起来的字符来完成
数据库-MySQL之数据库必知必会1-9章_第11张图片

匹配范围

数据库-MySQL之数据库必知必会1-9章_第12张图片

匹配特殊字符

如果要找出包含.字符的值,怎样搜索
数据库-MySQL之数据库必知必会1-9章_第13张图片

你可能感兴趣的:(MyQSL,数据库,mysql,android)