mysql续型_mysql续集(查询部分)

mysql> select goods_name,goods_id, concat("HTC",substring(goods_name,4)) as name from goods where goods_name like "诺基亚%";+----------------------------------------+----------+----------------------------------+

| goods_name | goods_id | name |

+----------------------------------------+----------+----------------------------------+

| 诺基亚n85原装充电器 | 4 | HTCn85原装充电器 |

| 诺基亚原装5800耳机 | 3 | HTC原装5800耳机 |

| 诺基亚n85原装立体声耳机hs-82 | 7 | HTCn85原装立体声耳机hs-82 |

| 诺基亚e66 | 9 | HTCe66 |

| 诺基亚5320 xpressmusic | 13 | HTC5320 xpressmusic |

| 诺基亚5800xm | 14 | HTC5800xm |

| 诺基亚n96 | 23 | HTCn96 |

| 诺基亚n85 | 32 | HTCn85 |

+----------------------------------------+----------+----------------------------------+

8 rows in set (0.00sec)

mysql> select * frommian->;+------+

| num |

+------+

| 3 |

| 12 |

| 15 |

| 20 |

| 20 |

| 20 |

| 30 |

| 30 |

| 30 |

+------+

9 rows in set (0.00sec)

mysql>#取出第三个栏目下价格小于1000或者大于3000 同时点击量大于5的商品

mysql> select goods_id ,goods_name, shop_price,cat_id,click_count from goods where cat_id=3 and (shop_price<1000 || shop_price>3000) and click_count >=5;+----------+-------------------+------------+--------+-------------+

| goods_id | goods_name | shop_price | cat_id | click_count |

+----------+-------------------+------------+--------+-------------+

| 8 | 飞利浦9@9v | 399.00 | 3 | 10 |

| 12 | 摩托罗拉a810 | 983.00 | 3 | 13 |

| 15 | 摩托罗拉a810 | 788.00 | 3 | 8 |

| 19 | 三星sgh-f258 | 858.00 | 3 | 7 |

| 20 | 三星bc01 | 280.00 | 3 | 14 |

| 22 | 多普达touch hd | 5999.00 | 3 | 16 |

| 32 | 诺基亚n85 | 3010.00 | 3 | 9 |

+----------+-------------------+------------+--------+-------------+

7 rows in set (0.00sec)

mysql>#最贵的商品的价格

mysql> select max(shop_price) fromgoods;+-----------------+

| max(shop_price) |

+-----------------+

| 5999.00 |

+-----------------+

1 row in set (0.06sec)

mysql>#查询最便宜的商品的价格

mysql> select min(shop_price) fromgoods ;+-----------------+

| min(shop_price) |

+-----------------+

| 18.00 |

+-----------------+

1 row in set (0.00sec)

mysql>#查出最旧的商品

mysql> select min(goods_id) fromgoods;+---------------+

| min(goods_id) |

+---------------+

| 1 |

+---------------+

1 row in set (0.10sec)

mysql>#goods_number是库存量

mysql> select sum(goods_number) fromgoods->;+-------------------+

| sum(goods_number) |

+-------------------+

| 313 |

+-------------------+

1 row in set (0.00sec)

mysql>#查看自己店里的商品的平均价格

mysql> select avg(shop_price) fromgoods;+-----------------+

| avg(shop_price) |

+-----------------+

| 1232.526774 |

+-----------------+

1 row in set (0.00sec)

mysql>#统计多少种商品

mysql> select count(*) fromgoods;+----------+

| count(*) |

+----------+

| 31 |

+----------+

1 row in set (0.00sec)

mysql>show tables;+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| girl |

| goods |

| m |

| mian |

| result |

| t |

| user |

+------------------+

11 rows in set (0.17sec)

mysql> select * fromt;+------+--------------+

| tid | tname |

+------+--------------+

| 1 | 国安 |

| 2 | 申花 |

| 3 | 布尔联队 |

+------+--------------+

3 rows in set (0.06sec)

mysql> #select count(*) from表名,表示查询的是绝对的行数,哪怕某一行所有字段全为null的时候也能计算在内,

mysql> #而select count(字段) from表名 查询的是该列不为null的所有行的行数

mysql> #用count(*)和count(1) 那个好,对于myisamm的表咩有区别,这种引擎计数器在维护,innodb的用count(*))直接读行数,效率很低

mysql>#计算第三个栏目下所有商品的库存量之和

mysql> select sum(goods_number) from goods where cat_id =3;+-------------------+

| sum(goods_number) |

+-------------------+

| 203 |

+-------------------+

1 row in set (0.00sec)

mysql>#计算每个栏目下的库存量之和

mysql> select cat_id, sum(goods_number) from goods group bycat_id ;+--------+-------------------+

| cat_id | sum(goods_number) |

+--------+-------------------+

| 4 | 3 |

| 8 | 61 |

| 11 | 23 |

| 3 | 203 |

| 2 | 0 |

| 5 | 8 |

| 13 | 4 |

| 15 | 2 |

| 14 | 9 |

+--------+-------------------+

9 rows in set (0.05sec)

mysql> #having筛选

mysql>#查询每种商品积压的货款

mysql>show databases;+--------------------+

| Database |

+--------------------+

| bookstore |

| clouddb01 |

| clouddb02 |

| clouddb03 |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| shop |

| ssm_crud |

| struts |

| student |

| sys |

| test |

| test01 |

+--------------------+

15 rows in set (0.00sec)

mysql>#查询每种商品积压的货款

mysql> select market_price,shop_price, market_price-shop_price as discount from goods where 1 having discount >200;

ERROR1046 (3D000): No databaseselected

mysql> usetest01;Databasechanged

mysql>#查询每种商品积压的货款

mysql> #提示: 商品的库存量*价格

mysql> select goods_id ,shop_price,goods_number*shop_price as hk fromgoods;+----------+------------+-----------+

| goods_id | shop_price | hk |

+----------+------------+-----------+

| 1 | 1388.00 | 1388.00 |

| 4 | 58.00 | 986.00 |

| 3 | 68.00 | 1632.00 |

| 5 | 20.00 | 160.00 |

| 6 | 42.00 | 630.00 |

| 7 | 100.00 | 2000.00 |

| 8 | 399.00 | 399.00 |

| 9 | 2298.00 | 9192.00 |

| 10 | 1328.00 | 9296.00 |

| 11 | 1300.00 | 1300.00 |

| 12 | 983.00 | 7864.00 |

| 13 | 1311.00 | 10488.00 |

| 14 | 2625.00 | 2625.00 |

| 15 | 788.00 | 2364.00 |

| 16 | 823.33 | 0.00 |

| 17 | 2300.00 | 2300.00 |

| 18 | 2878.00 | 2878.00 |

| 19 | 858.00 | 10296.00 |

| 20 | 280.00 | 3360.00 |

| 21 | 2000.00 | 80000.00 |

| 22 | 5999.00 | 5999.00 |

| 23 | 3700.00 | 29600.00 |

| 24 | 2000.00 | 200000.00 |

| 25 | 48.00 | 96.00 |

| 26 | 19.00 | 38.00 |

| 27 | 95.00 | 190.00 |

| 28 | 45.00 | 0.00 |

| 29 | 90.00 | 0.00 |

| 30 | 18.00 | 162.00 |

| 31 | 1337.00 | 1337.00 |

| 32 | 3010.00 | 12040.00 |

+----------+------------+-----------+

31 rows in set (0.00sec)

mysql>#查询该店积压的总货款

mysql> select goods_number ,sum(goods_number*shop_price) as sum fromgoods;+--------------+-----------+

| goods_number | sum |

+--------------+-----------+

| 1 | 398620.00 |

+--------------+-----------+

1 row in set (0.07sec)

mysql> select sum(goods_number*shop_price) as sum fromgoods;+-----------+

| sum |

+-----------+

| 398620.00 |

+-----------+

1 row in set (0.00sec)

mysql>#查询每个栏目下积压的k货款

mysql> select cat_id, sum(goods_number*shop_price) as sum from goods group bycat_id;+--------+-----------+

| cat_id | sum |

+--------+-----------+

| 4 | 6891.00 |

| 8 | 4618.00 |

| 11 | 790.00 |

| 3 | 356235.00 |

| 2 | 0.00 |

| 5 | 29600.00 |

| 13 | 134.00 |

| 15 | 190.00 |

| 14 | 162.00 |

+--------+-----------+

9 rows in set (0.03sec)

mysql>#查询栏目的积压货款金额,且查出挤压金额超出20000的货款

mysql> select cat_id, sum(goods_number*shop_price) as sum from goods group by cat_id having sum>20000;+--------+-----------+

| cat_id | sum |

+--------+-----------+

| 3 | 356235.00 |

| 5 | 29600.00 |

+--------+-----------+

2 rows in set (0.00sec)

mysql>#查询本店市场价与本店价省的钱,且筛选出省钱200以上的商品

mysql> select goods_name, market_price-shop_price as discount from goods having discount>200;

ERROR1690 (22003): DECIMAL UNSIGNED value is out of range in '(`test01`.`goods`.`market_price` - `test01`.`goods`.`shop_price`)'mysql>show tables;+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| girl |

| goods |

| m |

| mian |

| result |

| t |

| user |

+------------------+

11 rows in set (0.14sec)

mysql> select * fromresult;+--------+---------+-------+

| name | subject | score |

+--------+---------+-------+

| 张三 | 数学 | 90 |

| 张三 | 语文 | 50 |

| 张三 | 地理 | 40 |

| 李四 | 语文 | 55 |

| 李四 | 政治 | 45 |

| 王五 | 政治 | 30 |

+--------+---------+-------+

6 rows in set (0.07sec)

mysql>#查询出两门及两门以上不及格者的平均成绩

mysql> select avg(score) as average ,subject from result where subject>=2 group by name having average<60;

Emptyset, 6 warnings (0.00sec)

mysql> select avg(score) as average ,subject from result group byname;+---------+---------+

| average | subject |

+---------+---------+

| 60.0000 | 数学 |

| 50.0000 | 语文 |

| 30.0000 | 政治 |

+---------+---------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result group byname;+---------+--------+

| average | name |

+---------+--------+

| 60.0000 | 张三 |

| 50.0000 | 李四 |

| 30.0000 | 王五 |

+---------+--------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result where 1 group byname;+---------+--------+

| average | name |

+---------+--------+

| 60.0000 | 张三 |

| 50.0000 | 李四 |

| 30.0000 | 王五 |

+---------+--------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result where 1 group by name having average<60;+---------+--------+

| average | name |

+---------+--------+

| 50.0000 | 李四 |

| 30.0000 | 王五 |

+---------+--------+

2 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result where score<60 group by name having avg(average) ;

Emptyset (0.00sec)

mysql> select avg(score<60) as average ,name from result where 1 group by name having avg(average) ;

Emptyset (0.00sec)

mysql> select avg(score<60) as average ,name from result where 1 group byname ;+---------+--------+

| average | name |

+---------+--------+

| 0.6667 | 张三 |

| 1.0000 | 李四 |

| 1.0000 | 王五 |

+---------+--------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result where score<60 group byname ;+---------+--------+

| average | name |

+---------+--------+

| 45.0000 | 张三 |

| 50.0000 | 李四 |

| 30.0000 | 王五 |

+---------+--------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result where subject>=2 group byname ;

Emptyset, 6 warnings (0.00sec)

mysql> select avg(score) as average ,name,count(subject) from result where score<60 group byname ;+---------+--------+----------------+

| average | name | count(subject) |

+---------+--------+----------------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

| 30.0000 | 王五 | 1 |

+---------+--------+----------------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name,count(subject) as subject from result where score<60 group by name having subject>=2;+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.00sec)

mysql> select avg(score) as average ,name,count(subject) as subject from result where score<60 group by name having subject>=2 and avg(average);

Emptyset (0.00sec)

mysql> select avg(score) as average ,name,count(subject)>=2 as subject from result where score<60 group by name having avg(average);

Emptyset (0.00sec)

mysql> select avg(score) as average ,name,count(subject) as subject from result where score<60 group by name having subject>=2;+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result where score<60 group byname ;+---------+--------+

| average | name |

+---------+--------+

| 45.0000 | 张三 |

| 50.0000 | 李四 |

| 30.0000 | 王五 |

+---------+--------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name,count(subject) from result where score<60 group byname ;+---------+--------+----------------+

| average | name | count(subject) |

+---------+--------+----------------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

| 30.0000 | 王五 | 1 |

+---------+--------+----------------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name,count(subject)>=2 from result where score<60 group byname ;+---------+--------+-------------------+

| average | name | count(subject)>=2 |

+---------+--------+-------------------+

| 45.0000 | 张三 | 1 |

| 50.0000 | 李四 | 1 |

| 30.0000 | 王五 | 0 |

+---------+--------+-------------------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name,count(subject)>=2 from result where score<60 group byname ;+---------+--------+-------------------+

| average | name | count(subject)>=2 |

+---------+--------+-------------------+

| 45.0000 | 张三 | 1 |

| 50.0000 | 李四 | 1 |

| 30.0000 | 王五 | 0 |

+---------+--------+-------------------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name,count(subject) from result where score<60 group byname ;+---------+--------+----------------+

| average | name | count(subject) |

+---------+--------+----------------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

| 30.0000 | 王五 | 1 |

+---------+--------+----------------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name from result where score<60 and subject>=2 group byname ;

Emptyset, 5 warnings (0.00sec)

mysql> select avg(score) as average ,name, count(subject) from result where score<60 and subject>=2 group byname ;

Emptyset, 5 warnings (0.00sec)

