zoukankan      html  css  js  c++  java
  • 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)
    

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

  • 相关阅读:
    spring@Async注解实现异步方法调用
    mysql锁机制
    springboot启动时执行任务CommandLineRunner
    java-并发编程之fork/join框架
    mysql explain 执行计划详解
    mysql 时间相关sql , 按天、月、季度、年等条件进行查询
    swagger2 常用注解说明
    VirtualBox 安装CentOS虚拟机网卡配置
    RestFul是啥
    文本内文字字数过多,显示省略号
  • 原文地址:https://www.cnblogs.com/Timesi/p/9321536.html
Copyright © 2011-2022 走看看