mysql查询bug_MySql(查询----select)

一,查询数据

1,基本语法

select */字段名  from 表名[where条件] ;

2,完整语法

Select[select 选项] */字段名[字段别名]  from  数据源 [where条件语句] [group by语句] [having语句]  [order by语句]  [limit语句]

1)select 选项:

①All:默认的,保留所有结果

②Dstinct:去重,将查处来的结果,将重复去掉(所有字段都相同)。

③select * from user ;==  select all * from  user ;

④去重:select distinct * from user ;

2)字段别名:

字段别名:当数据查询出来的时候,有时候名字不一定满足需求(当进行多表查询的时候,会出现字段重名情况),需要对字段进行重命名,即字段别名。

字段别名语法:字段名  [as]  别名

①select id,number,name,gender from user ; ==select id as ID,number as 学号,name as 姓名,gender as 性别   from user ;

3)数据源:

数据源:数据的来源。关系型数据库的来源都是数据表,只要保证数据类似二维表,则都可以作为数据源。

数据源分类:单表数据源、多表数据源、查询语句

①单表数据源:select * from user ;

②多表数据源:select * from 表名1,表名2....; 从一张表取出一个记录,去另外一张表去匹配所有记录。并将所有表所有记录都保留(记录数和字段数)。进行交叉连接。

③子查询:数据的来源是一个查询语句(查询语句的结果是一个二维表)。

select * from(select 语句) as  表的别名;==select * from (select * from user) as s ;

4)where条件语句

where语句:用来判断数据,筛选数据。where语句返回结果:0或1,代表false和true。

①判断条件:

比较运算符:>,=,<=,like(模糊查询),between...and,in/not in

逻辑运算符:&&(and),||(or),!(not)

update my_user set age = floor(rand()*20+20),height=floor(rand()*20+170);(floor向下取整数),rand()是随机取0或1一个数。

②条件查询1

A,找出学生id为1或3或5的学生。

落在集合中:select * from my_user where id in(1,3,5);

条件查询2

B,找出学生170~180之间

select * from my_user where height between 170 and 180;

between 本身是一个闭区间,between...and 左边的值必须小于或等于右边的值。

C,select * from my_user where 1 ;所有条件都查询出来

5)Group by字句

group by:分组的意思,根据某个字段进行分组(相同的分一组,不同的分一组)

分组的作用:是为了统计数据(按组统计,按分组字段进行数据统计)

SQL提供了一系列的数据统计函数:

Count() :统计分组后的记录数:每一组有多少记录。

Max():统计每组中的最大值。

Min():统计每组中的最小值。

Avg():统计平均值

Sum():统计和

A分组统计:根据gender分组,数量,身高最高,身高最低,平均年龄,年龄总和

select gender,count(*),max(height),min(height),avg(age),sum(age) from  my_user group by gender

B,Count函数:里边可以有两种参数:*代表统计记录。字段名,代表统计对应的字段(NULL不统计)。

6)Having字句

Having字句:与where字句一样,进行条件判断的。

where是针对磁盘数据进行操作,进入内存后,进行分组操作,分组结果需要Having来处理。

①Having几乎能做where能做的所有事情,但是where却不能做Having的事情。

②Having能使用字段别名,而where不能,where针对磁盘数据操作,名字只可以是字段名,而字段别名在字段加载到内存中才会产生

7)Order by字句

order by:排序,根据某个字段进行升序或降序排列,依赖校对集。

order by使用语法:order by 字段名 [asc|desc] ;asc[默认的]升序,desc降序

8)limit字句

limit是限制结果的语句,限制数量。

limit有两种使用方式:

①用来限制长度(数据量/记录数)limit 数据量。

②限制起始位置,长度  limit起始位置,长度 。记录数从0开始编号即第一个

③Limit字句用来实现数据的分页。为用户节省时间,提高服务器的执行效率,减少资源浪费。

对于用户来讲,可以点击分页按钮 1、2、3、4

对于服务器来讲,根据用户选择的页码来返回详细的数据。limited offset  length;

length:分页后每页显示的数量,基本不变

offset:offset = (页码-1) * length ;  起始位置,与页码有关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值