1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| select [distinct] [*] [列名,列名2] from 表名 [where 条件]
--商品分类 1.分类的ID 2.分类名称 3.分类描述
create table category( cid int primary key auto_increment, cname varchar(10), cdesc varchar(20), );
insert into category values (null,'手机','电子产品'), (null,'电脑','科技产品'), (null,'鞋靴箱包','日用品'), (null,'瓜子花生','吃喝'), (null,'汉堡鸡腿','KFC');
select * from category; select cid,cname from category;
--所有商品 create table product( pid int primary key auto_increment, pname varchar(10), price double, pdata timestamp, cno int );
insert into product values(null,'小米',1998,null,1); insert into product values(null,'锤子',2958,null,1); insert into product values(null,'阿迪达斯',222,null,2); insert into product values(null,'粗粮王',25,null,3); insert into product values(null,'劲酒',99,null,3); insert into product values(null,'小熊饼干',7,null,4); insert into product values(null,'旺旺小饼',11,null,5); insert into product values(null,'哇哈哈',21,null,6); insert into product values(null,'卫龙辣条',13,null,6); insert into product values(null,'杯子',87,null,7);
--简单查询: --查询所有的商品 select * from product; --查询商品名称和商品价格 select prince,pname from product; --别名查询 as的关键字, as 关键字可以省略 --表别名 select p.name,p.price from product p;(主要用于多表查询) select p.name,p.price from product as p; --列别名 select pname as 商品名称,prince as 商品价格 from product; select pname as 商品名字,price as 商品价格 from product; 省略as关键字 select pname 商品名字,price 商品价格 from product; --去掉重复的值 --查询商品所有的价格; select price from product; select distinct price from product; --select运算查询 select *,price*1.5 from product; select *,price*0.8 as 折后价 from product; --条件查询 [where关键字] 指定条件,确定要操作的记录 --where后的条件写法 --关系运算符 : > >= < <= = != <> <> : 不等于 : 标准SQL语法 != : 不等于 : 非标准语法 --查询商品价格不等于222的其他商品 select * from product where price <> 222; select * from product where price != 222; --查询商品价格在30到100之间 select * from product where price >30 and price<100; select * from product where price between 30 and 100; --逻辑运算符:and or not --查询商品价格小于100 或者商品价格大于900 select * from product where price<100 or price >900;
--查询商品价格大于60的所有商品信息 select * from product where price > 60; --like : 模糊查询 _ :代表一个字符 % :代表多个字符 --查询出名字中带有小的所有商品 '%小%' select * from product where pname like '%小%'; --查询第二个字带子的所有商品 select * from product where pname like '_子';
--in 在某个范围中获得值 --查询出商品分类ID在1,4,5里面的所有商品 select * from product where cno in (1,3,4);
--排序查询:order by 关键字 asc : ascend 升序 (默认的排序方式) desc : descent 降序 --0.查询所有商品,按照价格进行排序 select * from product order by price; --1.查询所有商品,按照价格进行降序 select * from product order by price desc; --2.查询名称有小的商品,按价格升序 select * from product where pname like '%小%'; select * from product where pname like '%小%' order by price asc;
--聚合函数 sum() : 求和 avg() : 求平均值 count() : 统计数量 max() : 最大值 min() : 最小值 --1.获得所有商品价格的总和 select sum(price) from product; --2.获得所有商品的平均价格 select avg(price) from product; --3.获得所有商品的个数 select count(price) from product; **where条件后面不能接聚合函数**
--分组:group by --1.根据cno字段分组,分组后统计商品的个数 select cno,count(*) from product group by cno; --2.根据cno字段分组,分组后统计每组商品的平均价格并且商品平均价格>60; select cno,avg(price) from product group by cno having avg(price) > 60; --having 关键字 可以接聚合函数的 出现在分组之后 --where 关键字 不可以接聚合函数 出现在分组之前 --编写顺序 S..F..W..G..H..O select..from..where..group by..having..order by
--执行顺序 F..W..G..H..S..O from..where..group by..having..select..order by
|