一、基本查询语句

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——查询语句——单表查询——(示例)的更多相关文章

  1. mysql——查询语句——单表查询——(概念)

    一.基本查询语句 select的基本语法格式如下: select 属性列表 from 表名和视图列表 [ where 条件表达式1 ] [ group by 属性名1 [ having 条件表达式2 ...

  2. Mysql | 总结 | 常用的查询语句(单表查询)

    1. 查询单表全部 select* from 数据表名; 2. 查询单表中一个或者多个字段 select 字段1,字段2 from 数据表名; 3. 查询单表中的指定信息 select* from 数 ...

  3. MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询

    MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...

  4. MySQL数据库之单表查询中关键字的执行顺序

    目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...

  5. mysql 基础入门 单表查询

    单表查询 select 表头,表头 as 别名 ,表头(+-*/的运算) from table_a 1.条件查询 where + 条件 <> , != 不等于 = 等于,也可以表示字符串值 ...

  6. mysql 数据操作 单表查询 目录

    mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...

  7. mysql 数据操作 单表查询 where 约束 目录

    mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...

  8. mysql 数据操作 单表查询 group by 分组 目录

    mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...

  9. MySQL数据库语法-单表查询练习

    MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...

随机推荐

  1. 【Linux学习二】Linux文件系统

    Linux文件系统结构 ●Linux文件系统是一种倒转的单根结构 ●文件系统的根是"/" ●文件系统严格区分大小写 ●路径使用"/"分割(window下为&qu ...

  2. Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录(转)

    https://blog.csdn.net/uotail/article/details/84673347

  3. List集合遍历的三种方法

    测试数据: List<String> list = new ArrayList<String>(); list.add("java"); list.add( ...

  4. Codeforces 622F The Sum of the k-th Powers ( 自然数幂和、拉格朗日插值法 )

    题目链接 题意 : 就是让你求个自然数幂和.最高次可达 1e6 .求和上限是 1e9 分析 :  题目给出了最高次 k = 1.2.3 时候的自然数幂和求和公式 可以发现求和公式的最高次都是 k+1 ...

  5. TTTTTTTTTTTT CF 653D 送邮递员

    链接:给一张n个点m条带权边的有向图,有x个人从起点出发到终点,每个人带的都带相同重量的货物, 规定一条边最多能经过其上权的重量的货物,问最多能带多重的货物? 2 ≤ n ≤ 50, 1 ≤ m ≤  ...

  6. 洛谷P3294 [SCOI2016]背单词——题解

    题目传送 阅读理解题题意解释可以看这位大佬的博客. 发现求后缀与倒序求前缀是等价的,而找前缀自然就想到了trie树.将所有字符串翻转后再建入trie树中,再对每一个字符串翻转后从trie树中找前缀,就 ...

  7. java命令--jstack 工具【转载】

    一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...

  8. Upload-libs通关详解

    Uplo ad-labs—详解 1前端验证绕过 前端验证绕过可以直接用burp万能绕过前端JS脚本 方法先上传一张jpg Burp改包然后改后缀 上传成功 2Content-Type方式绕过 此绕过方 ...

  9. 分布式-信息方式-ActiveMQ的静态网络连接

                           ActiveMQ的静态网络连接 在一台服务器上启动多个Broker步骤如下:1:把整个conf文件夹复制一份,比如叫做conf22:修改里面的 activ ...

  10. jQuery 全选和反选demo

    前段时间做了一个全选和反选的功能,最近不忙了,做了一个简化版的demo. 全部代码如下: <!DOCTYPE html> <html> <head> <tit ...