【SQL】MySQL快速入门系列2

【SQL】MySQL快速入门系列2

介绍MySQL的基础操作

基础概念

  • 书写顺序
SELECT [DISTINCT]
FROM
JOIN [LEFT JOIN/RIGHT JOIN]
ON
WHERE
GROUP BY
HAVING
UNION
ORDER BY
LIMIT
  • 执行顺序
FROM
ON
JOIN
WHERE
GROUP BY
HAVING
SELECT [DISTINCT]
UNION
ORDER BY
LIMIT
  • ERD(实体关系模型)

表格Product

PK(主键): product_id

product_id product_name product_type sale_price purchase_price regist_date
0001 T恤衫 衣服 1000 500 2009-09-20
0002 打孔器 办公用品 500 320 2009-09-11
0003 运动T恤 衣服 4000 2800 2009-09-20
0004 菜刀 厨房用具 3000 2800 2009-01-15
0005 高压锅 厨房用具 6800 5000 2009-09-20
0006 叉子 厨房用具 500 450 2008-04-28
0007 擦菜板 厨房用具 880 790 2008-05-18
0008 圆珠笔 办公用品 100 75 2009-11-11

SELECT基础语句

[]表示可以添加或省略的内容

  1. 语法规则
-- 部分列(AS为别名)
SELECT product_id [AS id], product_name [AS name]
FROM Product;

-- 部分列(常数)
SELECT product_id [AS id], product_name [AS name], '2020-02-02' AS date
FROM Product;

-- 所有列
SELECT *
FROM Product;

-- 非重复行
SELECT DISTINCT product_id, product_type
FROM Product;

-- 限制结果
SELECT product_id, product_name
FROM Product
LIMIT 3;

-- 排序结果
SELECT product_id, product_name
FROM Product
ORDER BY product_id [, product_name [DESC/ASC]];

-- 过滤数据(比较和算数运算符)
SELECT product_id, sale_price
FROM Product
WHERE sale_price [[+-*/] 2] >[>=, <, <=, =, <>,] 520;

-- 过滤数据(逻辑运算符)
SELECT product_id, sale_price, product_type
FROM Product
WHERE [NOT] sale_price > 520
[AND, OR] product_type = '办公用品';
  1. 举例
-- 从Product表中取出“编号(product_id)和商品名称(product_name)”的商品
SELECT product_id AS id, product_name AS name
FROM Product;

-- 从Product表中取出“编号(product_id)、商品名称(product_name)和设置常数日期”的商品
SELECT product_id AS id, product_name AS name, '2020-02-02' AS date
FROM Product;

-- 从Product表中取出商品的所有信息
SELECT *
FROM product;

-- 从Product表中取出“编号(product_id)和商品名称(product_name)”的商品,不包含重复的数据
SELECT DISTINCT product_id AS id, product_name AS name
FROM Product;

-- 从Product表中取出“编号(product_id)和商品名称(product_name)”的商品,保留三行数据
SELECT product_id AS id, product_name AS name
FROM Product
LIMIT 3;

-- 从Product表中取出“编号(product_id)和商品名称(product_name)”的商品,按编号(product_id)降序排列
SELECT product_id AS id, product_name AS name
FROM Product
ORDER BY product_id DESC;

-- 从Product表中取出“2倍销售价格(sale_price)大于520”的商品
SELECT product_id, sale_price
FROM Product
WHERE sale_price * 2 > 520;

-- 从Product表中取出“2倍销售价格(sale_price)大于520且商品种类(product_type)为办公室用品”的商品
SELECT product_id, sale_price
FROM Product
WHERE sale_price * 2 > 520
AND product_type = '办公用品';

参考

  1. Forta, B., & 刘晓霞钟鸣. MySQL 必知必会. 人民邮电出版社, 2009.
  2. Mick. SQL基础教程2. 人民邮电出版社, 2017.
  3. Mick. SQL进阶教程. 人民邮电出版社, 2017.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章