数据库知识点

检索不同的行

DISTINCT
SELECT DISTINCT vid FROM products
#必须显示在列名前面,应用于所有的列

优先级

AND优先级大于OR
#如果提高优先级用()圈起
SELECT * FROM products WHERE(vid=1002 OR vid=1003) AND price>10

Like

找出以‘s开头e结尾’
SELECT name FROM products WHERE name LIKE ‘s%e’

下划线_的使用

只匹配单个字符而不是多个字符
SELECT * FROM products WHERE name LIKE ‘_ ton anvil’
结果:
1 ton anvil √
2 ton anvil √
.5 ton anvi ×

正则表达式

REGEXP
SELECT * FROM products WHERE name REGEXP ‘此处写表达式’

数据分组group by

  • 如果分组列中具有null值,则null将作为一个分组返回。如果列中有多行null值,它们将分为一组。
  • group by必须出现在where字句之后,order by子句之前

关键字出现顺序

关键字描述
select
from
where行级过滤
group by分组说明
having组级过滤
order by输出排序顺序
limit检索的行数

子查询

就是select中嵌套select
一般与 in(select…)、=、!=一起使用
(从内向外处理)

SELECT cid FROM orders WHERE num IN (SELECT num FROM ordertimes WHERE pid=’TNT2’);

组合查询union

使用场景:
- 在单个查询中从不同的表返回类似结构的数据。对单个表执行多个查询,按单个查询返回数据。
- 同时执行多个select查询,并将结果作为单个查询结果集返回。
- 与具有多个where子句条件的单条查询完成工作相同。
- union all全部显示
- order by子句对union整体进行排序

SELECT vid,pid,price FROM products WHERE price<5
UNION
SELECT vid,pid,price FROM products WHERE vid IN (1001,1002);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值