MySQL学习笔记12

news/2024/10/22 21:49:39/

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模糊查询语句,

准备查询:

mysql> create table tb_student(-> id mediumint not null auto_increment,-> name varchar(20),-> age tinyint unsigned default 0,-> gender enum('男','女'),-> address varchar(255),-> primary key(id)-> ) engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.00 sec)mysql> insert into tb_student values (null,'刘备',33,'男','湖北省武汉市');
Query OK, 1 row affected (0.01 sec)mysql> insert into tb_student values (null,'貂蝉',18,'女','湖南省长沙市');
Query OK, 1 row affected (0.00 sec)mysql> insert into tb_student values (null,'关羽',32,'男','湖北省荆州市');
Query OK, 1 row affected (0.00 sec)mysql> insert into tb_student values (null,'大乔',20,'女','河南省漯河市');
Query OK, 1 row affected (0.00 sec)mysql> insert into tb_student values (null,'赵云',25,'男','河北省石家庄市');
Query OK, 1 row affected (0.01 sec)mysql>
mysql> insert into tb_student values (null,'小乔',18,'女','湖北省荆州市');
Query OK, 1 row affected (0.00 sec)mysql> select * from tb_student;
+----+--------+------+--------+-----------------------+
| id | name   | age  | gender | address               |
+----+--------+------+--------+-----------------------+
|  1 | 刘备   |   33 | 男     | 湖北省武汉市          |
|  2 | 貂蝉   |   18 | 女     | 湖南省长沙市          |
|  3 | 关羽   |   32 | 男     | 湖北省荆州市          |
|  4 | 大乔   |   20 | 女     | 河南省漯河市          |
|  5 | 赵云   |   25 | 男     | 河北省石家庄市        |
|  6 | 小乔   |   18 | 女     | 湖北省荆州市          |
+----+--------+------+--------+-----------------------+
6 rows in set (0.00 sec)

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

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

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

like 有点类似Linux的grep命令。

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

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

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

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

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

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

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

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

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

mysql> select * from tb_student where gender != '男';
+----+--------+------+--------+--------------------+
| id | name   | age  | gender | address            |
+----+--------+------+--------+--------------------+
|  2 | 貂蝉   |   18 | 女     | 湖南省长沙市       |
|  4 | 大乔   |   20 | 女     | 河南省漯河市       |
|  6 | 小乔   |   18 | 女     | 湖北省荆州市       |
+----+--------+------+--------+--------------------+
3 rows in set (0.00 sec)mysql> select * from tb_student where gender <> '男';
+----+--------+------+--------+--------------------+
| id | name   | age  | gender | address            |
+----+--------+------+--------+--------------------+
|  2 | 貂蝉   |   18 | 女     | 湖南省长沙市       |
|  4 | 大乔   |   20 | 女     | 河南省漯河市       |
|  6 | 小乔   |   18 | 女     | 湖北省荆州市       |
+----+--------+------+--------+--------------------+
3 rows in set (0.00 sec)

逻辑运算符:

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

mysql> select * from tb_student where age > 30 and gender = '男';
+----+--------+------+--------+--------------------+
| id | name   | age  | gender | address            |
+----+--------+------+--------+--------------------+
|  1 | 刘备   |   33 | 男     | 湖北省武汉市       |
|  3 | 关羽   |   32 | 男     | 湖北省荆州市       |
+----+--------+------+--------+--------------------+
2 rows in set (0.04 sec)mysql> select * from tb_student where age > 30 && gender = '男';
+----+--------+------+--------+--------------------+
| id | name   | age  | gender | address            |
+----+--------+------+--------+--------------------+
|  1 | 刘备   |   33 | 男     | 湖北省武汉市       |
|  3 | 关羽   |   32 | 男     | 湖北省荆州市       |
+----+--------+------+--------+--------------------+
2 rows in set (0.00 sec)

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

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

区间:

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

