鱼C论坛

 找回密码
 立即注册
查看: 936|回复: 2

[学习笔记] MySQL学习笔记DML部分(一)(二)(b站自学Mosh老师持续更新中)

[复制链接]
发表于 2023-2-17 21:38:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yukari123 于 2023-2-20 11:44 编辑

DAY1:
  1. SELECT * --
  2. -- FROM customers
  3. -- where customer_id=1
  4. -- order by first_name
复制代码



SELECT子句--选择指定列
加AS 新列名可以改名称
  1. SELECT DISTINCT state
  2. FROM sql_store.customers;
复制代码

命令根据指定属性去除重复
例如:
  1. SELECT name,unit_price,unit_price*1.1 AS 'new price'
  2. FROM sql_store.products;
复制代码





                               
登录/注册后可看大图



WHERE子句--条件语句
运算符有:>=<!AND,OR,NOT
  1. 例如
  2. SELECT * FROM sql_store.order_items
  3. WHERE order_id=6 AND unit_price*quantity >30
复制代码


IN 运算符:可以缩短语句,以下两个表达相等
  1. WHERE id=6 AND id=8 AND id=0
  2. WHERE  id IN(6,8,0)
复制代码


between and 运算符:和c一样,包含子集[]
LIKE运算符:%代表任意长短字符,_代表任意一个字符长度的字符

REGEXP运算符:正则表达式,^abc表示字符串的开头,abc$表示字符串结尾,a|b|c表示或者
'[gim]e'表示对应ge,ie,me也可以使用范围'[a-h]e'

IS NULL运算符: 查询列表的空值
  1. SELECT * FROM sql_store.orders
  2. WHERE shipped_date IS NULL
复制代码



                               
登录/注册后可看大图


ORDER BY 子句--数据排序
DESC 表示降序
  1. SELECT * FROM sql_store.customers
  2. ORDER BY first_name DESC -- 倒序
  3. ORDER BY state,first_name --多选排序
复制代码

也可以这么写,但最好不要,影响独立性
  1. SELECT state,first_name
  2. FROM sql_store.customers
  3. ORDER BY 1,2
复制代码



                               
登录/注册后可看大图

LIMI子句
limit 3表示取前三行
  1. SELECT *
  2. FROM sql_store.customers
  3. LIMIT 6,3 -- 表示跳过前六行数据显示三行数据
复制代码



                               
登录/注册后可看大图

DAY 2
在多张表中检索:
内连接 INNER JOIN
  1. SELECT order_id,orders.customer_id,first_name,last_name
  2. FROM orders
  3. INNER JOIN customers
  4. ON orders.customer_id = customers.customer_id -- INNER可以省略
复制代码

也可以这么简写
  1. SELECT order_id,o.customer_id,first_name,last_name
  2. FROM orders AS o -- AS可以省略
  3. INNER JOIN customers c
  4. ON o.customer_id = c.customer_id
复制代码


跨数据库连接
关键词和内连接一样,需要注意 数据库.表名

自连接
和上面基本相同,需要注意的是要取不同的别名,还要给每列都加个别名
  1. SELECT
  2.         e.employee_id,
  3.     e.first_name,
  4.     m.first_name AS manger
  5. FROM employees e
  6. JOIN employees m
  7.         ON e.reports_to=m.employee_id
复制代码


多表连接
  1. SELECT
  2.         o.order_id,
  3.     c.first_name,
  4.     os.name AS status
  5. FROM orders o
  6. JOIN customers c
  7.         ON o.customer_id=c.customer_id
  8. JOIN order_statuses os
  9.         ON o.status=os.order_status_id
  10. ....
  11. ....
复制代码
  1. SELECT
  2.         c.name,
  3.     pm.name payment_method
  4.    
  5. FROM payments p
  6. JOIN payment_methods pm
  7.         ON p.payment_method=pm.payment_method_id
  8. JOIN clients c
  9.         ON p.client_id=c.client_id
复制代码


复合连接条件
使用多个条件连接两个表格,语法是
  1. SELECT
  2.         *
  3. FROM
  4. JOIN
  5.         ON
  6.         AND
复制代码

外连接
LEFT [OUTER] JOIN 表示join左边的表记录全部返回
RIGHT [OUTER] JOIN 表示join右边的标记录全部返回

多表外连接
  1. SELECT
  2.         o.order_date,
  3.     o.order_id,
  4.     c.first_name,
  5.     s.name shipper,
  6.     os.name status
  7. FROM orders o
  8. JOIN customers c
  9.         ON o.customer_id=c.customer_id
  10. LEFT JOIN shippers s
  11.         ON o.shipper_id=s.shipper_id
  12. JOIN order_statuses os
  13.         ON o.status=os.order_status_id
复制代码


using子句
  1. FROM orders o
  2. JOIN customers c
  3.         ON -- o.customer_id=c.customer_id
  4.                 USING(customer_id) --可以代替上句简化语句
复制代码


自然连接
不加on 后面系统自动识别相同的值,但这种方法不受人为控制不推荐使用

交叉连接
只是组合没有意义
  1. 隐性连接
  2. SELECT s.name shipper,p.name product
  3. FROM shippers s,products p
复制代码
  1. 显性连接
  2. SELECT s.name shipper,p.name product
  3. FROM shippers s
  4. CROSS JOIN products p
复制代码


联合
将两列不同条件的连接到一起
  1. SELECT
  2. ...
  3. ...
  4. '白银' type
  5. FROM
  6. WHERE 条件
  7. UNION
  8. SELECT
  9. ...
  10. ...
  11. '黄金' type
  12. FROM
  13. WHERE
复制代码

评分

参与人数 3荣誉 +5 鱼币 +1 贡献 +1 收起 理由
liuhongrun2022 + 5 无条件支持楼主!
sfqxx + 1
学习编程中的Ben + 1 正好在学!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-2-17 21:39:43 | 显示全部楼层
顶顶顶~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-20 17:21:11 | 显示全部楼层

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-19 04:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表