mysql> select avg(score) as average ,name, count(subject) from result where score<60 group byname ;+---------+--------+----------------+

| average | name | count(subject) |

+---------+--------+----------------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

| 30.0000 | 王五 | 1 |

+---------+--------+----------------+

3 rows in set (0.00sec)

mysql> select avg(score) as average ,name, count(subject) as subject from result where score<60 group by name having subject>=2;+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.00sec)

mysql> usetest01Databasechanged

mysql>show tables;+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| girl |

| goods |

| m |

| mian |

| result |

| t |

| user |

+------------------+

11 rows in set (0.42sec)

mysql> select avg(score) as average ,name, count(subject) as subject from result where score<60 group by name having subject>=2;+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.14sec)

mysql> insert into resule values("赵六","语文",100),-> ("赵六","数学",99),-> ("赵六","英语",98);

ERROR1146 (42S02): Table 'test01.resule' doesn't exist

mysql> insert into result values("赵六","语文",100),

-> ("赵六","数学",99),

-> ("赵六","英语",98);

Query OK, 3 rows affected (0.19 sec)

Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from result;

+--------+---------+-------+

| name | subject | score |

+--------+---------+-------+

| 张三 | 数学 | 90 |

| 张三 | 语文 | 50 |

| 张三 | 地理 | 40 |

| 李四 | 语文 | 55 |

| 李四 | 政治 | 45 |

| 王五 | 政治 | 30 |

| 赵六 | 语文 | 100 |

| 赵六 | 数学 | 99 |

| 赵六 | 英语 | 98 |

+--------+---------+-------+

9 rows in set (0.00 sec)

mysql> select avg(score) as average ,name, count(subject) as subject from result where score<60 group by name having subject>=2;

+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 45.0000 | 张三 | 2 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.00 sec)

mysql> insert into result values("张三","英语",34);

Query OK, 1 row affected (0.05 sec)

mysql> select avg(score) as average ,name, count(subject) as subject from result where score<60 group by name having subject>=2;

+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 41.3333 | 张三 | 3 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.00 sec)

mysql> select avg(score) as average ,name, sum(score<60) as subject from result group by name having subject>=2;

+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 53.5000 | 张三 | 3 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.00 sec)

mysql> select avg(score) as average ,name, sum(score<60) as subject from result group by name having subject>=2 order by average;

+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 50.0000 | 李四 | 2 |

| 53.5000 | 张三 | 3 |

+---------+--------+---------+

2 rows in set (0.00 sec)

mysql> select avg(score) as average ,name, sum(score<60) as subject from result group by name having subject>=2 order by desc average;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'desc average'at line 1

mysql> select avg(score) as average ,name, sum(score<60) as subject from result group by name having subject>=2 order by average desc;

+---------+--------+---------+

| average | name | subject |

+---------+--------+---------+

| 53.5000 | 张三 | 3 |

| 50.0000 | 李四 | 2 |

+---------+--------+---------+

2 rows in set (0.00 sec)

mysql> #降序排 order by 列名 desc 降序/asc升序

mysql> select avg(score) as average ,name, sum(score<60) as subject from result group by name having subject>=2 order by add_time asc;

ERROR 1054 (42S22): Unknown column'add_time'in'order clause'mysql> desc goods;

+--------------+------------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------------+------------------------+------+-----+---------+----------------+

| goods_id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |

| goods_name | varchar(120) | NO | | | |

| cat_id | smallint(5) unsigned | NO | | 0 | |

| brand_id | smallint(5) unsigned | NO | | 0 | |

| goods_sn | char(15) | NO | | | |

| goods_number | smallint(5) unsigned | NO | | 0 | |

| shop_price | decimal(10,2) unsigned | NO | | 0.00 | |

| market_price | decimal(10,2) unsigned | NO | | 0.00 | |

| click_count | int(10) unsigned | NO | | 0 | |

+--------------+------------------------+------+-----+---------+----------------+

9 rows in set (0.20 sec)

mysql> select goods_name ,cat_id,goods_id,shop_price from goods order by asc cat_id ,shop_price desc;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'asc cat_id ,shop_price desc'at line 1

mysql> select goods_name ,cat_id,goods_id,shop_price from goods order by cat_id asc ,shop_price desc;

+----------------------------------------+--------+----------+------------+

| goods_name | cat_id | goods_id | shop_price |

+----------------------------------------+--------+----------+------------+

| 恒基伟业g101 | 2 | 16 | 823.33 |

| 多普达touch hd | 3 | 22 | 5999.00 |

| 诺基亚n85 | 3 | 32 | 3010.00 |

| 夏新n7 | 3 | 17 | 2300.00 |

| 诺基亚e66 | 3 | 9 | 2298.00 |

| 金立 a30 | 3 | 21 | 2000.00 |

| p806 | 3 | 24 | 2000.00 |

| 摩托罗拉e8 | 3 | 31 | 1337.00 |

| 索爱c702c | 3 | 10 | 1328.00 |

| 诺基亚5320 xpressmusic | 3 | 13 | 1311.00 |

| 索爱c702c | 3 | 11 | 1300.00 |

| 摩托罗拉a810 | 3 | 12 | 983.00 |

| 三星sgh-f258 | 3 | 19 | 858.00 |

| 摩托罗拉a810 | 3 | 15 | 788.00 |

| 飞利浦9@9v | 3 | 8 | 399.00 |

| 三星bc01 | 3 | 20 | 280.00 |

| 夏新t5 | 4 | 18 | 2878.00 |

| 诺基亚5800xm | 4 | 14 | 2625.00 |

| kd876 | 4 | 1 | 1388.00 |

| 诺基亚n96 | 5 | 23 | 3700.00 |

| 诺基亚n85原装立体声耳机hs-82 | 8 | 7 | 100.00 |

| 诺基亚原装5800耳机 | 8 | 3 | 68.00 |

| 诺基亚n85原装充电器 | 8 | 4 | 58.00 |

| 胜创kingmax内存卡 | 11 | 6 | 42.00 |

| 索爱原装m2卡读卡器 | 11 | 5 | 20.00 |

| 小灵通/固话50元充值卡 | 13 | 25 | 48.00 |

| 小灵通/固话20元充值卡 | 13 | 26 | 19.00 |

| 移动100元充值卡 | 14 | 29 | 90.00 |

| 移动20元充值卡 | 14 | 30 | 18.00 |

| 联通100元充值卡 | 15 | 27 | 95.00 |

| 联通50元充值卡 | 15 | 28 | 45.00 |

+----------------------------------------+--------+----------+------------+

31 rows in set (0.26 sec)

mysql> #多排 用,隔开 order by cat_id asc ,shop_price desc

mysql> exit

mysql> use test01;

Database changed

mysql> #limit 限制条目

mysql> select goods_id,cat_id,goods_name,shop_price from goods where cat_id=3 order by shop_price desc limit 0,3;

+----------+--------+-------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+-------------------+------------+

| 22 | 3 | 多普达touch hd | 5999.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

+----------+--------+-------------------+------------+

3 rows in set (0.01 sec)

mysql> select goods_id,cat_id,goods_name,shop_price from goods where cat_id=3 order by shop_price desc limit 2,2;

+----------+--------+--------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------+------------+

| 17 | 3 | 夏新n7 | 2300.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

+----------+--------+--------------+------------+

2 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name,shop_price from goods where cat_id=3 order by shop_price desc limit 2,3;

+----------+--------+--------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------+------------+

| 17 | 3 | 夏新n7 | 2300.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

+----------+--------+--------------+------------+

3 rows in set (0.00 sec)

mysql> #limit 第一个参数为0可以不写

mysql> #查询出每个栏目下id号最大的一条商品

mysql> select goods_id,cat_id,goods_name,shop_price from goods where 1 group by cat_id order by goods_id desc limit 1;

+----------+--------+-----------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+-----------------------+------------+

| 29 | 14 | 移动100元充值卡 | 90.00 |

+----------+--------+-----------------------+------------+

1 row in set (0.06 sec)

mysql> select goods_id,cat_id,goods_name,shop_price from goods where 1 group by cat_id ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name,shop_price from goods group by cat_id ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select cat_id,goods_name,shop_price from goods group by cat_id ;

+--------+--------------------------------+------------+

| cat_id | goods_name | shop_price |

+--------+--------------------------------+------------+

| 4 | kd876 | 1388.00 |

| 8 | 诺基亚n85原装充电器 | 58.00 |

| 11 | 索爱原装m2卡读卡器 | 20.00 |

| 3 | 飞利浦9@9v | 399.00 |

| 2 | 恒基伟业g101 | 823.33 |

| 5 | 诺基亚n96 | 3700.00 |

| 13 | 小灵通/固话50元充值卡 | 48.00 |

| 15 | 联通100元充值卡 | 95.00 |

| 14 | 移动100元充值卡 | 90.00 |

+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods group by cat_id=3 ;

+----------+--------+---------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+---------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

+----------+--------+---------------+------------+

2 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 24 | 3 | p806 | 2000.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods group by cat_id ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 24 | 3 | p806 | 2000.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 1 | 4 | kd876 | 1388.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc ;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 24 | 3 | p806 | 2000.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 1 | 4 | kd876 | 1388.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods group by cat_id order by cat_id asc ,goods_id desc ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 1 | 4 | kd876 | 1388.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc ;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 24 | 3 | p806 | 2000.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 1 | 4 | kd876 | 1388.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00 sec)

mysql> select * from (select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc) as tem group by cat_id ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.04 sec)

mysql> select * from (select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc) as tem group by cat_id order by cat_id asc ,goods_id desc limit 1 ;

+----------+--------+------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

+----------+--------+------------------+------------+

1 row in set (0.00 sec)

mysql> select * from (select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc) as tem group by cat_id order by cat_id asc ,goods_id desc ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 1 | 4 | kd876 | 1388.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc ;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 24 | 3 | p806 | 2000.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 1 | 4 | kd876 | 1388.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00 sec)

mysql> select * from (select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc) as temp order by cat_id asc ;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 24 | 3 | p806 | 2000.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 1 | 4 | kd876 | 1388.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00 sec)

mysql> select * from (select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc) as temp group by cat_id order by cat_id asc ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 1 | 4 | kd876 | 1388.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select * from (select goods_id, cat_id,goods_name,shop_price from goods order by cat_id asc ,goods_id desc) as temp group by cat_id ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods where cat_id=3 order by goods_id desc limit 1 ;

+----------+--------+--------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------+------------+

| 32 | 3 | 诺基亚n85 | 3010.00 |

+----------+--------+--------------+------------+

