2025年3月29日 星期六 甲辰(龙)年 月廿八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MySQL

MySQL基本简单操作03

时间:12-20来源:作者:点击数:48
MySQL基本简单操作

现在我创建了一个数据表,表的内容如下:

  • mysql> select * from gubeiqing_table;
  • +----------+-----+
  • | name | age |
  • +----------+-----+
  • | gbq | 21 |
  • | zhangsan | 20 |
  • | lisi | 22 |
  • +----------+-----+
  • 3 rows in set (0.00 sec)

我现在需要对这些数据按照年龄进行一个升序排序。

  • mysql> select * from gubeiqing_table order by age ASC;
  • +----------+-----+
  • | name | age |
  • +----------+-----+
  • | zhangsan | 20 |
  • | gbq | 21 |
  • | lisi | 22 |
  • +----------+-----+
  • 3 rows in set (0.00 sec)

可以看到现在的数据库已经按照升序的方式进行排序了。

order by是用来排序的,ASC是升序排序,DESC是降序排序。

现在我有一个这样的数据表。

  • mysql> select * from gubeiqing_table;
  • +----------+-----+
  • | name | age |
  • +----------+-----+
  • | gbq | 21 |
  • | zhangsan | 20 |
  • | lisi | 22 |
  • | zhangsi | 21 |
  • | lisan | 22 |
  • +----------+-----+
  • 5 rows in set (0.00 sec)

我想知道这个数据表里有哪些年龄段。

  • mysql> select age from gubeiqing_table group by age;
  • +-----+
  • | age |
  • +-----+
  • | 21 |
  • | 20 |
  • | 22 |
  • +-----+
  • 3 rows in set (0.00 sec)

首先从数据表中查找age字段,接着通过group by将这些年龄分组。

还可以统计这些年龄分别有多少人。

  • mysql> select age,count(*) from gubeiqing_table group by age;
  • +-----+----------+
  • | age | count(*) |
  • +-----+----------+
  • | 21 | 2 |
  • | 20 | 1 |
  • | 22 | 2 |
  • +-----+----------+
  • 3 rows in set (0.00 sec)

接着学一下联合查询,使用UNIONUNION用于连接两个以上的SELECT语句的结果组合到一个结果集合中,多个SELECT语句会删除重复的数据。。

  • mysql> show tables;
  • +---------------------+
  • | Tables_in_gubeiqing |
  • +---------------------+
  • | gbq |
  • | gubeiqing_table |
  • +---------------------+
  • 2 rows in set (0.00 sec)
  • mysql> select * from gbq;
  • +------+-----+
  • | name | age |
  • +------+-----+
  • | qaz | 20 |
  • | wsx | 23 |
  • | edc | 21 |
  • +------+-----+
  • 3 rows in set (0.00 sec)
  • mysql> select * from gubeiqing_table;
  • +----------+-----+
  • | name | age |
  • +----------+-----+
  • | gbq | 21 |
  • | zhangsan | 20 |
  • | lisi | 22 |
  • | zhangsi | 21 |
  • | lisan | 22 |
  • +----------+-----+
  • 5 rows in set (0.00 sec)

我现在想查看两个表

  • mysql> select age from gbq
  • -> union
  • -> select age from gubeiqing_table;
  • +-----+
  • | age |
  • +-----+
  • | 20 |
  • | 23 |
  • | 21 |
  • | 22 |
  • +-----+
  • 4 rows in set (0.00 sec)

现在看到的是所有的值,但是并不是这个字段所以的值。用UNION看到的是去重之后的所有值,如果不想去重那么要使用UNION ALL

  • mysql> select age from gbq
  • -> union all
  • -> select age from gubeiqing_table;
  • +-----+
  • | age |
  • +-----+
  • | 20 |
  • | 23 |
  • | 21 |
  • | 21 |
  • | 20 |
  • | 22 |
  • | 21 |
  • | 22 |
  • +-----+
  • 8 rows in set (0.00 sec)

这样就看到了全部的值。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门