MySql_基础练习

-- 创建商品表
CREATE TABLE product(
    pid INT PRIMARY KEY AUTO_INCREMENT,
    pname VARCHAR(30),
    price DOUBLE

);
INSERT INTO product(pid,pname,price) VALUES(1,'联想',5000);
INSERT INTO product(pid,pname,price) VALUES(2,'海尔',3000);
INSERT INTO product(pid,pname,price) VALUES(3,'雷神',5000);

INSERT INTO product(pid,pname,price) VALUES(4,'JACK JONES',800);
INSERT INTO product(pid,pname,price) VALUES(5,'真维斯',200);
INSERT INTO product(pid,pname,price) VALUES(6,'花花公子',440);
INSERT INTO product(pid,pname,price) VALUES(7,'劲霸',2000);

INSERT INTO product(pid,pname,price) VALUES(8,'香奈儿',800);
INSERT INTO product(pid,pname,price) VALUES(9,'相宜本草',200);
INSERT INTO product(pid,pname,price) VALUES(10,'面霸',5);

INSERT INTO product(pid,pname,price) VALUES(11,'好想你枣',56);
INSERT INTO product(pid,pname,price) VALUES(12,'香飘飘奶茶',1);

INSERT INTO product(pid,pname,price) VALUES(13,'果9',1);

-- 查看表
SELECT * FROM product;

-- 查询product表的商品名称和商品价格

SELECT pname,price FROM product;

/*
    格式三:过滤重复的数据
        select distinct 字段 from 表名;
    注意:
            distinct后边只能过滤一个字段
*/

SELECT DISTINCT price FROM product;

-- 给product表起别名,叫商品表

SELECT pid 商品号,pname 商品名称,price 商品价格 FROM product AS 商品表;


-- 查询商品名称为“花花公子”的商品所有信息

SELECT * FROM product WHERE pname="花花公子";

-- 查询价格为800商品

SELECT * FROM product WHERE price=800;

-- 查询价格不是800的所有商品

SELECT * FROM product WHERE price != 800;

-- 查询商品价格大于60元的所有商品信息

SELECT * FROM product WHERE price>60;

-- 查询商品价格在200到1000之间所有商品

SELECT * FROM product WHERE price>=200 AND price <=1000;

SELECT * FROM product WHERE price BETWEEN 200 AND 1000; -- 使用between ...  and  语句 可以查询日期之间的差

-- 查询商品价格是200或800的所有商品

SELECT * FROM product WHERE price =200 OR price =1000;

-- 查询名称以'香'开头的所有商品

SELECT * FROM product WHERE pname LIKE "香%";

-- 查询名称以'霸'结尾的所有商品

SELECT * FROM product WHERE pname LIKE "%霸";

-- 查询名称含有'霸'字的所有商品

SELECT * FROM product WHERE pname LIKE "%霸%";

-- 查询出名称中是五个字的所有商品

SELECT * FROM product WHERE pname LIKE "_____";


-- 查询名称第二个字为'想'的所有商品

SELECT * FROM product WHERE pname LIKE "_想%";

-- 查询商品名称是null的值

SELECT * FROM product WHERE pname IS NULL;

-- 查询商品名称不是null的值

SELECT * FROM product WHERE pname IS NOT NULL;

-- 查询product表中所有数据,使用价格排序(升序)

SELECT * FROM product  ORDER BY price ASC;


-- 查询product表中所有数据,使用价格排序(降序)

SELECT * FROM product ORDER BY price DESC;

-- 查询product表中商品价格大于1000的所有数据,使用价格排序(降序)

SELECT * FROM product WHERE price > 1000 ORDER BY price DESC;

-- 显示商品的价格(去重复),并排序(降序)

SELECT DISTINCT price FROM product ORDER BY price DESC;

-- 查询product表中所有数据,使用商品名称排序(编码表的顺序)

SELECT * FROM product ORDER BY pname ASC;

-- 查询商品的总条数

SELECT COUNT(*) FROM product;

-- 查询价格大于200商品的总条数

SELECT COUNT(*) FROM product WHERE price >200;

-- 对商品表查询,对所有的金额求和计算

SELECT SUM(price) FROM product;

-- 如果指定列类型不是数值类型,那么计算结果为0;

SELECT SUM(pname) FROM product;

-- 对商品表查询,对所有的金额计算平均值

SELECT AVG(price) FROM product;

-- 统计出商品表中价钱的最大与最小值

SELECT MAX(price) 最大值,MIN(price) 最小值 FROM product;
/*
    分组查询语句:使用关键字 group by[having 条件过滤]
    格式:
        select 被分组的字段,... from 表名 group by 被分组的字段 [having 条件过滤];
    
    注意:
        被分组的字段,一般都写在select后边,方便查看结果
        
    执行流程:
        先条件过滤 where
        先分组 group by
        在查询 select 字段
        having 再次对查询的结果进行条件过滤    
*/
/*
需求:
        统计所有商品名字相同的商品,进行分组求和计算
*/

SELECT pname,SUM(price) FROM product GROUP BY pname;


-- 分组求和后的数据只显示1000以上的

SELECT pname,SUM(price) FROM product WHERE price>1000 GROUP BY pname;


-- 分组求和后的数据只显示2000以上的


SELECT pname,SUM(price) FROM product GROUP BY pname HAVING SUM(price)>2000;


-- 统计所有商品名字相同的商品,进行分组计算每组数据的个数

SELECT pname,COUNT(*) FROM product GROUP BY pname;

/*
    分页查询:使用关键字 limit
    格式:
        limit m n
        m:可以变化的,每页数据的开始行数
        n:固定不变的,每页显示行的个数
    数据库中:
            行的开始索引是0,第0行,第1行....
            列的开始索引的1,第1列....
*/

-- 对商品表的数据进行查询,只要前5条数据
-- 查询第1页的数据
SELECT * FROM product LIMIT 0,5;
-- 查询第2页的数据
SELECT * FROM product LIMIT 5,5;
-- 查询第3页的数据
SELECT * FROM product LIMIT 10,5;












  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值