暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL | 数据查询语言DQL,查询语法及实例

西安川石 2022-04-02
461


每天一个测试技术

只需几分钟

川石信息 带你学点更好的




川石信息|腾讯课堂

免费试学 | 性能测试



SQL语言


SQL(Structured Query Language)的含义是结构化查询语言.SQL 是用于访问和处理数据库的标准的计算机语言。


SQL有多种不同的标准,常见有SQL89,SQL92与SQL99标准.


▲ SQL分类




DQL


数据查询语言.

从数据库表中检索数据.


select命令

select语句


自然语句: 句子成分 主谓宾 定状补

select语句: 由若干个子句构成,每一个子句由一个关键字引导



select语句组成


一般select语句包含6大子句.



语法:


    select list
    from tabs
    where search_condition
    group by grouping_columns
    having search_condition
    order by sort_columns;


    #执行顺序
    from(join) --> where --> group by --> having --> select --> order by
    复制

    左右拉动查看完整代码





    简单查询


    语法:


      select list
      from tab_name
      order by sort_columns;
      复制

      左右拉动查看完整代码



      ▲ 查看表结构


      语法:


        desc tab_name #DESCRIBE
        describe tab_name
        复制


          mysql> desc ecs_goods_type;
          +----------+--------------------+----+---+-------+--------------+
          | Field | Type |Null|Key|Default| Extra |
          +----------+--------------------+----+---+-------+--------------+
          | cat_id |smallint(5) unsigned| NO |PRI| NULL |auto_increment|
          | cat_name |varchar(60) | NO | | | |
          | enabled |tinyint(1) unsigned | NO | | 1 | |
          |attr_group|varchar(255) | NO | | | |
          +----------+--------------------+----+---+-------+--------------+
          4 rows in set (0.03 sec)
          复制

          左右拉动查看完整代码



          ▲ MySQL数据类型



            #列出所有品牌信息(查询需求)
            #思路
            1.确定表
            可以查看数据的设计文档(数据字典);问开发,问DBA
            ecs_brand
            2.确定列
            可以通过查看表结构来熟悉表.


            SELECT brand_name FROM ecs_brand; #查询单列
            SELECT brand_id,brand_name FROM ecs_brand; #查询多列
            SELECT * FROM ecs_brand; #查询所有列
            复制

            左右拉动查看完整代码



            ▲ 书写SQL语句注意事项


            • 不区分大小写

            • 关键字与[非]关键字之间用空格或换行符分隔

            • 多个列之间用,分隔

            • *代表所有的列

            • ;表示SQL语句结束

            • 注释使用 # 单行注释 *内容*/ 多行注释

            • 单独选中命令执行



            ▲ 怎样去掉重复的记录或行


            语法:


              select distinct list from tab_name ...
              复制


                #找出商品表中有哪些商品类型
                SELECT * FROM ecs_goods;


                SELECT DISTINCT goods_type FROM ecs_goods;
                复制

                左右拉动查看完整代码



                ▲ 排序


                是由order by子句来实现的.


                排序方式:


                ● 按列名


                  select ...,col_name,...
                  from tab_name
                  order by col_name;
                  复制


                    #按照商品市场价格排序
                    SELECT goods_id,goods_type,goods_name,market_price
                    FROM ecs_goods
                    ORDER BY market_price;
                    复制

                    左右拉动查看完整代码


                    ● 列序号


                      select c1,c2,...,cn
                      # 1 2 ... n
                      from tab_name
                      order by i;
                      复制


                        #按照商品名称排序
                        SELECT goods_id,goods_type,goods_name,market_price
                        FROM ecs_goods
                        ORDER BY 3;
                        复制

                        左右拉动查看完整代码


                        ● 列别名


                          select ...,col_name alias_name,...
                          from tab_name;
                          select ...,col_name as alias_name,...
                          from tab_name;
                          复制


                            SELECT goods_id AS 商品编号, goods_type 商品类型, goods_name 商品名称, market_price 市场价格
                            FROM ecs_goods
                            ORDER BY 商品编号;
                            复制

                            左右拉动查看完整代码


                            ● 按列别名


                              select ...,col_name alias_name,...
                              from tab_name
                              order by alias_name;
                              复制


                                #安装商品编号别名排序
                                SELECT goods_id AS 商品编号, goods_type 商品类型, goods_name 商品名称, market_price 市场价格
                                FROM ecs_goods
                                ORDER BY 商品编号;
                                复制

                                左右拉动查看完整代码


                                ● 升序与降序


                                  select list
                                  from tab_name
                                  order by col_name [asc] #默认升序 asc可选
                                  order by col_name desc #降序排序 desc必选
                                  复制


                                    #按照商品市场价格降序排序
                                    SELECT goods_id AS 商品编号, goods_type 商品类型, goods_name 商品名称, market_price 市场价格
                                    FROM ecs_goods
                                    ORDER BY market_price DESC;
                                    复制

                                    左右拉动查看完整代码


                                    ● 多列排序


                                      select list
                                      from tab_name
                                      order by c1,c2,...,cn;
                                      复制


                                        #按照商品类型升序,市场价格降序排序
                                        SELECT goods_id AS 商品编号, goods_type 商品类型, goods_name 商品名称, market_price 市场价格
                                        FROM ecs_goods
                                        ORDER BY goods_type,market_price DESC;
                                        复制

                                        左右拉动查看完整代码






                                        ⭐川石信息 春季特惠⭐


                                        线上提升班,火热活动中,最高优惠直降1000+

                                        涨薪必备:高级性能测试+自动化测试开发,一线企业offer挑到手软!

                                        报名还送 jmeter python / redis 三门免费课程包!

                                        名额有限,扫一扫下方图片二维码速度联系我预约报名!

                                        😎来川石,更优质的就业机会等着你。



                                        今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!


                                        温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!



                                         往期回顾 


                                        安装完数据库跟我学客户端工具如何使用



                                        大神邀你加入

                                        软件测试群

                                        免费软件测试课

                                        川石课堂



                                        文章转载自西安川石,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                        评论