前面我们已经介绍了在Python3.x中如何连接一个Mysql数据库,以及怎么样对这个数据库创建一个表,增删改查表里的数据。想必大家对Mysql数据库和简单的sql语句有了一定的了解,其实sql语句博大精深,里面的知识点非常的多,估计介绍一个星期也难以介绍全面。今天我们就来通过Mysql这种普遍使用的关系型数据库来深入了解一下sql语句中比较高级的查询部分。

准备工作

首先我们在Mysql里建立三张表,分别是:“学生表”,“学科表”和“学生成绩表”,建表语句如下图所示:

学生表
学科表
学生成绩表

学生的成绩表通过id与学生表和学科表所关联,现在我们往里插入数据,插入数据的方法很简单,这里就不多说了,插入好数据的表如下图所示:

三张表的数据

好了,一切准备就绪了,现在开始数据的查询了。

查询筛选条件

首先,基本的sql查询语句是:“select * from 表 where 条件;”通过这条sql语句可以查询到某张表里的所有字段信息,那么,筛选的运算符有以下几种:

比较运算符:等于(=)不等于(<> 或者 !=)大于(>)大于等于(>=)小于(<)小于等于(<=)IS NULLIS NOT NULL逻辑运算符与(AND)或(OR)非(NOT)

举个例子,假如我们想查学生表中年龄不大于17岁的所有女同学,那么sql语句应该是这样写的:

通过“where”后面“and”将“<=”和“=”两个比较运算符连接在一起,进行组合查询,从而得到所需要的值;

模糊查询

sql语句中提供了一种模糊查询的语句,使用通配符“%”或者“_”可以实现模糊查询,“%”是匹配多个字符,“_”是匹配一个字符,它的写法是这样的:

假如,我们想要查询所有四班的学生信息:

通过“like”和“%”组合,查询到了正确的结果。其中“%”可以只在关键词前面出现,也可以在关键词后面出现,也可以在前面和后面同时出现。分别表示前匹配、后匹配、前后匹配。

排序

排序分为升序排列和降序排列两种,其中,升序用关键词“asc”,降序用“desc”;

例如,我们想将二班的所有同学按照年龄从小到大排列,写法是这样的:

在sql语句里,“order by”表示将某个字段进行排序处理,再加上关键词“asc”或者“desc”就能实现升序和降序的普通排序方法了。

“order by”还可以实现多个字段一起排序,按照字段的先后顺序进行优先级排序,语法是:“select * from 表 order by 字段1 desc(asc) 字段2 desc(asc).......”,这样就实现多个字段一起排序了;

统计与计算

在sql语句里,可以将结果进行统计,关键词有以下几种:

COUNT:统计查询的总数;MAX:统计出最大值;MIN:统计出最小值;SUM:求和;

AVG:求平均值;

它们的写法如上图所示;

分组

在sql语句里,通常使用“group by”来进行分组,“group by”的意思就是将某个字段进行分组,然后再对分组里的内容进行操作,举例如下:

上面的例子中,可以很明显的看出,加了“group by”和不加“group by”,它们的打印结果是完全不一样的。如果我们需要知道每一个学生的成绩总和,那么很明显,下面的结果才是我们所需要的。它将每一个学生的ID进行分组,从而统计出每一个学生的成绩之和。

查询数据分页

在sql中,分页功能使用“limit”来实现,它的格式是:“limit m,n”其中“m”代表查询数据的初始行数,“n”代表偏移量。举例子:

小结

sql语句操作相对比较灵活,组合性也很强,今天我们介绍了sql语句中的查询操作,针对单张表进行操作的一些基本操作功能,接下来我们还会进行多表组合查询等更加复杂的操作,希望大家持续关注我

最新文章

  1. 【原】关于Python中setuptools安装的问题
  2. android 获取时间
  3. ***CI的CLI运行方式
  4. ASP.NET Web Api 服务器端变了,客户端该如何修改请求(转载)
  5. 第七章 springboot + retrofit
  6. UVA 439 Knight Moves --DFS or BFS
  7. nginx配置ssl
  8. 关于IE8中使用Jquery load方法无法正常加载页面
  9. ECshop模板机制
  10. 转:聊聊并发(八)——Fork/Join框架介绍
  11. Percona XtraBackup 8.0, 安装与测试
  12. vue项目开发基本目录结构
  13. js基础语法之函数
  14. 获取环境变量,0x000000cb 操作系统找不到已输入的环境选项
  15. python爬虫入门---第二篇:获取2019年中国大学排名
  16. REP开发技巧
  17. 写的一个ORACLE存储过程小练习
  18. IIS 7上导入SSL证书
  19. 类变量的初始化时机(摘录自java突破程序员基本功德16课)
  20. SQL到NoSQL概览性总结之一 数据库应用场景选型

热门文章

  1. --save与--save-dev的区别
  2. 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
  3. STM32 ADC 采样 频率的确定
  4. SASS常用语法
  5. Go语言_range(范围)理解
  6. [Model] AlexNet
  7. 3、一、Introduction(入门):2、Device Compatibility(设备兼容性)
  8. H5 (webApi) 接口帮助文档
  9. 让vim不要自动添加新的注释行
  10. 十、K3 WISE 开发插件《SQL Profiler跟踪单据操作时产生的SQL语句》