1 row in set (0.07 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by goods_id desc limit 1 ;

+----------+--------+--------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------+------------+

| 32 | 3 | 诺基亚n85 | 3010.00 |

+----------+--------+--------------+------------+

1 row in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by goods_id desc limit 1 ;

+----------+--------+--------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------+------------+

| 32 | 3 | 诺基亚n85 | 3010.00 |

+----------+--------+--------------+------------+

1 row in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by goods_id desc ;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 24 | 3 | p806 | 2000.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 1 | 4 | kd876 | 1388.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods group by cat_id order by goods_id desc ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 1 | 4 | kd876 | 1388.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods group by cat_id ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods group by cat_id order by goods_id desc ;

+----------+--------+--------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------------------------+------------+

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 1 | 4 | kd876 | 1388.00 |

+----------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id,goods_name,shop_price from goods order by goods_id desc limit 1 ;

+----------+--------+--------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+--------------+------------+

| 32 | 3 | 诺基亚n85 | 3010.00 |

+----------+--------+--------------+------------+

1 row in set (0.00 sec)

mysql> select max(goods_id), cat_id,goods_name,shop_price from goods order by goods_id desc ;

+---------------+--------+------------+------------+

| max(goods_id) | cat_id | goods_name | shop_price |

+---------------+--------+------------+------------+

| 32 | 4 | kd876 | 1388.00 |

+---------------+--------+------------+------------+

1 row in set (0.06 sec)

mysql> select goods_id ,cat_id ,goods_name from goods

-> ;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 3 | 8 | 诺基亚原装5800耳机 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 6 | 11 | 胜创kingmax内存卡 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 8 | 3 | 飞利浦9@9v |

| 9 | 3 | 诺基亚e66 |

| 10 | 3 | 索爱c702c |

| 11 | 3 | 索爱c702c |

| 12 | 3 | 摩托罗拉a810 |

| 13 | 3 | 诺基亚5320 xpressmusic |

| 14 | 4 | 诺基亚5800xm |

| 15 | 3 | 摩托罗拉a810 |

| 16 | 2 | 恒基伟业g101 |

| 17 | 3 | 夏新n7 |

| 18 | 4 | 夏新t5 |

| 19 | 3 | 三星sgh-f258 |

| 20 | 3 | 三星bc01 |

| 21 | 3 | 金立 a30 |

| 22 | 3 | 多普达touch hd |

| 23 | 5 | 诺基亚n96 |

| 24 | 3 | p806 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 28 | 15 | 联通50元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 31 | 3 | 摩托罗拉e8 |

| 32 | 3 | 诺基亚n85 |

+----------+--------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select max(goods_id), cat_id,goods_name,shop_price from goods group by cat_id ;

+---------------+--------+--------------------------------+------------+

| max(goods_id) | cat_id | goods_name | shop_price |

+---------------+--------+--------------------------------+------------+

| 18 | 4 | kd876 | 1388.00 |

| 7 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 6 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 32 | 3 | 飞利浦9@9v | 399.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 26 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 28 | 15 | 联通100元充值卡 | 95.00 |

| 30 | 14 | 移动100元充值卡 | 90.00 |

+---------------+--------+--------------------------------+------------+

9 rows in set (0.00 sec)

mysql> select max(goods_id), cat_id from goods group by cat_id ;

+---------------+--------+

| max(goods_id) | cat_id |

+---------------+--------+

| 18 | 4 |

| 7 | 8 |

| 6 | 11 |

| 32 | 3 |

| 16 | 2 |

| 23 | 5 |

| 26 | 13 |

| 28 | 15 |

| 30 | 14 |

+---------------+--------+

9 rows in set (0.00 sec)

mysql> select * from (select max(goods_id) as goods_id, cat_id from goods group by cat_id ) as temp where cat_id=cat_id ;

+----------+--------+

| goods_id | cat_id |

+----------+--------+

| 18 | 4 |

| 7 | 8 |

| 6 | 11 |

| 32 | 3 |

| 16 | 2 |

| 23 | 5 |

| 26 | 13 |

| 28 | 15 |

| 30 | 14 |

+----------+--------+

9 rows in set (0.06 sec)

mysql> select cat_id ,count(goods_name) from goods group by cat_id;

+--------+-------------------+

| cat_id | count(goods_name) |

+--------+-------------------+

| 4 | 3 |

| 8 | 3 |

| 11 | 2 |

| 3 | 15 |

| 2 | 1 |

| 5 | 1 |

| 13 | 2 |

| 15 | 2 |

| 14 | 2 |

+--------+-------------------+

9 rows in set (0.00 sec)

mysql> select cat_id ,max(goods_id) from goods group by cat_id;

+--------+---------------+

| cat_id | max(goods_id) |

+--------+---------------+

| 4 | 18 |

| 8 | 7 |

| 11 | 6 |

| 3 | 32 |

| 2 | 16 |

| 5 | 23 |

| 13 | 26 |

| 15 | 28 |

| 14 | 30 |

+--------+---------------+

9 rows in set (0.00 sec)

mysql> select cat_id ,max(goods_id),max(goods_name) from goods group by cat_id;

+--------+---------------+--------------------------------+

| cat_id | max(goods_id) | max(goods_name) |

+--------+---------------+--------------------------------+

| 4 | 18 | 诺基亚5800xm |

| 8 | 7 | 诺基亚原装5800耳机 |

| 11 | 6 | 胜创kingmax内存卡 |

| 3 | 32 | 飞利浦9@9v |

| 2 | 16 | 恒基伟业g101 |

| 5 | 23 | 诺基亚n96 |

| 13 | 26 | 小灵通/固话50元充值卡 |

| 15 | 28 | 联通50元充值卡 |

| 14 | 30 | 移动20元充值卡 |

+--------+---------------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select cat_id ,max(goods_id) from goods ;

+--------+---------------+

| cat_id | max(goods_id) |

+--------+---------------+

| 4 | 32 |

+--------+---------------+

1 row in set (0.00 sec)

mysql> select cat_id, goods_id,goods_name from goods order by goods_id desc ;

+--------+----------+----------------------------------------+

| cat_id | goods_id | goods_name |

+--------+----------+----------------------------------------+

| 3 | 32 | 诺基亚n85 |

| 3 | 31 | 摩托罗拉e8 |

| 14 | 30 | 移动20元充值卡 |

| 14 | 29 | 移动100元充值卡 |

| 15 | 28 | 联通50元充值卡 |

| 15 | 27 | 联通100元充值卡 |

| 13 | 26 | 小灵通/固话20元充值卡 |

| 13 | 25 | 小灵通/固话50元充值卡 |

| 3 | 24 | p806 |

| 5 | 23 | 诺基亚n96 |

| 3 | 22 | 多普达touch hd |

| 3 | 21 | 金立 a30 |

| 3 | 20 | 三星bc01 |

| 3 | 19 | 三星sgh-f258 |

| 4 | 18 | 夏新t5 |

| 3 | 17 | 夏新n7 |

| 2 | 16 | 恒基伟业g101 |

| 3 | 15 | 摩托罗拉a810 |

| 4 | 14 | 诺基亚5800xm |

| 3 | 13 | 诺基亚5320 xpressmusic |

| 3 | 12 | 摩托罗拉a810 |

| 3 | 11 | 索爱c702c |

| 3 | 10 | 索爱c702c |

| 3 | 9 | 诺基亚e66 |

| 3 | 8 | 飞利浦9@9v |

| 8 | 7 | 诺基亚n85原装立体声耳机hs-82 |

| 11 | 6 | 胜创kingmax内存卡 |

| 11 | 5 | 索爱原装m2卡读卡器 |

| 8 | 4 | 诺基亚n85原装充电器 |

| 8 | 3 | 诺基亚原装5800耳机 |

| 4 | 1 | kd876 |

+--------+----------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select cat_id ,max(goods_id) from goods ;

+--------+---------------+

| cat_id | max(goods_id) |

+--------+---------------+

| 4 | 32 |

+--------+---------------+

1 row in set (0.00 sec)

mysql> select cat_id, goods_id,goods_name from goods order by goods_id desc ;

+--------+----------+----------------------------------------+

| cat_id | goods_id | goods_name |

+--------+----------+----------------------------------------+

| 3 | 32 | 诺基亚n85 |

| 3 | 31 | 摩托罗拉e8 |

| 14 | 30 | 移动20元充值卡 |

| 14 | 29 | 移动100元充值卡 |

| 15 | 28 | 联通50元充值卡 |

| 15 | 27 | 联通100元充值卡 |

| 13 | 26 | 小灵通/固话20元充值卡 |

| 13 | 25 | 小灵通/固话50元充值卡 |

| 3 | 24 | p806 |

| 5 | 23 | 诺基亚n96 |

| 3 | 22 | 多普达touch hd |

| 3 | 21 | 金立 a30 |

| 3 | 20 | 三星bc01 |

| 3 | 19 | 三星sgh-f258 |

| 4 | 18 | 夏新t5 |

| 3 | 17 | 夏新n7 |

| 2 | 16 | 恒基伟业g101 |

| 3 | 15 | 摩托罗拉a810 |

| 4 | 14 | 诺基亚5800xm |

| 3 | 13 | 诺基亚5320 xpressmusic |

| 3 | 12 | 摩托罗拉a810 |

| 3 | 11 | 索爱c702c |

| 3 | 10 | 索爱c702c |

| 3 | 9 | 诺基亚e66 |

| 3 | 8 | 飞利浦9@9v |

| 8 | 7 | 诺基亚n85原装立体声耳机hs-82 |

| 11 | 6 | 胜创kingmax内存卡 |

| 11 | 5 | 索爱原装m2卡读卡器 |

| 8 | 4 | 诺基亚n85原装充电器 |

| 8 | 3 | 诺基亚原装5800耳机 |

| 4 | 1 | kd876 |

+--------+----------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select cat_id ,max(goods_id) from goods ;

+--------+---------------+

| cat_id | max(goods_id) |

+--------+---------------+

| 4 | 32 |

+--------+---------------+

1 row in set (0.00 sec)

mysql> select cat_id ,max(goods_id) from goods group by cat_id;

+--------+---------------+

| cat_id | max(goods_id) |

+--------+---------------+

| 4 | 18 |

| 8 | 7 |

| 11 | 6 |

| 3 | 32 |

| 2 | 16 |

| 5 | 23 |

| 13 | 26 |

| 15 | 28 |

| 14 | 30 |

+--------+---------------+

9 rows in set (0.00 sec)

mysql> select goods_id ,goods_name,cat_id from goods where goods_id in(select max(goods_id) from goods group by cat_id) ;

+----------+----------------------------------------+--------+

| goods_id | goods_name | cat_id |

+----------+----------------------------------------+--------+

| 6 | 胜创kingmax内存卡 | 11 |

| 7 | 诺基亚n85原装立体声耳机hs-82 | 8 |

| 16 | 恒基伟业g101 | 2 |

| 18 | 夏新t5 | 4 |

| 23 | 诺基亚n96 | 5 |

| 26 | 小灵通/固话20元充值卡 | 13 |

| 28 | 联通50元充值卡 | 15 |

| 30 | 移动20元充值卡 | 14 |

| 32 | 诺基亚n85 | 3 |

+----------+----------------------------------------+--------+

9 rows in set (0.06 sec)

mysql> select * from(select goods_id,cat_id ,goods_name from goods order by goods_id desc ) as temp group by cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select * from(select goods_id,cat_id ,goods_name from goods order by goods_id desc) as temp group by temp.cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select goods_id,cat_id ,goods_name from goods order by goods_id desc;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 32 | 3 | 诺基亚n85 |

| 31 | 3 | 摩托罗拉e8 |

| 30 | 14 | 移动20元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 28 | 15 | 联通50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 24 | 3 | p806 |

| 23 | 5 | 诺基亚n96 |

| 22 | 3 | 多普达touch hd |

| 21 | 3 | 金立 a30 |

| 20 | 3 | 三星bc01 |

| 19 | 3 | 三星sgh-f258 |

| 18 | 4 | 夏新t5 |

| 17 | 3 | 夏新n7 |

| 16 | 2 | 恒基伟业g101 |

| 15 | 3 | 摩托罗拉a810 |

| 14 | 4 | 诺基亚5800xm |

| 13 | 3 | 诺基亚5320 xpressmusic |

| 12 | 3 | 摩托罗拉a810 |

| 11 | 3 | 索爱c702c |

| 10 | 3 | 索爱c702c |

| 9 | 3 | 诺基亚e66 |

| 8 | 3 | 飞利浦9@9v |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 6 | 11 | 胜创kingmax内存卡 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 3 | 8 | 诺基亚原装5800耳机 |

| 1 | 4 | kd876 |

+----------+--------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select cat_id,goods_name from (select goods_id,cat_id ,goods_name from goods order by goods_id desc) as temp group by cat_id;

+--------+--------------------------------+

| cat_id | goods_name |

+--------+--------------------------------+

| 4 | kd876 |

| 8 | 诺基亚n85原装充电器 |

| 11 | 索爱原装m2卡读卡器 |

| 3 | 飞利浦9@9v |

| 2 | 恒基伟业g101 |

| 5 | 诺基亚n96 |

| 13 | 小灵通/固话50元充值卡 |

| 15 | 联通100元充值卡 |

| 14 | 移动100元充值卡 |

+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select temp.cat_id,goods_name from (select goods_id,cat_id ,goods_name from goods order by goods_id desc) as temp group by temp.cat_id;

+--------+--------------------------------+

| cat_id | goods_name |

+--------+--------------------------------+

| 4 | kd876 |

| 8 | 诺基亚n85原装充电器 |

| 11 | 索爱原装m2卡读卡器 |

| 3 | 飞利浦9@9v |

| 2 | 恒基伟业g101 |

| 5 | 诺基亚n96 |

| 13 | 小灵通/固话50元充值卡 |

| 15 | 联通100元充值卡 |

| 14 | 移动100元充值卡 |

+--------+--------------------------------+

9 rows in set (0.05 sec)

mysql> #子查询

mysql> #查询商品id最大的商品不用排序

mysql> select goods_id ,cat_id ,goods_name from goods where goods_id=(select max(goods_id) from goods);

+----------+--------+--------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------+

| 32 | 3 | 诺基亚n85 |

+----------+--------+--------------+

1 row in set (0.05 sec)

mysql> #如果where型子查询 即where 列=(内层sql 返回的是必是单行单列单个值,) 若where 列 in(内层sql)只能是单列多行

mysql> #from型子查询,内部查询的结果当作外部查询的表s

mysql> select goods_id ,cat_id ,goods_name from (select goods_id ,cat_id ,goods_name from goods order by cat_id asc,goods_id desc) as temp group by cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select goods_id ,cat_id ,goods_name from goods order by cat_id asc,goods_id desc;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 16 | 2 | 恒基伟业g101 |

| 32 | 3 | 诺基亚n85 |

| 31 | 3 | 摩托罗拉e8 |

| 24 | 3 | p806 |

| 22 | 3 | 多普达touch hd |

| 21 | 3 | 金立 a30 |

| 20 | 3 | 三星bc01 |

| 19 | 3 | 三星sgh-f258 |

| 17 | 3 | 夏新n7 |

| 15 | 3 | 摩托罗拉a810 |

| 13 | 3 | 诺基亚5320 xpressmusic |

| 12 | 3 | 摩托罗拉a810 |

| 11 | 3 | 索爱c702c |

| 10 | 3 | 索爱c702c |

| 9 | 3 | 诺基亚e66 |

| 8 | 3 | 飞利浦9@9v |

| 18 | 4 | 夏新t5 |

| 14 | 4 | 诺基亚5800xm |

| 1 | 4 | kd876 |

| 23 | 5 | 诺基亚n96 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 3 | 8 | 诺基亚原装5800耳机 |

| 6 | 11 | 胜创kingmax内存卡 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 28 | 15 | 联通50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

+----------+--------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select * from (select goods_id ,cat_id ,goods_name from goods order by cat_id asc,goods_id desc) as temp group by cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select * from (select goods_id ,cat_id ,goods_name from goods order by cat_id asc,goods_id desc) as temp group by temp.cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name from (select goods_id as goods_id ,cat_id as cat_id ,goods_name as goods_name from goods order by cat_id asc,goods_id desc) as temp group by temp.cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select goods_id, cat_id, goods_name from (select goods_id, goods_name, cat_id from goods order by cat_id asc, goods_id desc) as tmp group by cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> exit

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| bookstore |

| clouddb01 |

| clouddb02 |

| clouddb03 |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| shop |

| ssm_crud |

| struts |

| student |

| sys |

| test |

| test01 |

+--------------------+

15 rows in set (0.35 sec)

mysql> use test01;

Database changed

mysql> select goods_id,cat_id,goods_name from goods order by goods_id desc ,cat_id asc;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 32 | 3 | 诺基亚n85 |

| 31 | 3 | 摩托罗拉e8 |

| 30 | 14 | 移动20元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 28 | 15 | 联通50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 24 | 3 | p806 |

| 23 | 5 | 诺基亚n96 |

| 22 | 3 | 多普达touch hd |

| 21 | 3 | 金立 a30 |

| 20 | 3 | 三星bc01 |

| 19 | 3 | 三星sgh-f258 |

| 18 | 4 | 夏新t5 |

| 17 | 3 | 夏新n7 |

| 16 | 2 | 恒基伟业g101 |

| 15 | 3 | 摩托罗拉a810 |

| 14 | 4 | 诺基亚5800xm |

| 13 | 3 | 诺基亚5320 xpressmusic |

| 12 | 3 | 摩托罗拉a810 |

| 11 | 3 | 索爱c702c |

| 10 | 3 | 索爱c702c |

| 9 | 3 | 诺基亚e66 |

| 8 | 3 | 飞利浦9@9v |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 6 | 11 | 胜创kingmax内存卡 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 3 | 8 | 诺基亚原装5800耳机 |

| 1 | 4 | kd876 |

+----------+--------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name from goods order by cat_id desc ;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 27 | 15 | 联通100元充值卡 |

| 28 | 15 | 联通50元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 6 | 11 | 胜创kingmax内存卡 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 3 | 8 | 诺基亚原装5800耳机 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 23 | 5 | 诺基亚n96 |

| 1 | 4 | kd876 |

| 14 | 4 | 诺基亚5800xm |

| 18 | 4 | 夏新t5 |

| 8 | 3 | 飞利浦9@9v |

| 9 | 3 | 诺基亚e66 |

| 10 | 3 | 索爱c702c |

| 11 | 3 | 索爱c702c |

| 12 | 3 | 摩托罗拉a810 |

| 13 | 3 | 诺基亚5320 xpressmusic |

| 15 | 3 | 摩托罗拉a810 |

| 17 | 3 | 夏新n7 |

| 19 | 3 | 三星sgh-f258 |

| 20 | 3 | 三星bc01 |

| 21 | 3 | 金立 a30 |

| 22 | 3 | 多普达touch hd |

| 24 | 3 | p806 |

| 31 | 3 | 摩托罗拉e8 |

| 32 | 3 | 诺基亚n85 |

| 16 | 2 | 恒基伟业g101 |

+----------+--------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name from(select goods_id,cat_id,goods_name from goods order by cat_id,goods_id desc) as tmp;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 16 | 2 | 恒基伟业g101 |

| 32 | 3 | 诺基亚n85 |

| 31 | 3 | 摩托罗拉e8 |

| 24 | 3 | p806 |

| 22 | 3 | 多普达touch hd |

| 21 | 3 | 金立 a30 |

| 20 | 3 | 三星bc01 |

| 19 | 3 | 三星sgh-f258 |

| 17 | 3 | 夏新n7 |

| 15 | 3 | 摩托罗拉a810 |

| 13 | 3 | 诺基亚5320 xpressmusic |

| 12 | 3 | 摩托罗拉a810 |

| 11 | 3 | 索爱c702c |

| 10 | 3 | 索爱c702c |

| 9 | 3 | 诺基亚e66 |

| 8 | 3 | 飞利浦9@9v |

| 18 | 4 | 夏新t5 |

| 14 | 4 | 诺基亚5800xm |

| 1 | 4 | kd876 |

| 23 | 5 | 诺基亚n96 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 3 | 8 | 诺基亚原装5800耳机 |

| 6 | 11 | 胜创kingmax内存卡 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 28 | 15 | 联通50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

+----------+--------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name from(select goods_id,cat_id,goods_name from goods order by cat_id,goods_id desc) as tmp group by cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 1 | 4 | kd876 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 8 | 3 | 飞利浦9@9v |

| 16 | 2 | 恒基伟业g101 |

| 23 | 5 | 诺基亚n96 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

| 29 | 14 | 移动100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> desc goods;

+--------------+------------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------------+------------------------+------+-----+---------+----------------+

| goods_id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |

| goods_name | varchar(120) | NO | | | |

| cat_id | smallint(5) unsigned | NO | | 0 | |

| brand_id | smallint(5) unsigned | NO | | 0 | |

| goods_sn | char(15) | NO | | | |

| goods_number | smallint(5) unsigned | NO | | 0 | |

| shop_price | decimal(10,2) unsigned | NO | | 0.00 | |

| market_price | decimal(10,2) unsigned | NO | | 0.00 | |

| click_count | int(10) unsigned | NO | | 0 | |

+--------------+------------------------+------+-----+---------+----------------+

9 rows in set (0.18 sec)

mysql> alter table goods add index cat(cat_id);

Query OK, 31 rows affected (1.05 sec)

Records: 31 Duplicates: 0 Warnings: 0

mysql> select goods_id,cat_id,goods_name from(select goods_id,cat_id,goods_name from goods order by cat_id,goods_id desc) as tmp group by cat_id;

+----------+--------+--------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+--------------------------------+

| 16 | 2 | 恒基伟业g101 |

| 8 | 3 | 飞利浦9@9v |

| 1 | 4 | kd876 |

| 23 | 5 | 诺基亚n96 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 27 | 15 | 联通100元充值卡 |

+----------+--------+--------------------------------+

9 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name from(select goods_id,cat_id,goods_name from goods order by cat_id,goods_id desc limit 1000) as tmp group by cat_id;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 16 | 2 | 恒基伟业g101 |

| 32 | 3 | 诺基亚n85 |

| 18 | 4 | 夏新t5 |

| 23 | 5 | 诺基亚n96 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 6 | 11 | 胜创kingmax内存卡 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 28 | 15 | 联通50元充值卡 |

+----------+--------+----------------------------------------+

9 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id) group by cat_id;