mysql> select * from tb_student where age between 18 and 25;
+----+--------+------+--------+-----------------------+
| id | name   | age  | gender | address               |
+----+--------+------+--------+-----------------------+
|  2 | 貂蝉   |   18 | 女     | 湖南省长沙市          |
|  4 | 大乔   |   20 | 女     | 河南省漯河市          |
|  5 | 赵云   |   25 | 男     | 河北省石家庄市        |
|  6 | 小乔   |   18 | 女     | 湖北省荆州市          |
+----+--------+------+--------+-----------------------+
4 rows in set (0.00 sec)mysql> select * from tb_student where age >= 18 && age <= 25;
+----+--------+------+--------+-----------------------+
| id | name   | age  | gender | address               |
+----+--------+------+--------+-----------------------+
|  2 | 貂蝉   |   18 | 女     | 湖南省长沙市          |
|  4 | 大乔   |   20 | 女     | 河南省漯河市          |
|  5 | 赵云   |   25 | 男     | 河北省石家庄市        |
|  6 | 小乔   |   18 | 女     | 湖北省荆州市          |
+----+--------+------+--------+-----------------------+
4 rows in set (0.00 sec)

in和not in:

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


http://www.ppmy.cn/news/1123311.html

相关文章

SystemC入门学习-第3章 数据类型

本章将详细的描述SystemC的数据类型&#xff0c;并介绍这些类型的数据可以进行哪些操作。比如值保持器&#xff08;value holder&#xff09;就是一种特殊的类型。在所有的类型中&#xff0c;最重要的是bool和sc_uint两种类型 3.1 值保持器 值保持器有三种&#xff1a; 变量…

41. Linux系统配置FTP服务器并在QT中使用QFtp实现文件上传

1. 说明 这篇博客主要记录一些在Linux系统中搭建FTP服务器时踩过的一些坑,以及在使用QFtp上传文件时需要注意的问题。 2. FTP环境搭建 在linux系统中,需要安装vsftpd,可以在终端中输入下面的命令进行安装: sudo apt-get install vsftpd使用上述命令安装后,系统中会有一…

pytorch安装教程

写在前面&#xff1a;配置pytorch着实有很多坑&#xff0c;不过最终结果算好的&#xff0c;话不多说&#xff0c;直接上干货。其中想要知道如何解决torch.cuda.is_available(&#xff09;返回false的&#xff0c;直接跳到步骤5pytorch安装。python版本至少是3.6及以上。 1、前…

[数据结构】栈和队列

目录 1.栈 1.1概念 1.2 栈的使用 1.3.栈的模拟实现 2.队列 2.1概念 2.2队列的使用 2.3队列的模拟实现 2.4 循环队列 2.5双端队列 1.栈 1.1概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一…

实验室安全教育与考试

目录 我的错题&#xff08;2个&#xff09;新知识题目&#xff08;10个&#xff09;刚开始不太理解的题目&#xff08;10个&#xff09;写在最后&#xff08;免责声明&#xff09; 我的错题&#xff08;2个&#xff09; 18.发生电气火灾时可以使用的灭火设备包括&#xff1a;&…

MySQL索引事务

一 、 索引 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。 可以对表中的一列或多列创建索引&#xff0c; 并指定索引的类型&#xff0c;各类索引有各自的数据结构实现。 索引保存的数据结构主要为B树&#xff0c;及hash的方式。 1. 作用 数据库中…

中秋国庆内卷之我爱学习C++

文章目录 前言Ⅰ. 内联函数0x00 内联函数和宏的比较0x01 内联函数的概念0x02 内联函数的特性 Ⅱ. auto&#xff08;C 11)0x00 auto的概念0x01 auto的用途 Ⅲ. 范围for循环(C11)0x00 基本用法0x01 范围for循环(C11)的使用条件 Ⅳ. 指针空值nullptr(C11)0x00 概念 前言 亲爱的夏…

gitee生成公钥和远程仓库与本地仓库使用验证

参考文档&#xff1a; https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE(1)通过命令ssh-keygen 生成SSH key -t key类型 -c注释 ssh-keygen -t ed25519 -C "Gitee SSH Key" (2)按三次回车 (3)查看生成的 SSH 公钥和私钥&#xff1a; …