一、基本查询语句

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. Java-Web servlet控制器的引入

    一.建包 二.建立实体类 参考二维表,考虑各个字段的名字.类型 private String id; private String name; private String address; publ ...

  2. c++拓展register寄存器

    寄存器----硬件和软件打交道的接口,这上面装了android,亦或是 windows,linux就能和相关的操作系统设备打交道 早期硬件性能并不很快时,为了提高程序运行的效率,会声明一个寄存器变量, ...

  3. 深浅拷贝(copy)

    目录 copy 模块 1.拷贝(赋值) 1). x为不可变数据类型 2). x为可变数据类型 3). 可变数据类型(比如列表)内,既有不可变元素,又有容器类型可变元素(比如列表) 2.浅拷贝 3.深拷 ...

  4. fetch 写法

    fetch("../students.json").then(function(response){ if(response.status!==200){ console.log( ...

  5. SpringBoot2.0集成Shiro

    1.shiro的三个核心概念: 1)Subject:代表当前正在执行操作的用户,但Subject代表的可以是人,也可以是任何第三方系统帐号.当然每个subject实例都会被绑定到SercurityMa ...

  6. ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.

    docker-compose 的问题 要改环境变量 xed ~/.profile export COMPOSE_HTTP_TIMEOUT=500 export DOCKER_CLIENT_TIMEOU ...

  7. HGOI 20190821 慈溪一中互测

    Problem A  给出一个$n$个点$m$条边的仙人掌图(每条边最多处于一个简单环中). 使用$c$种颜色对这张图中的顶点染色,使得每一条无向边连接的两个点颜色不同. 求染色的方案数,$mod \ ...

  8. CommandLineRunner and ApplicationRunner

    1. Run spring boot as a standalone application (non-web) <?xml version="1.0" encoding=& ...

  9. Java实现QQ微信轰炸机1.2(斗图乞丐版)

    之前有小可爱评论可以实现斗图的功能,原理上是行的通的,所以我就稍微改了一下,能够实现单个图片循环轰炸,如果大家感兴趣也可以自己探究实现多张图片循环轰炸,不废话了,直接上源码package QQWcha ...

  10. Zookeeper基础命令操作

    转载链接:https://blog.csdn.net/dandandeshangni/article/details/80558383 安装参考链接https://blog.csdn.net/qiun ...