• MySQL学习笔记12


    MySQL 查询语句:

    1、查询五子句:(重点)

    mysql> select */字段列表 from 数据表名称 where 子句 group by 子句 having 子句 order by 子句 limit 子句;

    1)where 子句;条件筛选。

    2)group by 子句;分组子句;统计学中的概念

    3)having 子句; having是放在分组之后的,跟where有点类似。

    4)order by 子句;排序子句;按年龄从大到小的排序。

    5)limit 子句;限制条件的,例如:前三名同学的信息。

    注意:五子句的顺序是固定的。不能颠倒。顺序错了,MySQL就会报错。

    1)Where子句:

    案例1: like模糊查询语句,

    准备查询:

    1. mysql> create table tb_student(
    2. -> id mediumint not null auto_increment,
    3. -> name varchar(20),
    4. -> age tinyint unsigned default 0,
    5. -> gender enum('男','女'),
    6. -> address varchar(255),
    7. -> primary key(id)
    8. -> ) engine=innodb default charset=utf8;
    9. Query OK, 0 rows affected (0.00 sec)
    10. mysql> insert into tb_student values (null,'刘备',33,'男','湖北省武汉市');
    11. Query OK, 1 row affected (0.01 sec)
    12. mysql> insert into tb_student values (null,'貂蝉',18,'女','湖南省长沙市');
    13. Query OK, 1 row affected (0.00 sec)
    14. mysql> insert into tb_student values (null,'关羽',32,'男','湖北省荆州市');
    15. Query OK, 1 row affected (0.00 sec)
    16. mysql> insert into tb_student values (null,'大乔',20,'女','河南省漯河市');
    17. Query OK, 1 row affected (0.00 sec)
    18. mysql> insert into tb_student values (null,'赵云',25,'男','河北省石家庄市');
    19. Query OK, 1 row affected (0.01 sec)
    20. mysql>
    21. mysql> insert into tb_student values (null,'小乔',18,'女','湖北省荆州市');
    22. Query OK, 1 row affected (0.00 sec)
    23. mysql> select * from tb_student;
    24. +----+--------+------+--------+-----------------------+
    25. | id | name | age | gender | address |
    26. +----+--------+------+--------+-----------------------+
    27. | 1 | 刘备 | 33 | 男 | 湖北省武汉市 |
    28. | 2 | 貂蝉 | 18 | 女 | 湖南省长沙市 |
    29. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    30. | 4 | 大乔 | 20 | 女 | 河南省漯河市 |
    31. | 5 | 赵云 | 25 | 男 | 河北省石家庄市 |
    32. | 6 | 小乔 | 18 | 女 | 湖北省荆州市 |
    33. +----+--------+------+--------+-----------------------+
    34. 6 rows in set (0.00 sec)

    查询姓"关"的同学信息(name字段对应值应该以"关"开头)

    1. mysql> select * from tb_student where name like '关%';
    2. +----+--------+------+--------+--------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+--------------------+
    5. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    6. +----+--------+------+--------+--------------------+
    7. 1 row in set (0.00 sec)

    like是模糊匹配。%是匹配0个或者多个字符。_下划线匹配单个字符。

    like 有点类似Linux的grep命令。

    案例:like模糊查询语句,查询名字中带"蝉"字的同学信息  

    1. mysql> select * from tb_student where name like '%蝉%';
    2. +----+--------+------+--------+--------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+--------------------+
    5. | 2 | 貂蝉 | 18 | 女 | 湖南省长沙市 |
    6. +----+--------+------+--------+--------------------+
    7. 1 row in set (0.00 sec)

    案例:like模糊查询语句,查询云字结尾,且名字为2个字的同学信息。

    1. mysql> select * from tb_student where name like '_云';
    2. +----+--------+------+--------+-----------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+-----------------------+
    5. | 5 | 赵云 | 25 | 男 | 河北省石家庄市 |
    6. +----+--------+------+--------+-----------------------+
    7. 1 row in set (0.00 sec)

    案例:获取学生表中id号为3的同学信息。

    1. mysql> select * from tb_student where id=3;
    2. +----+--------+------+--------+--------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+--------------------+
    5. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    6. +----+--------+------+--------+--------------------+
    7. 1 row in set (0.04 sec)

    案例:获取年龄大于25的学生信息。

    1. mysql> select * from tb_student where age > 25;
    2. +----+--------+------+--------+--------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+--------------------+
    5. | 1 | 刘备 | 33 | 男 | 湖北省武汉市 |
    6. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    7. +----+--------+------+--------+--------------------+
    8. 2 rows in set (0.00 sec)

    案例:获取学生表中,性别不为男的同学信息(获取女同学的信息。)

    1. mysql> select * from tb_student where gender != '男';
    2. +----+--------+------+--------+--------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+--------------------+
    5. | 2 | 貂蝉 | 18 | 女 | 湖南省长沙市 |
    6. | 4 | 大乔 | 20 | 女 | 河南省漯河市 |
    7. | 6 | 小乔 | 18 | 女 | 湖北省荆州市 |
    8. +----+--------+------+--------+--------------------+
    9. 3 rows in set (0.00 sec)
    10. mysql> select * from tb_student where gender <> '男';
    11. +----+--------+------+--------+--------------------+
    12. | id | name | age | gender | address |
    13. +----+--------+------+--------+--------------------+
    14. | 2 | 貂蝉 | 18 | 女 | 湖南省长沙市 |
    15. | 4 | 大乔 | 20 | 女 | 河南省漯河市 |
    16. | 6 | 小乔 | 18 | 女 | 湖北省荆州市 |
    17. +----+--------+------+--------+--------------------+
    18. 3 rows in set (0.00 sec)

    逻辑运算符:

    案例:获取学生表中,年龄大于30岁的男同学的信息。

    1. mysql> select * from tb_student where age > 30 and gender = '男';
    2. +----+--------+------+--------+--------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+--------------------+
    5. | 1 | 刘备 | 33 | 男 | 湖北省武汉市 |
    6. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    7. +----+--------+------+--------+--------------------+
    8. 2 rows in set (0.04 sec)
    9. mysql> select * from tb_student where age > 30 && gender = '男';
    10. +----+--------+------+--------+--------------------+
    11. | id | name | age | gender | address |
    12. +----+--------+------+--------+--------------------+
    13. | 1 | 刘备 | 33 | 男 | 湖北省武汉市 |
    14. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    15. +----+--------+------+--------+--------------------+
    16. 2 rows in set (0.00 sec)

    案例:获取id为1/3/5的同学信息。

    1. mysql> select * from tb_student where id = 1 or id = 3 or id=5;
    2. +----+--------+------+--------+-----------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+-----------------------+
    5. | 1 | 刘备 | 33 | 男 | 湖北省武汉市 |
    6. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    7. | 5 | 赵云 | 25 | 男 | 河北省石家庄市 |
    8. +----+--------+------+--------+-----------------------+
    9. 3 rows in set (0.00 sec)

    区间:

    案例:获取年龄在18周岁~25周岁之间的同学信息。

    1. mysql> select * from tb_student where age between 18 and 25;
    2. +----+--------+------+--------+-----------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+-----------------------+
    5. | 2 | 貂蝉 | 18 | 女 | 湖南省长沙市 |
    6. | 4 | 大乔 | 20 | 女 | 河南省漯河市 |
    7. | 5 | 赵云 | 25 | 男 | 河北省石家庄市 |
    8. | 6 | 小乔 | 18 | 女 | 湖北省荆州市 |
    9. +----+--------+------+--------+-----------------------+
    10. 4 rows in set (0.00 sec)
    11. mysql> select * from tb_student where age >= 18 && age <= 25;
    12. +----+--------+------+--------+-----------------------+
    13. | id | name | age | gender | address |
    14. +----+--------+------+--------+-----------------------+
    15. | 2 | 貂蝉 | 18 | 女 | 湖南省长沙市 |
    16. | 4 | 大乔 | 20 | 女 | 河南省漯河市 |
    17. | 5 | 赵云 | 25 | 男 | 河北省石家庄市 |
    18. | 6 | 小乔 | 18 | 女 | 湖北省荆州市 |
    19. +----+--------+------+--------+-----------------------+
    20. 4 rows in set (0.00 sec)

    in和not in:

    1. mysql> select * from tb_student where id in (2, 4, 6);
    2. +----+--------+------+--------+--------------------+
    3. | id | name | age | gender | address |
    4. +----+--------+------+--------+--------------------+
    5. | 2 | 貂蝉 | 18 | 女 | 湖南省长沙市 |
    6. | 4 | 大乔 | 20 | 女 | 河南省漯河市 |
    7. | 6 | 小乔 | 18 | 女 | 湖北省荆州市 |
    8. +----+--------+------+--------+--------------------+
    9. 3 rows in set (0.00 sec)
    10. mysql> select * from tb_student where id not in (2, 4, 6);
    11. +----+--------+------+--------+-----------------------+
    12. | id | name | age | gender | address |
    13. +----+--------+------+--------+-----------------------+
    14. | 1 | 刘备 | 33 | 男 | 湖北省武汉市 |
    15. | 3 | 关羽 | 32 | 男 | 湖北省荆州市 |
    16. | 5 | 赵云 | 25 | 男 | 河北省石家庄市 |
    17. +----+--------+------+--------+-----------------------+
    18. 3 rows in set (0.00 sec)

  • 相关阅读:
    【我不熟悉的javascript】使用console.clear()清除控制台
    了解操作系统,什么是操作系统Operation System?
    TensorFlow案例学习:使用 YAMNet 进行迁移学习,对音频进行识别
    B树的插入和删除
    C语言的文件操作(文件指针、文件缓冲区、文件的打开、读写操作)
    2022年加氢工艺考试题模拟考试平台操作
    java毕业设计简历系统(附源码、数据库)
    674. 最长连续递增序列
    multisim仿真电路图红绿灯
    Matlab/simulink基于MPPT风光储微电网建模仿真(持续更新)
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/133235682