+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 16 | 2 | 恒基伟业g101 |

| 32 | 3 | 诺基亚n85 |

| 18 | 4 | 夏新t5 |

| 23 | 5 | 诺基亚n96 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 6 | 11 | 胜创kingmax内存卡 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 28 | 15 | 联通50元充值卡 |

+----------+--------+----------------------------------------+

9 rows in set (0.04 sec)

mysql> #exits子查询

mysql> #from子查询的排序要加limit\

mysql> #exists 存在,exists 子查询

mysql> #查出有商品的栏目

mysql> show tables;

+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| girl |

| goods |

| m |

| mian |

| result |

| t |

| user |

+------------------+

11 rows in set (0.06 sec)

mysql> desc category;

+-----------+----------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-----------+----------------------+------+-----+---------+----------------+

| cat_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |

| cat_name | varchar(90) | NO | | | |

| parent_id | smallint(5) unsigned | YES | | NULL | |

+-----------+----------------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

mysql> select * from category;

+--------+---------------------------+-----------+

| cat_id | cat_name | parent_id |

+--------+---------------------------+-----------+

| 1 | 手机类型 | 0 |

| 2 | CDMA手机 | 1 |

| 3 | GSM手机 | 1 |

| 4 | 3G手机 | 1 |

| 5 | 双模手机 | 1 |

| 6 | 手机配件 | 0 |

| 7 | 充电器 | 6 |

| 8 | 耳机 | 6 |

| 9 | 电池 | 6 |

| 11 | 读卡器和内存卡 | 6 |

| 12 | 充值卡 | 0 |

| 13 | 小灵通/固话充值卡 | 12 |

| 14 | 移动手机充值卡 | 12 |

| 15 | 联通手机充值卡 | 12 |

+--------+---------------------------+-----------+

14 rows in set (0.07 sec)

mysql> desc goods;

+--------------+------------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------------+------------------------+------+-----+---------+----------------+

| goods_id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |

| goods_name | varchar(120) | NO | | | |

| cat_id | smallint(5) unsigned | NO | MUL | 0 | |

| brand_id | smallint(5) unsigned | NO | | 0 | |

| goods_sn | char(15) | NO | | | |

| goods_number | smallint(5) unsigned | NO | | 0 | |

| shop_price | decimal(10,2) unsigned | NO | | 0.00 | |

| market_price | decimal(10,2) unsigned | NO | | 0.00 | |

| click_count | int(10) unsigned | NO | | 0 | |

+--------------+------------------------+------+-----+---------+----------------+

9 rows in set (0.00 sec)

mysql> show index from goods;

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

| goods | 0 | PRIMARY | 1 | goods_id | A | 31 | NULL | NULL | | BTREE | | | YES |

| goods | 1 | cat | 1 | cat_id | A | NULL | NULL | NULL | | BTREE | | | YES |

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

2 rows in set (0.17 sec)

mysql> drop index cat on goods;

Query OK, 31 rows affected (0.55 sec)

Records: 31 Duplicates: 0 Warnings: 0

mysql> show index from goods;

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

| goods | 0 | PRIMARY | 1 | goods_id | A | 31 | NULL | NULL | | BTREE | | | YES |

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

1 row in set (0.00 sec)

mysql> desc goods;

+--------------+------------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------------+------------------------+------+-----+---------+----------------+

| goods_id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |

| goods_name | varchar(120) | NO | | | |

| cat_id | smallint(5) unsigned | NO | | 0 | |

| brand_id | smallint(5) unsigned | NO | | 0 | |

| goods_sn | char(15) | NO | | | |

| goods_number | smallint(5) unsigned | NO | | 0 | |

| shop_price | decimal(10,2) unsigned | NO | | 0.00 | |

| market_price | decimal(10,2) unsigned | NO | | 0.00 | |

| click_count | int(10) unsigned | NO | | 0 | |

+--------------+------------------------+------+-----+---------+----------------+

9 rows in set (0.00 sec)

mysql> desc category;

+-----------+----------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-----------+----------------------+------+-----+---------+----------------+

| cat_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |

| cat_name | varchar(90) | NO | | | |

| parent_id | smallint(5) unsigned | YES | | NULL | |

+-----------+----------------------+------+-----+---------+----------------+

3 rows in set (0.03 sec)

mysql> select cat_name from category;

+---------------------------+

| cat_name |

+---------------------------+

| 手机类型 |

| CDMA手机 |

| GSM手机 |

| 3G手机 |

| 双模手机 |

| 手机配件 |

| 充电器 |

| 耳机 |

| 电池 |

| 读卡器和内存卡 |

| 充值卡 |

| 小灵通/固话充值卡 |

| 移动手机充值卡 |

| 联通手机充值卡 |

+---------------------------+

14 rows in set (0.00 sec)

mysql> select cat_id,cat_name from category where exists(select * from goods where category.cat_id=goods_id);

+--------+---------------------------+

| cat_id | cat_name |

+--------+---------------------------+

| 1 | 手机类型 |

| 3 | GSM手机 |

| 4 | 3G手机 |

| 5 | 双模手机 |

| 6 | 手机配件 |

| 7 | 充电器 |

| 8 | 耳机 |

| 9 | 电池 |

| 11 | 读卡器和内存卡 |

| 12 | 充值卡 |

| 13 | 小灵通/固话充值卡 |

| 14 | 移动手机充值卡 |

| 15 | 联通手机充值卡 |

+--------+---------------------------+

13 rows in set (0.00 sec)

mysql> select cat_id,cat_name from category where exists(select * from goods where category.cat_id=goods.cat_id);

+--------+---------------------------+

| cat_id | cat_name |

+--------+---------------------------+

| 2 | CDMA手机 |

| 3 | GSM手机 |

| 4 | 3G手机 |

| 5 | 双模手机 |

| 8 | 耳机 |

| 11 | 读卡器和内存卡 |

| 13 | 小灵通/固话充值卡 |

| 14 | 移动手机充值卡 |

| 15 | 联通手机充值卡 |

+--------+---------------------------+

9 rows in set (0.00 sec)

mysql> #为什么建表时加not null或default 0 ,不想出现null值

mysql> #null判断只能用 is null 或is not nul

mysql>

mysql> #效率不高,影响索引效率

mysql> select 100000*232344242

-> ;

+------------------+

| 100000*232344242 |

+------------------+

| 23234424200000 |

+------------------+

1 row in set (0.00 sec)

mysql> #左连接的语法

mysql> a表不动,b表在右边滑动

-> #

-> \n

ERROR:

Unknown command'\n'.

-> ;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'a表不动,b表在右边滑动

\n'at line 1

mysql> #a表与b表通过什么关联行

mysql> # a 表left join b on 条件 条件为真,则b表对应的行取出

mysql> # a left join b on

mysql> #将a left join b on 条件 设为c 表

mysql> #可以对c表进行查询,可以查询a和b的列

mysql> select goods_id,cat_id,cat_name from goods left join category on goods.cat_id=category.cat_id;

ERROR 1052 (23000): Column'cat_id'in field list is ambiguous

mysql> select goods_id,goods.cat_id,cat_name from goods left join category on goods.cat_id=category.cat_id;

+----------+--------+---------------------------+

| goods_id | cat_id | cat_name |

+----------+--------+---------------------------+

| 1 | 4 | 3G手机 |

| 4 | 8 | 耳机 |

| 3 | 8 | 耳机 |

| 5 | 11 | 读卡器和内存卡 |

| 6 | 11 | 读卡器和内存卡 |

| 7 | 8 | 耳机 |

| 8 | 3 | GSM手机 |

| 9 | 3 | GSM手机 |

| 10 | 3 | GSM手机 |

| 11 | 3 | GSM手机 |

