搜索语法的使用原则有(下列关于搜索词拓展描述正确的是)

   抖音SEO    

最近我在学习MySQL,以前对它也略有了解,但是并不太会运用,这段时间把MySQL的相关语句系统地学习了一下,下面是学习的相关总结,分享给大家。

MySQL

MySQL数据库使用SELECT语句来查询数据。

SELECT column_name,column_name
FROM table_name [WHERE Clause][LIMIT N][ OFFSET M]


查看当前数据库


查看当前数据库版本


查看当前时间

新建一张员工(staffs)表,并插入一下数据,建表语句如下:

表结构


数据表建完之后插入一些数据:

插入一些数据

注意: 以上方法查询的数据不包含6500和8000这两个值,也就是说不包含边界,如果要想使查询的结果包含边界值,应该使用 BETWEEN...AND

分组查询

但是 gender COUNT(1) 看起来不直观,我们可以改个名字,sql语句需要这样写:

以上sql语句还有一个简写的方法,省略 AS

分组查询

聚合函数:max()、min()、avg()、count()

分组统计男女员工的平均年龄

上面计算的 avg_age 值还可以使用 ROUND() 函数保留两位小数, ROUND(AVG(age))

统计年龄大于20的男性员工


分组条件,只能使用 HAVING ,不能使用 WHERE ,因为 WHERE 只能从现存的字段中作为条件。

按照员工工资升序排列

按照员工工资降序排列

按照年龄降序排序,工资升序排序

当我们查询出来的数据量太大的时候,一页展示得又太多,一般情况下都会将其分成N页,那么这时候就需要用到分页查询。

上述sql语句可以简写:

分页查询

至于每一页的其实偏移量应该怎么计算,这里其实有一个公式,假设每页的数据条数为 num ,当前查询的页码为 page ,那么,该公式可总结为:

offset = (page - 1) * num

关于分页查询的总结:

1. LIMIT 显示数量 OFFSET 偏移量(跳过的记录数量);
2. LIMIT 偏移量, 显示数量(这是简写);
3. LIMIT 子句一定要放在 SELECT 的最后面。

查询工资最高的员工信息,通常的做法是:

查询工资最高的员工信息

这样肯定是可以查询出来工资最高的员工信息的,但是还可以利用子查询来查询。

利用子查询来查询

查询uid为1、3、5的用户信息

匹配用户姓名中包含a的员工


匹配用户姓名第二个字母为i的员工

关联查询也叫多表查询,下面再创建两张表作为示例数据。

articles表结构

articles表数据

categories表结构

categories表数据

现在我想让articles表中的cid字段显示新闻栏目的中文名称,如下图示例这样:

首先,不用内连接的方式,sql语句应该这样写:

由于两张表的字段 aid, title, name 都不一样因此 可以不用在字段前面加上表名限制 ,所以上面的语句还可以这样简写:

如果只看国内新闻:

上述写法有点繁琐,可以使用内连接改进( INNER JOIN + ON ):

如果我还是想只获取国内新闻,那么应该这样写:

如果多表关联字段同名,可以使用关键字 USING 简化:

首先再往articles表中插入一些演示数据:

插入一些演示数据

左外连接

右外连接


原理:通过添加过滤器,过滤掉从表中的某一个为NULL的字段即可。

左外连接转内连接

右外连接转内连接

以上两种连接转换结果都是一样的:


自然连接是内连接的一种特例,前提是关联的表中存在同名字段,可以连 USING() 都省略了,如果不需要使用表别名,在写sql语句的时候,表的别名也可以省略。

自然连接

更新视图,会同步更新基本表数据。

创建索引


创建唯一索引

以上就是我这段时间学习总结的MySQL常用的一些查询语句,可能内容比较浅显,简单,没办法,我也是个新手,只能总结成这样了,欢迎各位大佬赐教,感激不尽。

 标签:

评论留言

我要留言

欢迎参与讨论,请在这里发表您的看法、交流您的观点。