网站首页 > 技术文章 正文
前两年做 PM,每次拉数据都直接找开发,之前怕把数据库搞坏了。换了家公司,开启自力更生。
早上在地铁上,疯狂翻看《SQL必知必会》,其实看不太懂,一定要在 PC 端,边看边在数据库试验。
因为英文输入法、某个符号不知道怎么输入(" `) ,查询多次报错,幸好有 AI ,粘进去帮我改了,我再 copy 出来看看具体是哪里错了。
AI 还有一个不知疲倦的“逐词翻译”的功能,很好用,疯狂用。
奋发图强学习的原因还有一个原因是,昨天开发突然“水灵灵”地说没办法和我解释,我不懂业务也不懂代码怎么写…… 我剩下的就只有专业度,不带情绪地沟通技巧了 hhhhhhhhh 排除她胡说的成分,我的能力确实可以再精进。
系统学一下 SQL
初学者最佳打开模式 -- EXPLAIN
# 这是一条注释:先看单一表的表结构
EXPLAIN item
输出的内容是 item 表里面的列名
基本规则
database数据库table表column列row行primary key主键SQL专门用来与数据库沟通的语言syntax语法
检索 -- SELECT FROM
1、所需的列名写在 SELECT 关键字之后,FROM 关键字指出从哪个表中检索数据
SELECE item_id
FROM item
iten id
95,684
188,429
5,244,533
5,903,092
2、形式变换
# 检索
SELECT item_id,user_id,create_time,PID,URL --查找多列
FROM item
SELECT* --查找所有列
FROM item
SELECT*-- 注释:学会加注释 英文下两个连字符,之后加空格
FROM item; -- 注释
# 多行注释
/* SELECT item_id,user_id,create_time,PID,URL --查找多列
FROM item
SELECT * --查找所有列
FROM item*/
SELECT*-- 注释:学会加注释 英文下两个连字符,之后加空格
FROM item; -- 注释
排序 -- ORDER BY
ORDER BY 子句取一个或多个列的名字,据此对输出进行排序。
# 排序
SELECT item_id, user_id, PID, URL
FROM item
ORDERBY user_id -- 按 user_id 排序
# 按多列排序
ORDERBY PID, user_id -- 先按 PID 排序, 然后按 user_id 排序 ,能查出都买过同一pid商品的用户有哪些
# 按列位置排序
ORDERBY3, 2 -- 先按 PID 排序, 然后按 user_id 排序 ,用数字代表列
# 指定排序方向
SELECT item_id, user_id, PID, unit_price
FROM item
ORDERBY4desc -- 先按 unit_price 排序,然后倒序,能查出 最高价商品
# 指定排序方向
SELECT item_id, user_id, PID, unit_price
FROM item
ORDERBY4desc ,2desc -- 先按 unit_price 排序,然后倒序,能查出 最高价商品,user_id 默认降序排列,先看到新用户
limit 100
# 指定排序方向
SELECT item_id, user_id, PID, unit_price
FROM item
ORDERBY4desc ,2 -- 先按 unit_price 排序,然后倒序,能查出 最高价商品,user_id 默认升序排列 asc ,先看到老用户
limit 100
过滤 -- WHERE
where子句操作符说明=等于<>不等于!=不等于<=小于等于!<不小于>=大于等于!>不大于BETWEEN在指定的两个值之间IS NULL为空值
# 过滤
SELECT item_id, user_id, PID, unit_price
FROM item
WHERE user_id =2252365
ORDERBY4desc --按照价格降序排列
limit 100
# 高级过滤数据 -- AND
SELECT item_id, user_id, PID, unit_price
FROM item
WHERE user_id =2252365AND unit_price <10000 -- 用户购买<1w日元的商品
ORDERBY4desc
limit 100
# 高级过滤数据据 -- or
SELECT item_id, user_id, PID, unit_price
FROM item
WHERE user_id =2252365or unit_price <10000 -- 用户购买>1w日元的商品
ORDERBY4desc
limit 100
# 高级过滤数据据 -- in
SELECT item_id, user_id, PID, unit_price
FROM item
WHERE user_id in (2252365 , 2226146) -- 查两个用户购物记录
ORDERBY4desc
limit 100
# 高级过滤数据据 -- or
SELECT item_id, user_id, PID, unit_price
FROM item
WHERE user_id =2252365OR user_id =2226146 -- 查两个用户购物记录
ORDERBY4desc
limit 100
为什么要使用 IN 操作符?其优点如下。
- 在有很多合法选项时,IN 操作符的语法更清楚,更直观。
- 在与其他 AND 和 OR 操作符组合使用 IN 时,求值顺序更容易管理。
- IN 操作符一般比一组 OR 操作符执行得更快(在上面这个合法选项很少的例子中,你看不出性能差异)。
- IN 的最大优点是可以包含其他 SELECT 语句,能够更动态地建立 WHERE 子句。
# 使用 not in,数字用英文 () 即可
# 高级过滤数据据 -- not in
SELECT item_id, user_id, PID, unit_price
FROM item
WHERE user_id NOTIN (2252365,2226146) -- 查除了这两个用户,其余所有用户的购物记录
ORDERBY4desc
limit 100
# 使用 <>,数字要用英文引号隔开
# 高级过滤数据据 -- <>
SELECT item_id, user_id, PID, unit_price
FROM item
WHERE user_id <> "2252365" "2226146" -- 查除了这两个用户,其余所有用户的购物记录
ORDERBY4desc
limit 100
如果你看到很感兴趣,想看看我在数据库查到的数据,或者你在写的过程中,遇到什么问题,可以私信我,一起讨论~
猜你喜欢
- 2025-09-03 数据库教程-SQL Server多条件模糊查询
- 2025-09-03 数据库教程-SQL Server海量数据的快速存储
- 2025-09-03 数据库教程-SQL Server数据字典查询及导出
- 2025-09-03 利用VBA+SQL查询Excel工作表数据(基本查询)
- 2025-09-03 紫金桥组态软件基于内置SQL查询历史数据的方法
- 2025-09-03 【开源推荐】SQL 审核查询平台Archery v1.7.9 发布,数据可归档
- 2025-09-03 SQL - 通过TSQL代码方式进行简单的数据查询 153
- 2025-09-03 利用VBA+SQL查询Excel工作表数据(分组查询)
- 2025-09-03 这才是数据分析全流程,而不是跑个SQL
- 2025-09-03 见过最惊艳的 SQL 查询语句是什么?揭秘高效查询的奥秘
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)