| 12 | 3 | GSM手机 |

| 13 | 3 | GSM手机 |

| 14 | 4 | 3G手机 |

| 15 | 3 | GSM手机 |

| 16 | 2 | CDMA手机 |

| 17 | 3 | GSM手机 |

| 18 | 4 | 3G手机 |

| 19 | 3 | GSM手机 |

| 20 | 3 | GSM手机 |

| 21 | 3 | GSM手机 |

| 22 | 3 | GSM手机 |

| 23 | 5 | 双模手机 |

| 24 | 3 | GSM手机 |

| 25 | 13 | 小灵通/固话充值卡 |

| 26 | 13 | 小灵通/固话充值卡 |

| 27 | 15 | 联通手机充值卡 |

| 28 | 15 | 联通手机充值卡 |

| 29 | 14 | 移动手机充值卡 |

| 30 | 14 | 移动手机充值卡 |

| 31 | 3 | GSM手机 |

| 32 | 3 | GSM手机 |

+----------+--------+---------------------------+

31 rows in set (0.00 sec)

mysql> select goods_id,goods.cat_id,cat_name,goods_name from goods left join category on goods.cat_id=category.cat_id;

+----------+--------+---------------------------+----------------------------------------+

| goods_id | cat_id | cat_name | goods_name |

+----------+--------+---------------------------+----------------------------------------+

| 1 | 4 | 3G手机 | kd876 |

| 4 | 8 | 耳机 | 诺基亚n85原装充电器 |

| 3 | 8 | 耳机 | 诺基亚原装5800耳机 |

| 5 | 11 | 读卡器和内存卡 | 索爱原装m2卡读卡器 |

| 6 | 11 | 读卡器和内存卡 | 胜创kingmax内存卡 |

| 7 | 8 | 耳机 | 诺基亚n85原装立体声耳机hs-82 |

| 8 | 3 | GSM手机 | 飞利浦9@9v |

| 9 | 3 | GSM手机 | 诺基亚e66 |

| 10 | 3 | GSM手机 | 索爱c702c |

| 11 | 3 | GSM手机 | 索爱c702c |

| 12 | 3 | GSM手机 | 摩托罗拉a810 |

| 13 | 3 | GSM手机 | 诺基亚5320 xpressmusic |

| 14 | 4 | 3G手机 | 诺基亚5800xm |

| 15 | 3 | GSM手机 | 摩托罗拉a810 |

| 16 | 2 | CDMA手机 | 恒基伟业g101 |

| 17 | 3 | GSM手机 | 夏新n7 |

| 18 | 4 | 3G手机 | 夏新t5 |

| 19 | 3 | GSM手机 | 三星sgh-f258 |

| 20 | 3 | GSM手机 | 三星bc01 |

| 21 | 3 | GSM手机 | 金立 a30 |

| 22 | 3 | GSM手机 | 多普达touch hd |

| 23 | 5 | 双模手机 | 诺基亚n96 |

| 24 | 3 | GSM手机 | p806 |

| 25 | 13 | 小灵通/固话充值卡 | 小灵通/固话50元充值卡 |

| 26 | 13 | 小灵通/固话充值卡 | 小灵通/固话20元充值卡 |

| 27 | 15 | 联通手机充值卡 | 联通100元充值卡 |

| 28 | 15 | 联通手机充值卡 | 联通50元充值卡 |

| 29 | 14 | 移动手机充值卡 | 移动100元充值卡 |

| 30 | 14 | 移动手机充值卡 | 移动20元充值卡 |

| 31 | 3 | GSM手机 | 摩托罗拉e8 |

| 32 | 3 | GSM手机 | 诺基亚n85 |

+----------+--------+---------------------------+----------------------------------------+

31 rows in set (0.00 sec)

mysql> select goods_id,goods.cat_id,goods_name,cat_name from goods left join category on goods.cat_id=category.cat_id;

+----------+--------+----------------------------------------+---------------------------+

| goods_id | cat_id | goods_name | cat_name |

+----------+--------+----------------------------------------+---------------------------+

| 1 | 4 | kd876 | 3G手机 |

| 4 | 8 | 诺基亚n85原装充电器 | 耳机 |

| 3 | 8 | 诺基亚原装5800耳机 | 耳机 |

| 5 | 11 | 索爱原装m2卡读卡器 | 读卡器和内存卡 |

| 6 | 11 | 胜创kingmax内存卡 | 读卡器和内存卡 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 耳机 |

| 8 | 3 | 飞利浦9@9v | GSM手机 |

| 9 | 3 | 诺基亚e66 | GSM手机 |

| 10 | 3 | 索爱c702c | GSM手机 |

| 11 | 3 | 索爱c702c | GSM手机 |

| 12 | 3 | 摩托罗拉a810 | GSM手机 |

| 13 | 3 | 诺基亚5320 xpressmusic | GSM手机 |

| 14 | 4 | 诺基亚5800xm | 3G手机 |

| 15 | 3 | 摩托罗拉a810 | GSM手机 |

| 16 | 2 | 恒基伟业g101 | CDMA手机 |

| 17 | 3 | 夏新n7 | GSM手机 |

| 18 | 4 | 夏新t5 | 3G手机 |

| 19 | 3 | 三星sgh-f258 | GSM手机 |

| 20 | 3 | 三星bc01 | GSM手机 |

| 21 | 3 | 金立 a30 | GSM手机 |

| 22 | 3 | 多普达touch hd | GSM手机 |

| 23 | 5 | 诺基亚n96 | 双模手机 |

| 24 | 3 | p806 | GSM手机 |

| 25 | 13 | 小灵通/固话50元充值卡 | 小灵通/固话充值卡 |

| 26 | 13 | 小灵通/固话20元充值卡 | 小灵通/固话充值卡 |

| 27 | 15 | 联通100元充值卡 | 联通手机充值卡 |

| 28 | 15 | 联通50元充值卡 | 联通手机充值卡 |

| 29 | 14 | 移动100元充值卡 | 移动手机充值卡 |

| 30 | 14 | 移动20元充值卡 | 移动手机充值卡 |

| 31 | 3 | 摩托罗拉e8 | GSM手机 |

| 32 | 3 | 诺基亚n85 | GSM手机 |

+----------+--------+----------------------------------------+---------------------------+

31 rows in set (0.00 sec)

mysql> #取出第四个栏目的商品以及商品的栏目名称

mysql> select goods_id,goods.cat_id,goods_name,cat_name from goods left join category on goods.cat_id=category.cat_id where goods.cat_id=4;

+----------+--------+-----------------+----------+

| goods_id | cat_id | goods_name | cat_name |

+----------+--------+-----------------+----------+

| 1 | 4 | kd876 | 3G手机 |

| 14 | 4 | 诺基亚5800xm | 3G手机 |

| 18 | 4 | 夏新t5 | 3G手机 |

+----------+--------+-----------------+----------+

3 rows in set (0.07 sec)

mysql> #左右连接,左连接即左表不动,

mysql> #a left join b 并不是说 a 一定是在b的左边

mysql> #左右连接可以互换, a left join b =b right join a

mysql> # 内链接 特点 所有有配偶的男生/女生 走到舞台上来, 其 左表和右表不匹配的不能出现

mysql> # 集合的角度看,内链接是左右连接的交集;

mysql> # 外连接,求的是并集,但是在mysql中不支持

mysql> #左连接

mysql> show tables;

+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| girl |

| goods |

| m |

| mian |

| result |

| t |

| user |

+------------------+

11 rows in set (0.60 sec)

mysql> select * from t;

+------+--------------+

| tid | tname |

+------+--------------+

| 1 | 国安 |

| 2 | 申花 |

| 3 | 布尔联队 |

+------+--------------+

3 rows in set (0.40 sec)

mysql> select * from m;

+------+------+------+------+------------+

| mid | hid | gid | mres | matime |

+------+------+------+------+------------+

| 1 | 1 | 2 | 2:0 | 2006-05-21 |

| 2 | 2 | 3 | 1:2 | 2006-06-21 |

| 3 | 3 | 1 | 2:5 | 2006-06-25 |

| 4 | 2 | 1 | 3:2 | 2006-07-21 |

+------+------+------+------+------------+

4 rows in set (0.10 sec)

mysql> select m.mid,m.hid,t.tname,m.gid,t.tname from m left join t on m.hid=t.tid;

+------+------+--------------+------+--------------+

| mid | hid | tname | gid | tname |

+------+------+--------------+------+--------------+

| 1 | 1 | 国安 | 2 | 国安 |

| 2 | 2 | 申花 | 3 | 申花 |

| 4 | 2 | 申花 | 1 | 申花 |

| 3 | 3 | 布尔联队 | 1 | 布尔联队 |

+------+------+--------------+------+--------------+

4 rows in set (0.00 sec)

mysql> select m.mid,m.hid,t.tname,m.gid from m left join t on m.hid=t.tid;

+------+------+--------------+------+

| mid | hid | tname | gid |

+------+------+--------------+------+

| 1 | 1 | 国安 | 2 |

| 2 | 2 | 申花 | 3 |

| 4 | 2 | 申花 | 1 |

| 3 | 3 | 布尔联队 | 1 |

+------+------+--------------+------+

4 rows in set (0.00 sec)

mysql> select tem.mid,tem.hid,t.tname,tem.gid,t.tname from (select m.mid,m.hid,t.tname,m.gid from m left join t on m.hid=t.tid) as tem left join t on t.tid=tem.gid;

+------+------+--------------+------+--------------+

| mid | hid | tname | gid | tname |

+------+------+--------------+------+--------------+

| 4 | 2 | 国安 | 1 | 国安 |

| 3 | 3 | 国安 | 1 | 国安 |

| 1 | 1 | 申花 | 2 | 申花 |

| 2 | 2 | 布尔联队 | 3 | 布尔联队 |

+------+------+--------------+------+--------------+

4 rows in set (0.00 sec)

mysql> select tem.mid,tem.hid,t.tname,tem.gid,t.tname from (select m.mid,m.hid,t.tname,m.gid from m left join t on m.hid=t.tid) as tem left join t on t.tid=tem.gid order by tem.mid asc;

+------+------+--------------+------+--------------+

| mid | hid | tname | gid | tname |

+------+------+--------------+------+--------------+

| 1 | 1 | 申花 | 2 | 申花 |

| 2 | 2 | 布尔联队 | 3 | 布尔联队 |

| 3 | 3 | 国安 | 1 | 国安 |

| 4 | 2 | 国安 | 1 | 国安 |

+------+------+--------------+------+--------------+

4 rows in set (0.00 sec)

mysql> select tem.mid,tem.hid,t.tname,tem.gid,t.tname from (select m.mid,m.hid,t.tname,m.gid from m left join t on m.hid=t.tid) as tem left join t on tem.gid=t.tid order by tem.mid asc;

+------+------+--------------+------+--------------+

| mid | hid | tname | gid | tname |

+------+------+--------------+------+--------------+

| 1 | 1 | 申花 | 2 | 申花 |

| 2 | 2 | 布尔联队 | 3 | 布尔联队 |

| 3 | 3 | 国安 | 1 | 国安 |

| 4 | 2 | 国安 | 1 | 国安 |

+------+------+--------------+------+--------------+

4 rows in set (0.00 sec)

mysql> select tem.mid,tem.hid,tem.tname,tem.gid,tem.tname from (select m.mid,m.hid,t.tname,m.gid from m left join t on m.hid=t.tid) as tem left join t on tem.gid=t.tid order by tem.mid asc;

+------+------+--------------+------+--------------+

| mid | hid | tname | gid | tname |

+------+------+--------------+------+--------------+

| 1 | 1 | 国安 | 2 | 国安 |

| 2 | 2 | 申花 | 3 | 申花 |

| 3 | 3 | 布尔联队 | 1 | 布尔联队 |

| 4 | 2 | 申花 | 1 | 申花 |

+------+------+--------------+------+--------------+

4 rows in set (0.00 sec)

mysql> select m.* from m left join t on m.hid=t.tid;

+------+------+------+------+------------+

| mid | hid | gid | mres | matime |

+------+------+------+------+------------+

| 1 | 1 | 2 | 2:0 | 2006-05-21 |

| 2 | 2 | 3 | 1:2 | 2006-06-21 |

| 4 | 2 | 1 | 3:2 | 2006-07-21 |

| 3 | 3 | 1 | 2:5 | 2006-06-25 |

+------+------+------+------+------------+

4 rows in set (0.00 sec)

mysql> select m.*,t.tname from m left join t on m.hid=t.tid;

+------+------+------+------+------------+--------------+

| mid | hid | gid | mres | matime | tname |

+------+------+------+------+------------+--------------+

| 1 | 1 | 2 | 2:0 | 2006-05-21 | 国安 |

| 2 | 2 | 3 | 1:2 | 2006-06-21 | 申花 |

| 4 | 2 | 1 | 3:2 | 2006-07-21 | 申花 |

| 3 | 3 | 1 | 2:5 | 2006-06-25 | 布尔联队 |

+------+------+------+------+------------+--------------+

4 rows in set (0.00 sec)

mysql> select tem.*, t.tname from (select m.*,t.tname from m left join t on m.hid=t.tid) as tem left join t on tem.gid=t.tid;

+------+------+------+------+------------+--------------+--------------+

| mid | hid | gid | mres | matime | tname | tname |

+------+------+------+------+------------+--------------+--------------+

| 4 | 2 | 1 | 3:2 | 2006-07-21 | 申花 | 国安 |

| 3 | 3 | 1 | 2:5 | 2006-06-25 | 布尔联队 | 国安 |

