MySQL_数据查询
select <子句1>
from <子句2>
[where<表达式1>]
[group<字句3>]
[having<表达式2>]
[order by<字句4>]
[limit<子句5>]
[union<操作符>]
1.查看数据的两种方法
select 字段名 from 表名;
- 查看多指定的字段
select 字段名,字段名 from 表名
2.查看数据并进行筛选(where)
select 字段名 from 表名
where 字段名=字段值;
例如:
select name from student
where xb='f';
我查看student表中,关于记录name(姓名)的字段
但是他要满足xb(性别)为f(男)
3.不查看重复记录(distinct),空值,非空值
- 不查看重复记录,多字段无效
select distinct 字段名 from 表名;
- 查看含有空值的记录
select *from 表名
where 字段名 is null;
- 查看不为空的学生信息
select *from 表名
where 字段名 is not null;
5.查看指定行(limit)
查看3行
select *from 表名 limit 3;
从第三行开始,查看三行
select *from 表名 limit 2,3;
6.模式匹配(like)
| 通配符 | 名称 | 描述 |
|---|---|---|
| % | 百分号 | 匹配0个或者多个任意字符 |
| _ | 下划线 | 匹配单个任意字符 |
查看张姓的人
select *from 表名
where 姓名 like '张%';
查看不姓张的人
select *from 表名
where 姓名 not like '张%';
查看姓张或者名字中有张的人
select *from 表名
where 姓名 like '%张%';
regexp
| 通配符 | 名称 | 描述 |
|---|---|---|
| ^ | 插入号 | 匹配字符串的开始部分 |
| $ | 美元 | 匹配字符串的结束部分 |
| . | 点 | 匹配字符串(包括回车和新行) |
| * | 乘号 | 匹配-0个或多个任意字符 |
| + | 加号 | 匹配单个或多个任意字符 |
| ? | 问号 | 匹配0个或单个任意字符 |
| () | 括号 | 匹配括号里面的内容 |
| {n} | 大括号 | 匹配括号前的内容出现n次的序列 |
查看姓张的人
select *from 表名
where 姓名 regexp '^张';
select *from 表名
where 姓名 regexp '张*';
6.范围查询(between and)
查询80分到100分之间的学生
select *from 表名
where 成绩 between 80 and 100;
- in语句指定列表查询条件
select *from 表名
where 开课学期 in('1','2');
7.逻辑运算符查询
| 运算符 | 说明 |
|---|---|
| not | 否定,逻辑非 |
| and | 连接,都满足时返回真,类似逻辑与&& |
| or | 类似逻辑或 |
| xor | 只有一个满足时返回真,两个都满足或不满足返回假 |
使用逻辑运算符查看成绩在80以上和100以下的学生信息
select *from 表名
where 成绩>=80 and 成绩<=100;
8.order by 子语句(排序)
asc升序,desc降序,默认为升序
查询选修了07003课程的学生成绩,以降序排序
select *from 表名
where 课程号='07003'
order by 成绩 desc;
- 单列排序
select *from 表名 order by 字段名1;
- 多列排序
select *from 表名 order by 字段名1,字段名2;
- 指定排序方向
select *from 表名 order by 字段名1,字段名2 desc;
会对字段1进行默认的升序排序,当有重复的值时候,会对字段2进行排序,因为字段2已经指定了排序方式为降序。
所以字段1默认的升序排序,字段2指定的降序排序
9.group by 子语句(聚合函数)
| 函数名 | 功能 |
|---|---|
| sum() | 返回一个数值列或计算列的总和 |
| avg() | 返回一个数值列或计算列的平均值 |
| min() | 返回一个数值列或计算列的最小值 |
| max() | 返回一个数值列或计算列的最大值 |
| count() | 返回满足select语句中指定条件的记录数 |
| count(*) | 返回找到的行数 |
- 进行分组
select 要分组的字段名 from 表名 group by 要分组的字段名;
select 要分组的字段名 as 别名 from 表名 group by 要分组的字段名;
count()的用法
如果里面是*号,会返回所有的行包括空值。
如果里面是具体的字段名,然会返回行数,不包括空值
select count(*) from 表名;
select count(字段名) from 表名;
- 分组查询
select 性别,count(*) from 表名 group by 性别;
select 性别 as 人数,count(*) as 人数 from 表名 group by 性别;
如果性别字段中有空值,还可以用这种方式
select 性别 as 人数,count(性别) as 人数 from 表名 group by 性别;
它会对性别进行分组,但是对于空值的那一组不会返回数值
having(过滤)
select 性别 from 表名 group by 性别 having xb is not null;
对字段“性别”进行分组,但是不对空值进行分组
select 性别 from 表名 group by 性别 having 性别 is null;
对字段“性别”进行分组,只对空值进行分组
MySQL_数据查询的更多相关文章
- mysql_数据查询_嵌套查询
嵌套查询 一个SELECT-FROM-WHERE语句称为一个查询块. 嵌套查询:将一个查询块嵌套在另一个查询块的WHERE子句或者HAVING短语的条件中的查询. 注:子查询的SELECT语句中不能使 ...
- mysql_数据查询_连接查询
连接查询 1.连接(join) 也称θ连接,从两个关系的笛卡尔积中选择属性间满足一定条件的元组. 等值连接:θ为“=”的连接运算称为等值连接.从关系R和S的广义笛卡尔积中选取A.B属性值相等的元组. ...
- mysql_数据查询_单表查询
1.单表查询: 1.1选中表中若干列: SELECT子句的<目标列表达式>可以是表中属性列,也可以是表达式,还可以是字符常量. SELECT Sname,'year of birth:', ...
- Django models .all .values .values_list 几种数据查询结果的对比
Django models .all .values .values_list 几种数据查询结果的对比
- MVC实用架构设计(三)——EF-Code First(4):数据查询
前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也 ...
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...
- SharePoint服务器端对象模型 之 使用CAML进展数据查询
SharePoint服务器端对象模型 之 使用CAML进行数据查询 一.概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列 ...
- .NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)
阅读目录: 1.背景介绍 2.对业务功能点进行逻辑划分(如:A.B.C分别三个业务点) 2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约) 2.2.将配置好的映射策略文件放在调 ...
- Yii2 数据查询
转载来自: http://www.yiichina.com/tutorial/95 数据查询 User::find()->all(); 此方法返回所有数据: User::findOne($id) ...
随机推荐
- django.core.exceptions.ImproperlyConfigured: The included URLconf 's9luffycity.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused
出现问题: $ python manage.py runserver 启动项目报错时候 raise ImproperlyConfigured(msg.format(name=self.urlconf_ ...
- axios请求提交的form data格式 明明是JSON格式的参数却转成了字符串格式
问题:传的参数成为了字符数格式 解决:把参数的格式转换 const params = new URLSearchParams() params.append('USER_LOGIN', 'admin' ...
- 爬虫代理池源代码测试-Python3WebSpider
元类属性的使用 来源: https://github.com/Python3WebSpider/ProxyPool/blob/master/proxypool/crawler.py 主要关于元类的使用 ...
- toggle([speed],[easing],[fn]) 用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件。
toggle([speed],[easing],[fn]) 概述 用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件. 如果元素是可见的,切换为隐藏的:如果元素是隐藏的,切换为 ...
- JVM(十二),垃圾回收面试题
十二.垃圾回收面试题 1.Object的finalize()方法 2.Java中的强软弱虚四种引用 (1)强引用 (2)软引用(间接引用) (3)弱引用 (4)虚引用 (5)四种引用区别
- Centos7安装Redis5.0.3
1.切换目录 cd tmp 2.下载 wget http://download.redis.io/releases/redis-5.0.3.tar.gz 3.解压,删除压缩包 tar xzf redi ...
- C语言实现简单的哈希表
这是一个简单的哈希表的实现,用c语言做的. 哈希表原理 这里不讲高深理论,只说直观感受.哈希表的目的就是为了根据数据的部分内容(关键字),直接计算出存放完整数据的内存地址. 试想一下,如果从链表中根据 ...
- deepin Linux 安装+工作学习配置
一 安装 在官网下载 U盘安装,神舟优雅x4开机按F7,选择U盘启动. U盘安装器在下载的镜像文件中. 二 配置 升级最新系统 设置root用户密码: dawn@dawn-PC:~$ sudo pas ...
- 【redis 学习系列08】Redis小功能大用处02 Pipeline、事务与Lua
3.Pipeline 3.1 Pipeline概念 Redis客户端执行一条命令分为如下四个过程: (1)发送命令 (2)命令排队 (3)命令执行 (4)返回结果 其中(1)和(4)称为Round T ...
- node.js获取ip及mac
; (function (win) { var os = require('os'); var ifaces = os.networkInterfaces(); function NetworkUti ...