mysql——查询语句——单表查询——(示例)
一、基本查询语句 select的基本语法格式如下: select 属性列表 from 表名和视图列表 [ where 条件表达式1 ] [ group by 属性名1 [ having 条件表达式2 ] ] [ order by 属性名2 [ asc | desc ] ] 属性列表参数表示需要查询的字段名; 表名和视图列表参数表示从此处指定的表或者视图中查询数据,表和视图可以有多个; 条件表达式1参数指定查询条件; 属性名1参数指按照该字段的数据进行分组; 条件表达式2参数满足该表达式的数据才能输出; 属性名2参数指按照该字段中的数据进行排序;排序方式由asc和desc这两个参数指出; asc参数表示升序,这是默认参数,desc表示降序;(升序表示从小到大) 对记录没有指定是asc或者desc,默认情况下是asc; 如果有where子句,就按照“条件表达式1”指定的条件进行查询;如果没有where子句,就查询所有记录; 如果有group by子句,就按照“属性名1”指定的字段进行分组,如果group by后面带having关键字,那么只有 满足“条件表达式2”中知道的条件才能输出。group by子句通常和count()、sum()等聚合函数一起使用; 如果有order by子句,就按照“属性名2”指定的字段进行排序,排序方式由asc和desc两个参数指出;默认情况下是asc;
前提准备:
create table student( sid varchar(50),
sname varchar(50),
sage varchar(50),
ssex varchar(50)
); insert into student( sid,sname,sage,ssex ) values('','zhaolei','1990-01-01','nan'); insert into student values('','qiandian','1990-12-21','nan');
insert into student values('','sunfeng','1990-05-20','nan');
insert into student values('','liyun','1990-08-06','nan'); insert into student values('','zhoumei','1991-12-01','nv'),
('','wulan','1992-03-01','nv'),
('','zhenzu','1989-07-01','nv'),
('','wangju','1990-01-20','nv'); select * from student;
一、查询所有字段
(1)、列出表的所有字段
(2)、使用 ‘ * ’ 查询所有字段:select * from 表名;
select sid,sname,sage,ssex from student; select * from student;
二、查询指定字段
查询数据时,可以在select语句的‘属性列表’中列出 所有查询的指定字段。这种方式可以指定需要查询的字段,而不需要查询出所有的字段;
查询出来的字段的顺序与select中给出的字段的排列顺序相同。
select sid,sname,ssex,sage from student;
示例02:
select sid,sname from student;
三、查询指定记录
即按照条件进行查询: where 条件表达式;
查询的结果必须满足查询条件。
where子句可以用来指定查询条件 语法格式:where 条件表达式 其中条件表达式参数指定select语句的查询条件; where子句常用的查询条件又很多种,如下表示: 比较 =、<、>、<=、>=、…… 指定范围 between and、not between and 指定集合 in、not in 匹配字符 like 、 not like 是否为空值 is null 、 is not null 多个查询条件 and、or
执行语句:
select * from student where sid = '';
四、带in关键字的查询
in关键字可以判断某个字段的值是否在指定的集合中。
语法格式:[not] in (元素1,元素2,……元素n);
注释:各个元素之间用逗号隔开
执行语句:
select * from student where sid in ('','','') select * from student where sid not in ('','','')
五、带between and的范围查询
between and关键字可以判断某个字段的值是否在指定范围内。
语法格式:[not] between 取值1 and 取值2;
其中not是可选参数,加上not表示不在指定范围内满足条件;
“取值1”表示范围的起始值;“取值2”表示范围的终止值;
执行语句:
select * from student where sid BETWEEN '' and ''; select * from student where sid not BETWEEN '' and '';
六、带like的字符匹配查询
like关键字可以匹配字符串是否相等。
语法格式:[not] like '字符串';
not是可选参数,加上not表示与指定的字符串不匹配时满足条件;
字符串表示指定用来匹配的字符串,该字符串必须添加单引号或者双引号。
字符串参数的值可以是一个完整的字符串,也可以是包含%或者_的通配符;
%可以代表任意长度的字符串,长度可以为0,
举例:b%k表示以字母b开头,以字母k结尾的任意长度的字符串;该字符串可以代表bk,buk,book,break等字符串;
_只能代表单个字符;
举例:b_k表示以字母b开头,以字母k结尾的长度为3的字符串。中间的_可以代表任意一个字符串;
举例:select * from employee where name like 'aric';
此处查询出name='aric'的记录,这里like相当于=
注意一个汉字是2个字符串,要用2个--
执行语句:
select * from student where sname like 'zhao%'; select * from student where sname not like 'zhao%';
七、查询空值
is null关键字可以用来判断字段的值是否为空值。
语法格式:is [not] null;
执行语句:
select * from student where sname is null; select * from student where sname is not null;
八、带and的多条件查询
and关键字可以联合多个条件进行查询,使用and关键字时,只有同时满足所有查询条件的记录才会被查询出来;
语法格式:条件表达式1 and 条件表达式2 […… and 条件表达式n]
执行语句:
select * from student where sid < 4 and ssex = 'nan';
九、带or的多条件查询
使用or关键字时,只要满足这几个查询条件中的一个,这样的记录将会被查询出来,如果不满足这些查询条件的任何一个,这样的记录将会被排除
语法格式:条件表达式1 or 条件表达式2 [ ……or 条件表达式n ]
注意:and 和 or 关键字一起使用时,and比or要先运算,and关键字前后的条件先结合,然后再与or关键字的条件结合。
执行语句:
select * from student where sid < 4 or ssex = 'nan';
十、查询结果不重复
如果表中的某些字段没有唯一性约束,这些字段可能存在着重复的值。
select语句中可以使用distinct关键字来消除重复的记录;
语法格式: select distinct 属性名
select distinct ssex from student;
十一、对查询结果排序
使用order by关键字对记录进行排序
语法格式:order by 属性名 [ asc|desc ]
属性名参数表示按照该字段进行排序;
asc参数表示按照升序的顺序进行排序;
desc参数表示按照降序的顺序进行排序;
默认情况下按照asc方式进行排序;
举例:select * from employee order by age desc;
注意:如果记录中存在一条记录,其age字段的值是空值(null),则这条记录将会显示为第一条记录,因为按照升序排序时,
含空值的记录将最先显示,可以理解为空值是该字段的最小值;而按照降序排序时,age字段为空值的记录将最后显示;
MYSQL中,可以指定按照多个字段进行排序,
举例:select * from employee order by d_id asc,age desc;
查询employee表中的所有记录,按照d_id字段的升序方式和age字段的降序方式进行排序
查询结果排序时,先按照d_id字段的升序方式进行排序,如果有多个d_id字段的值相同,则这几个记录再按照age字段进行降序排列;
执行语句:
select * from student order by sid desc;
十二、用limit限制查询结果的数量
limit关键字可以指定查询结果从哪条记录开始显示,还可以指定一共可以显示多少条记录。
limit关键字有两种使用方式。分别是不指定出事位置和指定初始位置。
(1)不指定初始位置
limit关键字不指定初始位置时,记录从第一条记录开始显示。显示的记录条数由limit关键字指定
语法格式:limit 记录数
记录数参数表示显示记录的条数
注释:如果“记录数”的值小于查询结果的总记录数,将会从第一条记录开始显示,显示指定条数的记录;
如果“记录数“的值大于查询结果的总记录数,数据库系统会显示查询出的所有记录
举例:select * from employee limit 2;
举例:select * from employee limit 10;
虽然limit关键字指定了10条记录,但是查询结果中只有4条记录,因此数据库系统会显示全部4条记录;
(2)指定初始位置
limit关键字可以指定从哪条记录开始显示,并且可以指定显示多少条记录
语法格式:limit 初始位置,记录数
初始位置指定从哪条记录开始显示;
记录数表示显示记录的条数;
第一条记录的位置是0,第二条记录的位置是1,后面以此类推;
执行语句:不指定初始位置
select * from student limit 3;
执行语句:指定初始位置
select * from student limit 1,3;
mysql——查询语句——单表查询——(示例)的更多相关文章
- mysql——查询语句——单表查询——(概念)
一.基本查询语句 select的基本语法格式如下: select 属性列表 from 表名和视图列表 [ where 条件表达式1 ] [ group by 属性名1 [ having 条件表达式2 ...
- Mysql | 总结 | 常用的查询语句(单表查询)
1. 查询单表全部 select* from 数据表名; 2. 查询单表中一个或者多个字段 select 字段1,字段2 from 数据表名; 3. 查询单表中的指定信息 select* from 数 ...
- MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询
MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...
- MySQL数据库之单表查询中关键字的执行顺序
目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...
- mysql 基础入门 单表查询
单表查询 select 表头,表头 as 别名 ,表头(+-*/的运算) from table_a 1.条件查询 where + 条件 <> , != 不等于 = 等于,也可以表示字符串值 ...
- mysql 数据操作 单表查询 目录
mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...
- mysql 数据操作 单表查询 where 约束 目录
mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...
- mysql 数据操作 单表查询 group by 分组 目录
mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...
- MySQL数据库语法-单表查询练习
MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...
随机推荐
- 【Linux学习二】Linux文件系统
Linux文件系统结构 ●Linux文件系统是一种倒转的单根结构 ●文件系统的根是"/" ●文件系统严格区分大小写 ●路径使用"/"分割(window下为&qu ...
- Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录(转)
https://blog.csdn.net/uotail/article/details/84673347
- List集合遍历的三种方法
测试数据: List<String> list = new ArrayList<String>(); list.add("java"); list.add( ...
- Codeforces 622F The Sum of the k-th Powers ( 自然数幂和、拉格朗日插值法 )
题目链接 题意 : 就是让你求个自然数幂和.最高次可达 1e6 .求和上限是 1e9 分析 : 题目给出了最高次 k = 1.2.3 时候的自然数幂和求和公式 可以发现求和公式的最高次都是 k+1 ...
- TTTTTTTTTTTT CF 653D 送邮递员
链接:给一张n个点m条带权边的有向图,有x个人从起点出发到终点,每个人带的都带相同重量的货物, 规定一条边最多能经过其上权的重量的货物,问最多能带多重的货物? 2 ≤ n ≤ 50, 1 ≤ m ≤ ...
- 洛谷P3294 [SCOI2016]背单词——题解
题目传送 阅读理解题题意解释可以看这位大佬的博客. 发现求后缀与倒序求前缀是等价的,而找前缀自然就想到了trie树.将所有字符串翻转后再建入trie树中,再对每一个字符串翻转后从trie树中找前缀,就 ...
- java命令--jstack 工具【转载】
一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...
- Upload-libs通关详解
Uplo ad-labs—详解 1前端验证绕过 前端验证绕过可以直接用burp万能绕过前端JS脚本 方法先上传一张jpg Burp改包然后改后缀 上传成功 2Content-Type方式绕过 此绕过方 ...
- 分布式-信息方式-ActiveMQ的静态网络连接
ActiveMQ的静态网络连接 在一台服务器上启动多个Broker步骤如下:1:把整个conf文件夹复制一份,比如叫做conf22:修改里面的 activ ...
- jQuery 全选和反选demo
前段时间做了一个全选和反选的功能,最近不忙了,做了一个简化版的demo. 全部代码如下: <!DOCTYPE html> <html> <head> <tit ...