| 1 | 1 | 2 | 2:0 | 2006-05-21 | 国安 | 申花 |

| 2 | 2 | 3 | 1:2 | 2006-06-21 | 申花 | 布尔联队 |

+------+------+------+------+------------+--------------+--------------+

4 rows in set (0.00 sec)

mysql> select * from t;

+------+--------------+

| tid | tname |

+------+--------------+

| 1 | 国安 |

| 2 | 申花 |

| 3 | 布尔联队 |

+------+--------------+

3 rows in set (0.00 sec)

mysql> select tem.mid,tem.hid,tem.tname,tem.gid,t.tname,tem.mres,tem.matime from (select m.mid ,m.hid,t.tname,m.gid,m.mres,m.matime from m left join t on m.hid=t.tid) as tem left join t on tem.gid=t.tid;

+------+------+--------------+------+--------------+------+------------+

| mid | hid | tname | gid | tname | mres | matime |

+------+------+--------------+------+--------------+------+------------+

| 4 | 2 | 申花 | 1 | 国安 | 3:2 | 2006-07-21 |

| 3 | 3 | 布尔联队 | 1 | 国安 | 2:5 | 2006-06-25 |

| 1 | 1 | 国安 | 2 | 申花 | 2:0 | 2006-05-21 |

| 2 | 2 | 申花 | 3 | 布尔联队 | 1:2 | 2006-06-21 |

+------+------+--------------+------+--------------+------+------------+

4 rows in set (0.00 sec)

mysql> select tem.mid,tem.hid,tem.tname,tem.gid,t.tname,tem.mres,tem.matime from (select m.mid ,m.hid,t.tname,m.gid,m.mres,m.matime from m left join t on m.hid=t.tid) as tem left join t on tem.gid=t.tid order by tem.mid;

+------+------+--------------+------+--------------+------+------------+

| mid | hid | tname | gid | tname | mres | matime |

+------+------+--------------+------+--------------+------+------------+

| 1 | 1 | 国安 | 2 | 申花 | 2:0 | 2006-05-21 |

| 2 | 2 | 申花 | 3 | 布尔联队 | 1:2 | 2006-06-21 |

| 3 | 3 | 布尔联队 | 1 | 国安 | 2:5 | 2006-06-25 |

| 4 | 2 | 申花 | 1 | 国安 | 3:2 | 2006-07-21 |

+------+------+--------------+------+--------------+------+------------+

4 rows in set (0.00 sec)

mysql> select * from m;

+------+------+------+------+------------+

| mid | hid | gid | mres | matime |

+------+------+------+------+------------+

| 1 | 1 | 2 | 2:0 | 2006-05-21 |

| 2 | 2 | 3 | 1:2 | 2006-06-21 |

| 3 | 3 | 1 | 2:5 | 2006-06-25 |

| 4 | 2 | 1 | 3:2 | 2006-07-21 |

+------+------+------+------+------------+

4 rows in set (0.00 sec)

mysql> select tem.mid,tem.hid,tem.tname,tem.gid,t.tname,tem.mres,tem.matime from (select m.mid ,m.hid,t.tname,m.gid,m.mres,m.matime from m left join t on m.hid=t.tid) as tem left join t on tem.gid=t.tid where tem.matime between "2006-6-1" and "2006-7-1" order by tem.mid;

+------+------+--------------+------+--------------+------+------------+

| mid | hid | tname | gid | tname | mres | matime |

+------+------+--------------+------+--------------+------+------------+

| 2 | 2 | 申花 | 3 | 布尔联队 | 1:2 | 2006-06-21 |

| 3 | 3 | 布尔联队 | 1 | 国安 | 2:5 | 2006-06-25 |

+------+------+--------------+------+--------------+------+------------+

2 rows in set (0.06 sec)

mysql> select m.mid ,m.hid,t.tname,m.gid,tem.tname,m.mres,m.matime from m left join t on m.hid=t.tid left join t as tem on m.gid=tem.tid where m.matime between "2006-6-1" and "2006-7-1" order by m.mid;

+------+------+--------------+------+--------------+------+------------+

| mid | hid | tname | gid | tname | mres | matime |

+------+------+--------------+------+--------------+------+------------+

| 2 | 2 | 申花 | 3 | 布尔联队 | 1:2 | 2006-06-21 |

| 3 | 3 | 布尔联队 | 1 | 国安 | 2:5 | 2006-06-25 |

+------+------+--------------+------+--------------+------+------------+

2 rows in set (0.00 sec)

mysql> exit

mysql> use test01;

Database changed

mysql> select goods_id,goods_name,shop_price from goods where shop_price<50

-> ;

+----------+--------------------------------+------------+

| goods_id | goods_name | shop_price |

+----------+--------------------------------+------------+

| 5 | 索爱原装m2卡读卡器 | 20.00 |

| 6 | 胜创kingmax内存卡 | 42.00 |

| 25 | 小灵通/固话50元充值卡 | 48.00 |

| 26 | 小灵通/固话20元充值卡 | 19.00 |

| 28 | 联通50元充值卡 | 45.00 |

| 30 | 移动20元充值卡 | 18.00 |

+----------+--------------------------------+------------+

6 rows in set (0.14 sec)

mysql> #union 联合 语法 sql1 union sql2

mysql> select goods_id,goods_name,shop_price from goods where shop_price>4000;

+----------+-------------------+------------+

| goods_id | goods_name | shop_price |

+----------+-------------------+------------+

| 22 | 多普达touch hd | 5999.00 |

+----------+-------------------+------------+

1 row in set (0.00 sec)

mysql> select goods_id,goods_name,shop_price from goods where shop_price>4000 union select goods_id,goods_name,shop_price from goods where shop_price<50;

+----------+--------------------------------+------------+

| goods_id | goods_name | shop_price |

+----------+--------------------------------+------------+

| 22 | 多普达touch hd | 5999.00 |

| 5 | 索爱原装m2卡读卡器 | 20.00 |

| 6 | 胜创kingmax内存卡 | 42.00 |

| 25 | 小灵通/固话50元充值卡 | 48.00 |

| 26 | 小灵通/固话20元充值卡 | 19.00 |

| 28 | 联通50元充值卡 | 45.00 |

| 30 | 移动20元充值卡 | 18.00 |

+----------+--------------------------------+------------+

7 rows in set (0.10 sec)

mysql> #可以从两张表union联合查询

mysql> #两个列名不一致 以第一个列名为准

mysql> #union 满足的条件,只要结果集的列数一致就可以了

mysql> #union后的结果集可以排序

mysql> #格式: sql1 union sql2 order by

mysql> # 用nuion 取出第4个栏目和第5个栏目的商品m,并按价格升序排列

mysql> select goods_id ,cat_id, goods_name ,shop_price from goods union select goods_id ,cat_id ,goods_name ,shop_price from goods order by shop_price asc;

+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 1 | 4 | kd876 | 1388.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 24 | 3 | p806 | 2000.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 22 | 3 | 多普达touch hd | 5999.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.05 sec)

mysql> select goods_id ,cat_id, goods_name ,shop_price from goods where cat_id=4 union select goods_id ,cat_id ,goods_name ,shop_price from goods where cat_id=5 order by shop_price asc;

+----------+--------+-----------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+-----------------+------------+

| 1 | 4 | kd876 | 1388.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

+----------+--------+-----------------+------------+

4 rows in set (0.00 sec)

mysql> #取出第3个下价格前三高 的商品,和第四个栏目下价格前两高的商品用union完成

mysql> select goods_id ,cat_id,goods_name ,shop_price from goods where cat_id=3 order by shop_price desc limit 3;

+----------+--------+-------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+-------------------+------------+

| 22 | 3 | 多普达touch hd | 5999.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

+----------+--------+-------------------+------------+

3 rows in set (0.00 sec)

mysql> select goods_id ,cat_id ,goods_name ,shop_price from goods where cat_id=4 order by shop_price desc limit 2;

+----------+--------+-----------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+-----------------+------------+

| 18 | 4 | 夏新t5 | 2878.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

+----------+--------+-----------------+------------+

2 rows in set (0.00 sec)

mysql> (select goods_id ,cat_id,goods_name ,shop_price from goods where cat_id=3 order by shop_price desc limit 3) union (select goods_id ,cat_id,goods_name ,shop_price from goods where cat_id=4 order by shop_price desc limit 2);

+----------+--------+-------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+-------------------+------------+

| 22 | 3 | 多普达touch hd | 5999.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

+----------+--------+-------------------+------------+

5 rows in set (0.00 sec)

mysql> #这次内层的order by 不会失效是因为有limit,单纯的order by不会对结果集有影响,需要配合limit

mysql> #如果union后的结果有重复如何解决

mysql> #union会有去重的效果,不想去重可以用union all

mysql> show tables;

+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| girl |

| goods |

| m |

| mian |

| result |

| t |

| user |

+------------------+

11 rows in set (0.08 sec)

mysql> select * from a;

+------+------+

| id | num |

+------+------+

| a | 5 |

| b | 10 |

| c | 15 |

| d | 10 |

+------+------+

4 rows in set (0.15 sec)

mysql> select * from b;

+------+------+

| id | num |

+------+------+

| b | 5 |

| c | 15 |

| d | 20 |

| e | 99 |

+------+------+

4 rows in set (0.02 sec)

mysql> select * from a union select * from b;

+------+------+

| id | num |

+------+------+

| a | 5 |

| b | 10 |

| c | 15 |

| d | 10 |

| b | 5 |

| d | 20 |

| e | 99 |

+------+------+

7 rows in set (0.00 sec)

mysql> select * from a union all select * from b;

+------+------+

| id | num |

+------+------+

| a | 5 |

| b | 10 |

| c | 15 |

| d | 10 |

| b | 5 |

| c | 15 |

| d | 20 |

| e | 99 |

+------+------+

8 rows in set (0.00 sec)

mysql> select * from a union all select * from b group by id;

+------+------+

| id | num |

+------+------+

| a | 5 |

| b | 10 |

| c | 15 |

| d | 10 |

| b | 5 |

| c | 15 |

| d | 20 |

| e | 99 |

+------+------+

8 rows in set (0.00 sec)

mysql> select tem.id,sum(tem.num) from(select a.id,a.num from a union all select b.id,b.num from b) as tem group by tem.id ;

+------+--------------+

| id | sum(tem.num) |

+------+--------------+

| a | 5 |

| b | 15 |

| c | 30 |

| d | 30 |

| e | 99 |

+------+--------------+

5 rows in set (0.00 sec)

mysql> select a.* ,b.* from a left join b on a.id=b.id;

+------+------+------+------+

| id | num | id | num |

+------+------+------+------+

| b | 10 | b | 5 |

| c | 15 | c | 15 |

| d | 10 | d | 20 |

| a | 5 | NULL | NULL |

+------+------+------+------+

4 rows in set (0.00 sec)

mysql> select a.* ,b.* from a inner join b on a.id=b.id;

+------+------+------+------+

| id | num | id | num |

+------+------+------+------+

| b | 10 | b | 5 |

| c | 15 | c | 15 |

| d | 10 | d | 20 |

+------+------+------+------+

3 rows in set (0.00 sec)

mysql> select a.* ,b.* from a left join b on a.id=b.id;

+------+------+------+------+

| id | num | id | num |

+------+------+------+------+

| b | 10 | b | 5 |

| c | 15 | c | 15 |

| d | 10 | d | 20 |

| a | 5 | NULL | NULL |

+------+------+------+------+

4 rows in set (0.00 sec)

mysql> select a.* ,b.* from a left join b on a.id=b.id union select a.* ,b.* from a right join b on a.id=b.id;

+------+------+------+------+

| id | num | id | num |

+------+------+------+------+

| b | 10 | b | 5 |

| c | 15 | c | 15 |

| d | 10 | d | 20 |

| a | 5 | NULL | NULL |

| NULL | NULL | e | 99 |

+------+------+------+------+

5 rows in set (0.00 sec)

mysql> #先左联再u右连然后子查询;

mysql>

mysql> #函数

mysql> #取出第四个栏目的商品及打88折的会员价

mysql> select goods_id,cat_id,good_name,shop_price*0.88 from goods where cat_id=4

-> ;

ERROR 1054 (42S22): Unknown column'good_name'in'field list'mysql> select goods_id,cat_id,goods_name,shop_price*0.88 from goods where cat_id=4

-> ;

+----------+--------+-----------------+-----------------+

| goods_id | cat_id | goods_name | shop_price*0.88 |

+----------+--------+-----------------+-----------------+

| 1 | 4 | kd876 | 1221.4400 |

| 14 | 4 | 诺基亚5800xm | 2310.0000 |

| 18 | 4 | 夏新t5 | 2532.6400 |

+----------+--------+-----------------+-----------------+

3 rows in set (0.00 sec)

mysql> select goods_id,cat_id,goods_name,floor(shop_price*0.88) from goods where cat_id=4 ;

+----------+--------+-----------------+------------------------+

| goods_id | cat_id | goods_name | floor(shop_price*0.88) |

+----------+--------+-----------------+------------------------+

| 1 | 4 | kd876 | 1221 |

| 14 | 4 | 诺基亚5800xm | 2310 |

| 18 | 4 | 夏新t5 | 2532 |

+----------+--------+-----------------+------------------------+

3 rows in set (0.00 sec)

mysql> #随机生成5-15之间的数字;

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 7 |

+--------------------+

1 row in set (0.00 sec)

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 13 |

+--------------------+

1 row in set (0.00 sec)

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 8 |

+--------------------+

1 row in set (0.00 sec)

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 9 |

+--------------------+

1 row in set (0.00 sec)

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 8 |

+--------------------+

