No.6 sql数据库的进阶命令
五、查询_数据准备
#创建db1数据库
CREATE DATABASE db1;
#使用db1数据库
USE db1;
#创建数据表
CREATE TABLE product(
id INT, #商品编号
NAME VARCHAR(20), #商品名称
price DOUBLE, #商品价格
brand VARCHAR(10), #商品品牌
stock INT, #商品库存
insert_time DATE #添加时间
);
#添加数据
INSERT INTO product VALUES
(1,'华为手机',3999,'华为',23,'2088-03-10'),
(2,'小米手机',2999,'小米',30,'2088-05-15'),
(3,'苹果手机',5999,'苹果',18,'2088-08-20'),
(4,'华为电脑',6999,'华为',14,'2088-06-16'),
(5,'小米电脑',4999,'小米',26,'2088-07-08'),
(6,'苹果电脑',8999,'苹果',15,'2088-10-25'),
(7,'联想电脑',7999,'联想',NULL,'2088-11-11');
六、查询_查询全部
1、查询全部数据
标准语法: SELECT * FROM 表名;
#查询product表所有数据
SELECT * FROM product;
2、查询指定列
标准语法: SELECT 列名1,列名2,... FROM 表名;
#查询名称、价格、品牌
SELECT NAME,price,brand FROM product;
3、去除重复查询
标准语法: SELECT DISTINCT 列名1,列名2,... FROM 表名;
#查询品牌
SELECT brand FROM product;
#查询品牌,去除重复
SELECT DISTINCT brand FROM product;
4、计算列的值
标准语法: SELECT 列名1 运算符(+ - * /) 列名2 FROM 表名;
如果某一列为null,可以进行替换
ifnull(表达式1,表达式2)
表达式1:想替换的列
表达式2:想替换的值
#查询商品名称和库存,库存数量在原有基础上加10
SELECT NAME,stock+10 FROM product;
#查询商品名称和库存,库存数量在原有基础上加10。进行null值判断
SELECT NAME,IFNULL(stock,0)+10 FROM product;
5、起别名
标准语法: SELECT 列名1,列名2,... AS 别名 FROM 表名;
#查询商品名称和库存,库存数量在原有基础上加10。进行null值判断。起别名为getSum
SELECT NAME,IFNULL(stock,0)+10 AS getSum FROM product;
SELECT NAME,IFNULL(stock,0)+10 getSum FROM product;
七、查询_条件查询
1、条件查询
标准语法: SELECT 列名列表 FROM 表名 WHERE 条件;
#查询库存大于20的商品信息
SELECT * FROM product WHERE stock > 20;
#查询品牌为华为的商品信息
SELECT * FROM product WHERE brand='华为';
#查询金额在4000 ~ 6000之间的商品信息
SELECT * FROM product WHERE price >= 4000 AND price <= 6000;
SELECT * FROM product WHERE price BETWEEN 4000 AND 6000;
#查询库存为14、30、23的商品信息
SELECT * FROM product WHERE stock=14 OR stock=30 OR stock=23;
SELECT * FROM product WHERE stock IN(14,30,23);
#查询库存为null的商品信息
SELECT * FROM product WHERE stock IS NULL;
#查询库存不为null的商品信息
SELECT * FROM product WHERE stock IS NOT NULL;
#查询名称以小米为开头的商品信息
SELECT * FROM product WHERE NAME LIKE '小米%';
#查询名称第二个字是为的商品信息
SELECT * FROM product WHERE NAME LIKE '_为%';
#查询名称为四个字符的商品信息
SELECT * FROM product WHERE NAME LIKE '';
#查询名称中包含电脑的商品信息
SELECT * FROM product WHERE NAME LIKE '%电脑%';
八、查询_聚合函数
1、聚合函数
标准语法: SELECT 函数名(列名) FROM 表名 [WHERE 条件];
#计算product表中总记录条数
SELECT COUNT(*) FROM product;
#获取最高价格
SELECT MAX(price) FROM product;
#获取最低库存
SELECT MIN(stock) FROM product;
#获取总库存数量
SELECT SUM(stock) FROM product;
#获取品牌为苹果的总库存数量
SELECT SUM(stock) FROM product WHERE brand='苹果';
#获取品牌为小米的平均商品价格
SELECT AVG(price) FROM product WHERE brand='小米';
九、查询_排序查询
1、排序查询
标准语法:
SELECT 列名 FROM 表名 [WHERE 条件] ORDER BY 列名1 排序方式1,列名2 排序方式2;
#按照库存升序排序
SELECT * FROM product ORDER BY stock ASC;
#查询名称中包含手机的商品信息。按照金额降序排序
SELECT * FROM product WHERE NAME LIKE '%手机%' ORDER BY price DESC;
#按照金额升序排序,如果金额相同,按照库存降序排列
SELECT * FROM product ORDER BY price ASC,stock DESC;
十、查询_分组查询
1、分组查询
标准语法: