第二章:基础查询与排序
1.1 SELECT语句基础
语法
SELECT <列名>,
FROM <表名>;
例子
-- 想要查询出全部列
SELECT *
FROM product;
-- SQL语句可以使用AS关键字为列设定别名(用中文时需要双引号(“”))。
SELECT product_id As id,
product_name As name,
purchase_price AS "进货单价"
FROM product;
-- 使用DISTINCT删除product_type列中重复的数据
SELECT DISTINCT product_type
FROM product;
+--------------+
| product_type |
+--------------+
| 衣服 |
| 办公用品 |
| 厨房用具 |
+--------------+
3 rows in set (0.01 sec)
1.2 WHERE语句基础
目的:给查询限定条件
语法
SELECT <列名>, ……
FROM <表名>
WHERE <条件表达式>;
条件列和输出列可以相同,也可以不同
-- 用来选取product type列为衣服的记录的SELECT语句
SELECT product_name, product_type
FROM product
WHERE product_type = '衣服';
-- 也可以选取出不是查询条件的列(条件列与输出列不同)
SELECT product_name
FROM product
WHERE product_type = '衣服';
1.3 算术运算符和比较运算符
1.3.1 算术运算符
含义 | 运算符 |
---|---|
加法 | + |
减法 | - |
乘法 | * |
除法 | / |
1.3.2比较运算符
含义 | 运算符 |
---|---|
等于 | = |
不等于 | <> |
大于等于 | >= |
大于 | > |
小于等于 | <= |
小于 | < |
注意:希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符。
例子
-- SQL语句中也可以使用运算表达式
SELECT product_name, sale_price, sale_price * 2 AS "sale_price x2"
FROM product;
-- WHERE子句的条件表达式中也可以使用计算表达式
SELECT product_name, sale_price, purchase_price
FROM product
WHERE sale_price-purchase_price >= 500;
/* 对字符串使用不等号
首先创建chars并插入数据
选取出大于‘2’的SELECT语句*/
-- DDL:创建表
CREATE TABLE chars
(chr CHAR(3)NOT NULL,
PRIMARY KEY(chr));
-- 选取出大于'2'的数据的SELECT语句('2'为字符串)
SELECT chr
FROM chars
WHERE chr > '2';
-- 选取NULL的记录
SELECT product_name, purchase_price
FROM product
WHERE purchase_price IS NULL;
-- 选取不为NULL的记录
SELECT product_name, purchase_price
FROM product
WHERE purchase_price IS NOT NULL;
1.4 逻辑运算符
1.4.1 NOT运算符
注意not的位置
-- 向代码清单2-30的查询条件中添加NOT运算符
SELECT product_name, product_type, sale_price
FROM product
WHERE NOT sale_price >= 1000;
1.4.2 AND运算符和OR运算符
使用规则
1.AND 相当于“并且”,类似数学中的取交集;OR 相当于“或者”,类似数学中的取并集
2.通过括号优先处理
例子:
-- 通过使用括号让OR运算符先于AND运算符执行
SELECT<