• MySQL基本简单操作03


    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)
    

    这样就看到了全部的值。
    各位大佬不介意的话我只想要一点流量。个人博客

  • 相关阅读:
    CSRF 攻击
    PHP中HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR的使用
    PHP PDO函数库详解
    STK基础
    opnet统计结果的采集模式——capture mode
    一个博客园代码高亮的方案
    博客园TinyMCE编辑器中插入的代码块使用HTML编辑器再编辑
    local statistics和global statistics的区别
    opnet的函数中FIN、FRET和FOUT
    福昕阅读器默认打开pdf文件视图大小
  • 原文地址:https://www.cnblogs.com/Timesi/p/9321536.html
Copyright © 2020-2023  润新知