1 row in set (0.00 sec)

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 5 |

+--------------------+

1 row in set (0.00 sec)

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 8 |

+--------------------+

1 row in set (0.00 sec)

mysql> select floor(rand()*10+5);

+--------------------+

| floor(rand()*10+5) |

+--------------------+

| 11 |

+--------------------+

1 row in set (0.00 sec)

mysql> #ceiling 向上取整

mysql> #group concat 取出4栏目下goods_id拼接

mysql> select group_concat(goods_id) from goods where cat_id=4;

+------------------------+

| group_concat(goods_id) |

+------------------------+

| 1,14,18 |

+------------------------+

1 row in set (0.08 sec)

mysql> #计算字符的ascil码

mysql> select ascil(a);

ERROR 1305 (42000): FUNCTION test01.ascil does not exist

mysql> select ascii(a);

ERROR 1054 (42S22): Unknown column'a'in'field list'mysql> select ascii('a');

+------------+

| ascii('a') |

+------------+

| 97 |

+------------+

1 row in set (0.00 sec)

mysql> select length("中华");

+------------------+

| length("中华") |

+------------------+

| 6 |

+------------------+

1 row in set (0.06 sec)

mysql> #length 计算的字节场地

mysql> #length 计算的字符数

mysql> #char_length 计算的字符数

mysql> select char_length('中国');

+-----------------------+

| char_length('中国') |

+-----------------------+

| 2 |

+-----------------------+

1 row in set (0.00 sec)

mysql> #反转字符串

mysql> select reverse('zh')

-> ;

+---------------+

| reverse('zh') |

+---------------+

| hz |

+---------------+

1 row in set (0.05 sec)

mysql> select reverse('zh中国');

+---------------------+

| reverse('zh中国') |

+---------------------+

| 国中hz |

+---------------------+

1 row in set (0.00 sec)

mysql> #position

mysql> select position('@'in'abc@sina.com');

+---------------------------------+

| position('@'in'abc@sina.com') |

+---------------------------------+

| 4 |

+---------------------------------+

1 row in set (0.05 sec)

mysql> select right('abc@sina.com',2);

+--------------------------+

| right('abc@sina.com',2) |

+--------------------------+

| om |

+--------------------------+

1 row in set (0.00 sec)

mysql> #某网站有email字段,有邮件地址,想调查163.qq.com的u邮箱的比例

mysql> show tables;

+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| girl |

| goods |

| m |

| mian |

| result |

| t |

| user |

+------------------+

11 rows in set (0.01 sec)

mysql> #查询邮箱后缀,

mysql> create table email(uname char,email char);

Query OK, 0 rows affected (1.76 sec)

mysql> desc email;

+-------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+---------+------+-----+---------+-------+

| uname | char(1) | YES | | NULL | |

| email | char(1) | YES | | NULL | |

+-------+---------+------+-----+---------+-------+

2 rows in set (0.09 sec)

mysql> alter table email modify column uname char(50) ;

