博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql(查询----select)
阅读量:7015 次
发布时间:2019-06-28

本文共 2334 字,大约阅读时间需要 7 分钟。

hot3.png

  一,查询数据

    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 ;  起始位置,与页码有关系

                        

转载于:https://my.oschina.net/bugkiller/blog/656157

你可能感兴趣的文章
淘宝造物节,“奇市江湖”里那些脑洞大开的创意产品
查看>>
AMD宣布修复RX480供电Bug 性能还提速3%
查看>>
联想武汉工厂因暴雨断电 每日损失利润百万?
查看>>
云 测试压力
查看>>
报告软件缺陷的基本原则
查看>>
撬动智能家居市场 智慧家庭“最强大脑”被激活
查看>>
走向5G:爱立信携手新加坡电信为物联网部署4G LTE网络
查看>>
DBA必备技能:通过truss跟踪解决监听无法启动案例
查看>>
GNOME 基金会签署用户数据宣言 2.0
查看>>
《产品设计与开发(原书第5版)》——3.4 步骤1:确立章程
查看>>
《Adobe Illustrator CS6中文版经典教程(彩色版)》—第1课1.5节探索“控制面板”...
查看>>
MySQL 问题分析:ERROR 1071 : Specified key was too long;max
查看>>
我的友情链接
查看>>
nginx tcp代理
查看>>
Linux日志分析常用命令-备忘
查看>>
sybase笔记 3712错误
查看>>
Zabbix 监控windows服务器监控闪断zabbix_get [12577]: Timeout while executing operatio
查看>>
MicrosoftRemoteDesktop Mac版
查看>>
EXCEL拼sql语句
查看>>
分析称明年第二季度平板出货量超PC
查看>>