您的位置:首页 > 数码常识数码常识
mysql查询语句大全及用法(mysql基本查询语句)
2025-05-11人已围观
mysql查询语句大全及用法(mysql基本查询语句)
最近我在学习MySQL,以前对它也略有了解,但是并不太会运用,这段时间把MySQL的相关语句系统地学习了一下,
mysql基本查询语句
MySQL
MySQL常用的查询操作一、MySQL查询语法
MySQL数据库使用SELECT语句来查询数据。
1.1 语法
SELECT column_name,column_nameFROM table_name [WHERE Clause][LIMIT N][ OFFSET M]
MySQL查询可以使用一个或者多个表,表与表之间需要用逗号(,)分割开,并且需要使用WHERE语句设置查询条件;SELECT可以读取一条或多条记录;星号(*)表示SELECT语句会返回数据表的所有字段;WHERE语句是用来设置查询条件的;LIMIT用于限制返回的数据条数。OFFSET用于指定SELECT语句开始查询数据时的偏移量,默认值为0。1.2 常用的操作查看当前的数据库
结果
查看当前数据库
查询当前数据库版本
结果
查看当前数据库版本
查看当前时间
结果
查看当前时间
二、常用的查询语句及示例
新建一张员工(staffs)表,并插入一下数据,建表语句如下:
表结构
数据表建完之后插入一些数据:
插入一些数据
2.1 条件查询示例:查询工资大于11000的员工。
示例:查询工资在6500~8000之间的员工。
注意: 以上方法查询的数据不包含6500和8000这两个值,也就是说不包含边界,如果要想使查询的结果包含边界值,应该使用BETWEEN...AND。
2.2 分组查询1.示例:分别统计男女员工的数量
结果
分组查询
但是gender和COUNT(1)看起来不直观,我们可以改个名字,sql语句需要这样写:
以上sql语句还有一个简写的方法,省略AS:
以上两种写法,输出的结果相同
分组查询
聚合函数:max()、min()、avg()、count()
2.示例:分组统计男女员工的平均年龄
结果
分组统计男女员工的平均年龄
上面计算的avg_age值还可以使用ROUND()函数保留两位小数,ROUND(AVG(age))。
3.示例:统计年龄大于20的男性员工
结果
统计年龄大于20的男性员工
分组条件,只能使用HAVING,不能使用WHERE ,因为WHERE只能从现存的字段中作为条件。
2.3 排序1.示例:按照员工工资升序排列。
按照员工工资升序排列
2.示例:按照员工工资降序排列
按照员工工资降序排列
3.示例:多字段排序,按照年龄降序排序,工资升序排序
结果
按照年龄降序排序,工资升序排序
2.4 分页查询
当我们查询出来的数据量太大的时候,一页展示得又太多,一般情况下都会将其分成N页,那么这时候就需要用到分页查询。
示例:将数据分成每页5条,查询第3页的数据
上述sql语句可以简写:
结果
分页查询
至于每一页的其实偏移量应该怎么计算,这里其实有一个公式,假设每页的数据条数为num,当前查询的页码为page,那么,该公式可总结为:
offset=(page - 1) * num
关于分页查询的总结:
1. LIMIT 显示数量 OFFSET 偏移量(跳过的记录数量);2. LIMIT 偏移量, 显示数量(这是简写);3. LIMIT 子句一定要放在SELECT的最后面。
2.5 子查询
查询工资最高的员工信息,通常的做法是:
结果
查询工资最高的员工信息
这样肯定是可以查询出来工资最高的员工信息的,但是还可以利用子查询来查询。
结果
利用子查询来查询
2.6 集合查询示例: 查询uid为1、3、5的用户信息
结果
查询uid为1、3、5的用户信息
2.7 模糊查询示例:匹配用户姓名中包含a的员工
结果
匹配用户姓名中包含a的员工
示例:匹配用户姓名第二个字母为i的员工
结果
匹配用户姓名第二个字母为i的员工
2.8 关联查询
关联查询也叫多表查询,下面再创建两张表作为示例数据。
2.8.1 创建一张文章表(article)并插入一些数据
表结构和数据
articles表结构
articles表数据
2.8.2 创建一张栏目表(categories)并插入一些数据
表结构和数据
categories表结构
categories表数据
2.8.4 内连接
现在我想让articles表中的cid字段显示新闻栏目的中文名称,如下图示例这样:
首先,不用内连接的方式,sql语句应该这样写:
由于两张表的字段aid, title, name都不一样因此可以不用在字段前面加上表名限制,所以上面的语句还可以这样简写:
如果只看国内新闻:
上述写法有点繁琐,可以使用内连接改进(INNER JOIN + ON):
如果我还是想只获取国内新闻,那么应该这样写:
如果多表关联字段同名,可以使用关键字USING简化:
2.8.5 外连接
首先再往articles表中插入一些演示数据:
插入一些演示数据
左外连接
左外连接
右外连接
右外连接
左、右外连接转内连接
原理:通过添加过滤器,过滤掉从表中的某一个为NULL的字段即可。
左外连接转内连接
右外连接转内连接
以上两种连接转换结果都是一样的:
2.8.6 自然连接
自然连接是内连接的一种特例,前提是关联的表中存在同名字段,可以连USING()都省略了,如果不需要使用表别名,在写sql语句的时候,表的别名也可以省略。
自然连接
三、视图3.1 创建视图
3.2 更新视图
更新视图,会同步更新基本表数据。
3.3 删除视图
四、索引索引应该创建在经常被查询的字段或者经常出现在结果集的字段上。索引分类:普通索引、主键索引、唯一索引、全文索引。4.1 创建索引4.1.1 创建一个普通索引
创建索引
4.1.2 创建唯一索引
创建唯一索引
4.1.3 创建主键索引
4.2 删除索引
4.3 查看索引
以上就是我这段时间学习总结的MySQL常用的一些查询语句,可能内容比较浅显,简单,没办法,我也是个新手,只能总结成这样了,欢迎各位大佬赐教,感激不尽。
上面就是小居数码小编今天给大家介绍的关于(mysql基本查询语句)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
qq最新养号教程(qq养号方法大全)
2022详细的分步教程大全(Windows11上怎么安装和使用VirtualBox)
CAD标注快捷键大全(cad标注内容快捷键)
ps常用快捷键大全和技巧(ps快捷键及使用方法)
155505
最近我在学习MySQL,以前对它也略有了解,但是并不太会运用,这段时间把MySQL的相关语句系统地学习了一下,
mysql基本查询语句
MySQL
MySQL常用的查询操作一、MySQL查询语法
MySQL数据库使用SELECT语句来查询数据。
1.1 语法
SELECT column_name,column_nameFROM table_name [WHERE Clause][LIMIT N][ OFFSET M]
MySQL查询可以使用一个或者多个表,表与表之间需要用逗号(,)分割开,并且需要使用WHERE语句设置查询条件;SELECT可以读取一条或多条记录;星号(*)表示SELECT语句会返回数据表的所有字段;WHERE语句是用来设置查询条件的;LIMIT用于限制返回的数据条数。OFFSET用于指定SELECT语句开始查询数据时的偏移量,默认值为0。1.2 常用的操作查看当前的数据库
结果
查看当前数据库
查询当前数据库版本
结果
查看当前数据库版本
查看当前时间
结果
查看当前时间
二、常用的查询语句及示例
新建一张员工(staffs)表,并插入一下数据,建表语句如下:
表结构
数据表建完之后插入一些数据:
插入一些数据
2.1 条件查询示例:查询工资大于11000的员工。
示例:查询工资在6500~8000之间的员工。
注意: 以上方法查询的数据不包含6500和8000这两个值,也就是说不包含边界,如果要想使查询的结果包含边界值,应该使用BETWEEN...AND。
2.2 分组查询1.示例:分别统计男女员工的数量
结果
分组查询
但是gender和COUNT(1)看起来不直观,我们可以改个名字,sql语句需要这样写:
以上sql语句还有一个简写的方法,省略AS:
以上两种写法,输出的结果相同
分组查询
聚合函数:max()、min()、avg()、count()
2.示例:分组统计男女员工的平均年龄
结果
分组统计男女员工的平均年龄
上面计算的avg_age值还可以使用ROUND()函数保留两位小数,ROUND(AVG(age))。
3.示例:统计年龄大于20的男性员工
结果
统计年龄大于20的男性员工
分组条件,只能使用HAVING,不能使用WHERE ,因为WHERE只能从现存的字段中作为条件。
2.3 排序1.示例:按照员工工资升序排列。
按照员工工资升序排列
2.示例:按照员工工资降序排列
按照员工工资降序排列
3.示例:多字段排序,按照年龄降序排序,工资升序排序
结果
按照年龄降序排序,工资升序排序
2.4 分页查询
当我们查询出来的数据量太大的时候,一页展示得又太多,一般情况下都会将其分成N页,那么这时候就需要用到分页查询。
示例:将数据分成每页5条,查询第3页的数据
上述sql语句可以简写:
结果
分页查询
至于每一页的其实偏移量应该怎么计算,这里其实有一个公式,假设每页的数据条数为num,当前查询的页码为page,那么,该公式可总结为:
offset=(page - 1) * num
关于分页查询的总结:
1. LIMIT 显示数量 OFFSET 偏移量(跳过的记录数量);2. LIMIT 偏移量, 显示数量(这是简写);3. LIMIT 子句一定要放在SELECT的最后面。
2.5 子查询
查询工资最高的员工信息,通常的做法是:
结果
查询工资最高的员工信息
这样肯定是可以查询出来工资最高的员工信息的,但是还可以利用子查询来查询。
结果
利用子查询来查询
2.6 集合查询示例: 查询uid为1、3、5的用户信息
结果
查询uid为1、3、5的用户信息
2.7 模糊查询示例:匹配用户姓名中包含a的员工
结果
匹配用户姓名中包含a的员工
示例:匹配用户姓名第二个字母为i的员工
结果
匹配用户姓名第二个字母为i的员工
2.8 关联查询
关联查询也叫多表查询,下面再创建两张表作为示例数据。
2.8.1 创建一张文章表(article)并插入一些数据
表结构和数据
articles表结构
articles表数据
2.8.2 创建一张栏目表(categories)并插入一些数据
表结构和数据
categories表结构
categories表数据
2.8.4 内连接
现在我想让articles表中的cid字段显示新闻栏目的中文名称,如下图示例这样:
首先,不用内连接的方式,sql语句应该这样写:
由于两张表的字段aid, title, name都不一样因此可以不用在字段前面加上表名限制,所以上面的语句还可以这样简写:
如果只看国内新闻:
上述写法有点繁琐,可以使用内连接改进(INNER JOIN + ON):
如果我还是想只获取国内新闻,那么应该这样写:
如果多表关联字段同名,可以使用关键字USING简化:
2.8.5 外连接
首先再往articles表中插入一些演示数据:
插入一些演示数据
左外连接
左外连接
右外连接
右外连接
左、右外连接转内连接
原理:通过添加过滤器,过滤掉从表中的某一个为NULL的字段即可。
左外连接转内连接
右外连接转内连接
以上两种连接转换结果都是一样的:
2.8.6 自然连接
自然连接是内连接的一种特例,前提是关联的表中存在同名字段,可以连USING()都省略了,如果不需要使用表别名,在写sql语句的时候,表的别名也可以省略。
自然连接
三、视图3.1 创建视图
3.2 更新视图
更新视图,会同步更新基本表数据。
3.3 删除视图
四、索引索引应该创建在经常被查询的字段或者经常出现在结果集的字段上。索引分类:普通索引、主键索引、唯一索引、全文索引。4.1 创建索引4.1.1 创建一个普通索引
创建索引
4.1.2 创建唯一索引
创建唯一索引
4.1.3 创建主键索引
4.2 删除索引
4.3 查看索引
以上就是我这段时间学习总结的MySQL常用的一些查询语句,可能内容比较浅显,简单,没办法,我也是个新手,只能总结成这样了,欢迎各位大佬赐教,感激不尽。
上面就是小居数码小编今天给大家介绍的关于(mysql基本查询语句)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
qq最新养号教程(qq养号方法大全)
2022详细的分步教程大全(Windows11上怎么安装和使用VirtualBox)
CAD标注快捷键大全(cad标注内容快捷键)
ps常用快捷键大全和技巧(ps快捷键及使用方法)
155505
很赞哦! ()
上一篇:MIUI13系统体验最真实感受(MIUI13好用吗)
下一篇:返回列表