Query OK, 0 rows affected (1.96 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table email modify column email char(50) ;

Query OK, 0 rows affected (1.34 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> desc eamil;

ERROR 1146 (42S02): Table'test01.eamil'doesn't exist

mysql> descemail;+-------+----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| uname | char(50) | YES | | NULL | |

| email | char(50) | YES | | NULL | |

+-------+----------+------+-----+---------+-------+

2 rows in set (0.00sec)

mysql> insert into email values('zhangsan','zhan@163.com'),('lilie','li@qq.com'),('hanmeimei','han@126.com');

Query OK,3 rows affected (0.28sec)

Records:3 Duplicates: 0 Warnings: 0mysql> select * fromemail;+-----------+--------------+

| uname | email |

+-----------+--------------+

| zhangsan | zhan@163.com |

| lilie | li@qq.com |

| hanmeimei | han@126.com |

+-----------+--------------+

3 rows in set (0.00sec)

mysql> select uname ,position('@' in email) fromemail;+-----------+------------------------+

| uname | position('@' in email) |

+-----------+------------------------+

| zhangsan | 5 |

| lilie | 3 |

| hanmeimei | 4 |

+-----------+------------------------+

3 rows in set (0.00sec)

mysql> select uname ,right(email,position('@' in email)) fromemail;+-----------+-------------------------------------+

| uname | right(email,position('@' in email)) |

+-----------+-------------------------------------+

| zhangsan | 3.com |

| lilie | com |

| hanmeimei | .com |

+-----------+-------------------------------------+

3 rows in set (0.00sec)

mysql> select uname ,right(email,char_length(email)-position('@' in email)) fromemail;+-----------+--------------------------------------------------------+

| uname | right(email,char_length(email)-position('@' in email)) |

+-----------+--------------------------------------------------------+

| zhangsan | 163.com |

| lilie | qq.com |

| hanmeimei | 126.com |

+-----------+--------------------------------------------------------+

3 rows in set (0.00sec)

mysql> select uname ,right(email,length(email)-position('@' in email)) fromemail;+-----------+---------------------------------------------------+

| uname | right(email,length(email)-position('@' in email)) |

+-----------+---------------------------------------------------+

| zhangsan | 163.com |

| lilie | qq.com |

| hanmeimei | 126.com |

+-----------+---------------------------------------------------+

3 rows in set (0.00sec)

mysql>#截取邮箱

mysql>#截取邮箱后半部分;

mysql> select uname ,right(email,length(email)-position('@' in email)) fromemail;+-----------+---------------------------------------------------+

| uname | right(email,length(email)-position('@' in email)) |

+-----------+---------------------------------------------------+

| zhangsan | 163.com |

| lilie | qq.com |

| hanmeimei | 126.com |

+-----------+---------------------------------------------------+

3 rows in set (0.00sec)

mysql>#日期时间函数,取当前时间

mysql> selectnow;

ERROR1054 (42S22): Unknown column 'now' in 'field list'mysql> selectnow();+---------------------+

| now() |

+---------------------+

| 2019-10-15 20:00:44 |

+---------------------+

1 row in set (0.05sec)

mysql> selectcurdate();+------------+

| curdate() |

+------------+

| 2019-10-15 |

+------------+

1 row in set (0.01sec)

mysql># now()返回datetime格式,curdate返回date格式

mysql> selectcurtime();+-----------+

| curtime() |

+-----------+

| 20:02:19 |

+-----------+

1 row in set (0.00sec)

mysql>#查看某一日是那一周的第几天

mysql> select dayofweek('2019-10-15');+-------------------------+

| dayofweek('2019-10-15') |

+-------------------------+

| 3 |

+-------------------------+

1 row in set (0.05sec)

mysql> select week('2019-10-15');+--------------------+

| week('2019-10-15') |

+--------------------+

| 41 |

+--------------------+

1 row in set (0.00sec)

mysql> select week('2019-12-30');+--------------------+

| week('2019-12-30') |

+--------------------+

| 52 |

+--------------------+

1 row in set (0.00sec)

mysql> selectweek(curdate());+-----------------+

| week(curdate()) |

+-----------------+

| 41 |

+-----------------+

1 row in set (0.00sec)

mysql> select week('2019-12-31');+--------------------+

| week('2019-12-31') |

+--------------------+

| 52 |

+--------------------+

1 row in set (0.00sec)

mysql>#案例:name

mysql># overtime 日期

mysql> # 5 2019-9-1mysql> # 6 2019-9-2mysql> # 3 2019-9-3mysql># 报表统计,按星期统计加班时间

mysql> create table jiaban(num int(10) ,time date);

Query OK,0 rows affected (0.52sec)

mysql> insert into jiaban values(3,"2019-9-1"),(4,'2019-9-2'),(5,"2019-9-3"),(6,'2019-9-10'),(19,'2019-9-18');

Query OK,5 rows affected (0.15sec)

Records:5 Duplicates: 0 Warnings: 0mysql> select * fromjiaban;+------+------------+

| num | time |

+------+------------+

| 3 | 2019-09-01 |

| 4 | 2019-09-02 |

| 5 | 2019-09-03 |

| 6 | 2019-09-10 |

| 19 | 2019-09-18 |

+------+------------+

5 rows in set (0.00sec)

mysql>#按星期统计加班时间;

mysql> select sum(num), week(time) fromjiaban ;+----------+------------+

| sum(num) | week(time) |

+----------+------------+

| 37 | 35 |

+----------+------------+

1 row in set (0.02sec)

mysql> select sum(num), week(time) from jiaban group byweek(time);+----------+------------+

| sum(num) | week(time) |

+----------+------------+

| 12 | 35 |

| 6 | 36 |

| 19 | 37 |

+----------+------------+

3 rows in set (0.00sec)

mysql> select num, week(time) from jiaban group byweek(time);+------+------------+

| num | week(time) |

+------+------------+

| 3 | 35 |

| 6 | 36 |

| 19 | 37 |

+------+------------+

3 rows in set (0.00sec)

mysql> select sum(num), week(time) from jiaban group byweek(time);+----------+------------+

| sum(num) | week(time) |

+----------+------------+

| 12 | 35 |

| 6 | 36 |

| 19 | 37 |

+----------+------------+

3 rows in set (0.00sec)

mysql> select *, week(time) fromjiaban;+------+------------+------------+

| num | time | week(time) |

+------+------------+------------+

| 3 | 2019-09-01 | 35 |

| 4 | 2019-09-02 | 35 |

| 5 | 2019-09-03 | 35 |

| 6 | 2019-09-10 | 36 |

| 19 | 2019-09-18 | 37 |

+------+------------+------------+

5 rows in set (0.00sec)

mysql>#加密函数,码得

mysql>#md5加密函数;

mysql> select md5('1');+----------------------------------+

| md5('1') |

+----------------------------------+

| c4ca4238a0b923820dcc509a6f75849b |

+----------------------------------+

1 row in set (0.07sec)

mysql> select md5('1');+----------------------------------+

| md5('1') |

+----------------------------------+

| c4ca4238a0b923820dcc509a6f75849b |

+----------------------------------+

1 row in set (0.00sec)

mysql>#md5是不可逆的

mysql>#流程h控制函数

mysql> #case变量

mysql> 2 when 值 then语句;-> 3 when 值 then语句;-> 4 else语句;-> 5 end case;->\c

mysql> #if(gender=0,'优先','等待') asvip

mysql>ifnull->\c

mysql>#ifnull的用法,判断第一个表达式是否为null 如果为null 返回第2 个表达式的值

mysql>#如果不为null 返回自身,即表达式1

mysql> select ifnull('',a);

ERROR1054 (42S22): Unknown column 'a' in 'field list'mysql> select ifnull('','a');+----------------+

| ifnull('','a') |

+----------------+

| |

+----------------+

1 row in set (0.00sec)

mysql> select ifnull(null,'a');+------------------+

| ifnull(null,'a') |

+------------------+

| a |

+------------------+

1 row in set (0.00sec)

mysql>#系统调试函数

mysql>mysql>mysql> select user();+----------------+

| user() |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00sec)

mysql>#user返回用户及主机,判断自己的身份

mysql> #database(),返回当前操作的数据库名

mysql> select database();+------------+

| database() |

+------------+

| test01 |

+------------+

1 row in set (0.00sec)

mysql> selectversion();+-----------+

| version() |

+-----------+

| 8.0.12 |

+-----------+

1 row in set (0.00sec)

mysql>#vension() 返回数据库的版本

mysql>#时间的h格式化,优先在业务逻辑上使用,

mysql> #总结: where条件中,对某列使用了函数,由此列的索引不发挥作用

mysql> #视图 viewmysql> view将查询表当作临时表使用,->\c

mysql># 查询每个栏目下商品的平均价格,并对平均价格取前三的栏目

mysql> select cat_id,avg(shop_price),count(goods_id) from goods group bycat_id;+--------+-----------------+-----------------+

| cat_id | avg(shop_price) | count(goods_id) |

+--------+-----------------+-----------------+

| 4 | 2297.000000 | 3 |

| 8 | 75.333333 | 3 |

| 11 | 31.000000 | 2 |

| 3 | 1746.066667 | 15 |

| 2 | 823.330000 | 1 |

| 5 | 3700.000000 | 1 |

| 13 | 33.500000 | 2 |

| 15 | 70.000000 | 2 |

| 14 | 54.000000 | 2 |

+--------+-----------------+-----------------+

9 rows in set (0.10sec)

mysql> select cat_id,avg(shop_price) as average,count(goods_id) from goods group by cat_id order by average desc limit 3;+--------+-------------+-----------------+

| cat_id | average | count(goods_id) |

+--------+-------------+-----------------+

| 5 | 3700.000000 | 1 |

| 4 | 2297.000000 | 3 |

| 3 | 1746.066667 | 15 |

+--------+-------------+-----------------+

3 rows in set (0.00sec)

mysql> select cat_id,avg(shop_price) as average,count(goods_id) from goods group by cat_id order by average asc limit 3;+--------+-----------+-----------------+

| cat_id | average | count(goods_id) |

+--------+-----------+-----------------+

| 11 | 31.000000 | 2 |

| 13 | 33.500000 | 2 |

| 14 | 54.000000 | 2 |

+--------+-----------+-----------------+

3 rows in set (0.00sec)

mysql>#取平均价格由高到底第三到第5的栏目

mysql> select cat_id,avg(shop_price) as average,count(goods_id) from goods group by cat_id order by average asc;+--------+-------------+-----------------+

| cat_id | average | count(goods_id) |

+--------+-------------+-----------------+

| 11 | 31.000000 | 2 |

| 13 | 33.500000 | 2 |

| 14 | 54.000000 | 2 |

| 15 | 70.000000 | 2 |

| 8 | 75.333333 | 3 |

| 2 | 823.330000 | 1 |

| 3 | 1746.066667 | 15 |

| 4 | 2297.000000 | 3 |

| 5 | 3700.000000 | 1 |

+--------+-------------+-----------------+

9 rows in set (0.00sec)

mysql> select cat_id,avg(shop_price) as average,count(goods_id) from goods group bycat_id;+--------+-------------+-----------------+

| cat_id | average | count(goods_id) |

+--------+-------------+-----------------+

| 4 | 2297.000000 | 3 |

| 8 | 75.333333 | 3 |

| 11 | 31.000000 | 2 |

| 3 | 1746.066667 | 15 |

| 2 | 823.330000 | 1 |

| 5 | 3700.000000 | 1 |

| 13 | 33.500000 | 2 |

| 15 | 70.000000 | 2 |

| 14 | 54.000000 | 2 |

+--------+-------------+-----------------+

9 rows in set (0.00sec)

mysql># 将结果集设为a a频繁用到,因此用到视图

mysql># 表通过某种运算得到的影子

mysql> #如何创建视图,建视图的时候语法 create view 表名 as查询语句;

mysql> create view state as select cat_id,avg(shop_price) as average,count(goods_id) from goods group bycat_id;

Query OK,0 rows affected (0.27sec)

mysql>show tables;+------------------+

| Tables_in_test01 |

+------------------+

| a |

| b |

| boy |

| category |

| email |

| girl |

| goods |

| jiaban |

| m |

| mian |

| result |

| state |

| t |

| user |

+------------------+

14 rows in set (0.01sec)

mysql>#多了一张state表

mysql> select * fromstate;+--------+-------------+-----------------+

| cat_id | average | count(goods_id) |

+--------+-------------+-----------------+

| 4 | 2297.000000 | 3 |

| 8 | 75.333333 | 3 |

| 11 | 31.000000 | 2 |

| 3 | 1746.066667 | 15 |

| 2 | 823.330000 | 1 |

| 5 | 3700.000000 | 1 |

| 13 | 33.500000 | 2 |

| 15 | 70.000000 | 2 |

| 14 | 54.000000 | 2 |

+--------+-------------+-----------------+

9 rows in set (0.06sec)

mysql> select * from state order by average limit 3;+--------+-----------+-----------------+

| cat_id | average | count(goods_id) |

+--------+-----------+-----------------+

| 11 | 31.000000 | 2 |

| 13 | 33.500000 | 2 |

| 14 | 54.000000 | 2 |

+--------+-----------+-----------------+

3 rows in set (0.00sec)

mysql>#视图一旦创建完毕,可以完全当表使用,

mysql># 简化查询,复杂的统计,

mysql>#更清晰的权限控制

mysql># 开放权限,但是不想开放密码字段,用视图

mysql># 多表查询,分表时候用,将表头放在视图中;

mysql>#视图是表的影子,表与视图相互影响的关系

mysql>#表的数据变化,影响视图的变化,

mysql>#以此例,,此视图的数据不能更改,其数据来自shop_price的平均值

mysql>#视图是否能够增删改呢?

mysql>#某种情况下是可以删除的,11对应,即表的数据能够推出视图的数据,视图的数据能够推出表的数据

mysql> #删除视图即 drop table/view 表名/视图名

mysql> exitmysql>show databases;+--------------------+

| Database |

+--------------------+

| bookstore |

| clouddb01 |

| clouddb02 |

| clouddb03 |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| shop |

| ssm_crud |

| struts |

| student |

| sys |

| test |

| test01 |

+--------------------+

15 rows in set (0.18sec)

mysql> usetest01;Databasechanged

mysql>#algorithm

mysql> # merge ---合并查询语句

mysql>#tem

mysql> #temptable ---临时表

mysql> #undefined --未定义,由系统判断

mysql>#建一张简单的查询视图,不同临时表,只用y条件合并

mysql> create view v1 as select * from goods where shop_price>300;

Query OK,0 rows affected (0.52sec)

mysql>#查询视图

mysql> select goods_id ,goods_name ,shop_price from v1 where shop_price<500;+----------+---------------+------------+

| goods_id | goods_name | shop_price |

+----------+---------------+------------+

| 8 | 飞利浦9@9v | 399.00 |

+----------+---------------+------------+

1 row in set (0.01sec)

mysql> #总的条件是>300 <500;

mysql>#这个简单的查询还建立临时表的话,开销有点大;

mysql>#这是我们可以指定algorithm为merge

mysql> create algorithm=merge view v2 as select * from goods where shop_price>300;

Query OK,0 rows affected (0.21sec)

mysql> select goods_id ,goods_name ,shop_price from v2 where shop_price<500;+----------+---------------+------------+

| goods_id | goods_name | shop_price |

+----------+---------------+------------+

| 8 | 飞利浦9@9v | 399.00 |

+----------+---------------+------------+

1 row in set (0.00sec)

mysql>#有的时候必须建临时表,

mysql>#比如,每个栏目的平均商品价格

mysql>#比如每个栏目下的最高d价格的商品

mysql> create algorithm=temptable view v3 as select goods_id,cat_id,goods_name from goods order by cat_id asc ,goods_id desc;

Query OK,0 rows affected (0.21sec)

mysql> select * from v3 group bycat_id;+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 16 | 2 | 恒基伟业g101 |

| 32 | 3 | 诺基亚n85 |

| 18 | 4 | 夏新t5 |

| 23 | 5 | 诺基亚n96 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 6 | 11 | 胜创kingmax内存卡 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 28 | 15 | 联通50元充值卡 |

+----------+--------+----------------------------------------+

9 rows in set (0.05sec)

mysql> select * fromv3;+----------+--------+----------------------------------------+

| goods_id | cat_id | goods_name |

+----------+--------+----------------------------------------+

| 16 | 2 | 恒基伟业g101 |

| 32 | 3 | 诺基亚n85 |

| 31 | 3 | 摩托罗拉e8 |

| 24 | 3 | p806 |

| 22 | 3 | 多普达touch hd |

| 21 | 3 | 金立 a30 |

| 20 | 3 | 三星bc01 |

| 19 | 3 | 三星sgh-f258 |

| 17 | 3 | 夏新n7 |

| 15 | 3 | 摩托罗拉a810 |

| 13 | 3 | 诺基亚5320 xpressmusic |

| 12 | 3 | 摩托罗拉a810 |

| 11 | 3 | 索爱c702c |

| 10 | 3 | 索爱c702c |

| 9 | 3 | 诺基亚e66 |

| 8 | 3 | 飞利浦9@9v |

| 18 | 4 | 夏新t5 |

| 14 | 4 | 诺基亚5800xm |

| 1 | 4 | kd876 |

| 23 | 5 | 诺基亚n96 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 |

| 4 | 8 | 诺基亚n85原装充电器 |

| 3 | 8 | 诺基亚原装5800耳机 |

| 6 | 11 | 胜创kingmax内存卡 |

| 5 | 11 | 索爱原装m2卡读卡器 |

| 26 | 13 | 小灵通/固话20元充值卡 |

| 25 | 13 | 小灵通/固话50元充值卡 |

| 30 | 14 | 移动20元充值卡 |

| 29 | 14 | 移动100元充值卡 |

| 28 | 15 | 联通50元充值卡 |

| 27 | 15 | 联通100元充值卡 |

+----------+--------+----------------------------------------+

31 rows in set (0.00sec)

mysql> drop viewv3;

Query OK,0 rows affected (0.27sec)

mysql> create algorithm=temptable view v3 as select goods_id,cat_id,goods_name,shop_price from goods order by cat_id asc ,shop_price desc;

Query OK,0 rows affected (0.31sec)

mysql> select * fromv3 ;+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 32 | 3 | 诺基亚n85 | 3010.00 |

| 17 | 3 | 夏新n7 | 2300.00 |

| 9 | 3 | 诺基亚e66 | 2298.00 |

| 21 | 3 | 金立 a30 | 2000.00 |

| 24 | 3 | p806 | 2000.00 |

| 31 | 3 | 摩托罗拉e8 | 1337.00 |

| 10 | 3 | 索爱c702c | 1328.00 |

| 13 | 3 | 诺基亚5320 xpressmusic | 1311.00 |

| 11 | 3 | 索爱c702c | 1300.00 |

| 12 | 3 | 摩托罗拉a810 | 983.00 |

| 19 | 3 | 三星sgh-f258 | 858.00 |

| 15 | 3 | 摩托罗拉a810 | 788.00 |

| 8 | 3 | 飞利浦9@9v | 399.00 |

| 20 | 3 | 三星bc01 | 280.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 14 | 4 | 诺基亚5800xm | 2625.00 |

| 1 | 4 | kd876 | 1388.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 3 | 8 | 诺基亚原装5800耳机 | 68.00 |

| 4 | 8 | 诺基亚n85原装充电器 | 58.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 5 | 11 | 索爱原装m2卡读卡器 | 20.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 26 | 13 | 小灵通/固话20元充值卡 | 19.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 30 | 14 | 移动20元充值卡 | 18.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

| 28 | 15 | 联通50元充值卡 | 45.00 |

+----------+--------+----------------------------------------+------------+

31 rows in set (0.00sec)

mysql> select * from v3 group bycat_id;+----------+--------+----------------------------------------+------------+

| goods_id | cat_id | goods_name | shop_price |

+----------+--------+----------------------------------------+------------+

| 16 | 2 | 恒基伟业g101 | 823.33 |

| 22 | 3 | 多普达touch hd | 5999.00 |

| 18 | 4 | 夏新t5 | 2878.00 |

| 23 | 5 | 诺基亚n96 | 3700.00 |

| 7 | 8 | 诺基亚n85原装立体声耳机hs-82 | 100.00 |

| 6 | 11 | 胜创kingmax内存卡 | 42.00 |

| 25 | 13 | 小灵通/固话50元充值卡 | 48.00 |

| 29 | 14 | 移动100元充值卡 | 90.00 |

| 27 | 15 | 联通100元充值卡 | 95.00 |

+----------+--------+----------------------------------------+------------+

9 rows in set (0.03sec)

mysql>#编码问题

mysql>#字符编码到字符集的映射

mysql> #gb2312,utf-8mysql> #unicode 码表,----- utf-8 压缩文件的关系

mysql> #如何截取utf-8无乱码

mysql>#从头开始,取1个字节,

mysql>#通过位运算,计算连续的1的g个数

mysql>#如为0 截取1个

mysql>#如为n 则截取n个

mysql> gbk转为utf-8

->\c

mysql>#jbk

mysql> #jbk 转unicode 在转utf-8mysql>#乱码是怎么形成,编码和解码不统一

mysql>#转码过程字节丢失

mysql> create table tem(id int ,time datetime not null defaultnow() );;

Query OK,0 rows affected (0.95sec)

ERROR:

No query specified

mysql> desctem;+-------+----------+------+-----+-------------------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+----------+------+-----+-------------------+-------+

| id | int(11) | YES | | NULL | |

| time | datetime | NO | | CURRENT_TIMESTAMP | |

+-------+----------+------+-----+-------------------+-------+

2 rows in set (0.13sec)

mysql> drop tabletem;

Query OK,0 rows affected (0.49sec)

mysql> create table tem(id int(11) not null primary key ,name varchar(50) not null ,time datetime not null defaultnow());

Query OK,0 rows affected (0.39sec)

mysql> insert into tem(id,name) values(1,"lili"),(2,"韩梅梅"),(3,"笑话"),(4,"哈哈");

Query OK,4 rows affected (0.20sec)

Records:4 Duplicates: 0 Warnings: 0mysql> select * fromtem;+----+-----------+---------------------+

| id | name | time |

+----+-----------+---------------------+

| 1 | lili | 2019-10-16 19:45:54 |

| 2 | 韩梅梅 | 2019-10-16 19:45:54 |

| 3 | 笑话 | 2019-10-16 19:45:54 |

| 4 | 哈哈 | 2019-10-16 19:45:54 |

+----+-----------+---------------------+

4 rows in set (0.00sec)

mysql> delete from tem order by id desc limit 2;

Query OK,2 rows affected (0.33sec)

mysql> select * fromtem;+----+-----------+---------------------+

| id | name | time |

+----+-----------+---------------------+

| 1 | lili | 2019-10-16 19:45:54 |

| 2 | 韩梅梅 | 2019-10-16 19:45:54 |

+----+-----------+---------------------+

2 rows in set (0.00sec)

mysql> select *,week(time) fromtem;+----+-----------+---------------------+------------+

| id | name | time | week(time) |

+----+-----------+---------------------+------------+

| 1 | lili | 2019-10-16 19:45:54 | 41 |

| 2 | 韩梅梅 | 2019-10-16 19:45:54 | 41 |

+----+-----------+---------------------+------------+

2 rows in set (0.01sec)

mysql>#设置client 和connection的字符集

mysql> # set character_set_client=gbk;

mysql> # set character_set_connection=utf8

mysql> # set character_set_ressults=gbk;

mysql> # set character_set_results=gbk;

mysql> # 1366字符编码问题

mysql>#大转小会丢失

mysql> #即 server> connection>client 编码范围

mysql>#client con results 都是hgbk

mysql>#client con results 都是gbk

mysql>#若三者都是gbk 则可以简写

mysql> # 即 setnames gbk

mysql>#utf8中文截取无乱码

mysql>#存储引擎,

mysql># innodb myisam innodb支持事务,

mysql>mysql> #start transaction;

mysql> commit;

Query OK,0 rows affected (0.00sec)

mysql> #commit;

mysql> #rollback;

mysql> exit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值