MYSQL(6)数据操作2

来源:互联网 发布:算法工程师培训班 编辑:程序博客网 时间:2024/06/07 06:03

单表

1.  简单数据纪录查询

   (1) SELECT  字段1,字段2...字段n  FROM  table_name;     //字段可为全部或部分,根据字段顺序自动调整显示顺序

              SELECT * FROM  table_name;      //查询所有

   

   (2) 避免重复数据查询 DISTINCT

            SELECT  DISTINCT  字段1,字段2...  FROM   table_name;


   (3)实现数学四则运算数据查询 

           MYSQL支持+、-、/、*、%      (以*10为例)

           SELECT   字段1*10,字段2..    FROM  table_name;   //在字段上直接加上四则运算,但显示时字段处也显示四则运算符号

          修改显示的字段名: select  字段1*10  替换的字段,字段2...  FROM  table_name;

                                             或 select    字段1*10  AS 替换的字段,字段2...  FROM  table_name;


   (4)设置显示格式数据查询

            SELECT  CONCAT ( 字段1, ‘可能要显示的字符串’ , 字段2)  替换字段名   FROM  table_name;


2.  条件数据纪录查询

     SELECT  字段...    FROM   table_name   WHERE    condition   

   (1) 关系符、逻辑运算符

           >、<、=、!=或<>、>=、<=

           AND或&&、OR或||、XOR(异或)、NOT或!   

   (2)BETWEEN AND

             ... WHERE  某字段  BETWEEN  value1  AND   value2;

             ... WHERE  某字段  NOT  BETWEEN  value1  AND   value2;       

   (3)IS NULL

            ...  WHERE  字段 IS NULL;

           ...   WHERE  字段 IS NOT NULL;  或 ...WHERE  NOT  字段 IS NULL;


   (4)IN

          判断字段的数值是否在指定集合中

         ....  WHERE 字段 IN  (value1,value2....);        // value若为NULL,不影响查询

          ....  WHERE 字段 NOT IN  (value1,value2....);     //value若为NULL,查不到任何结果


   (5)LIKE模糊查询

            mysql不区分大小写

           NOT  字段名  LIKE 与  字段名  NOT LIKE作用一样

          %a%:含有字母a                  %%:所有纪录

           ①%

            SELECT  字段..  FROM  table_name  WHERE  字段 LIKE ‘a%’;    查询字段中以a开头的纪录

            SELECT  字段..  FROM  table_name  WHERE  NOT 字段 LIKE ‘a%’;    查询字段中不是以a开头的纪录

          ②_

            SELECT  字段..  FROM  table_name  WHERE  字段 LIKE  ‘_a%’;    查询字段中 第二个字母为a的纪录

              ......NOT

              

3. 排序数据纪录查询

    SELECT  字段1,...

                 FROM   table_name

                            WHERE  condition

                                       ORDER  BY   字段1  ASC | DESC , 字段2 ASC | DESC;                   //默认ASC升序

        先按字段1升序或者降序排列,有相同的再按字段2升序或者降序排列


4.  限制数据纪查询数量

    SELECT  字段... 

               FROM   table_name

                          WHERE  condition

                                     LIMIT offset_start , row_count;                //offset_start为起始偏移量,默认值为0,表示起始位置    row_count为显示的行数

                                                                                                            //可在LIMIT前加排序   ORDER BY...  LIMIT...


5.  统计函数和分组数据纪录查询

   (1)MYSQL支持的统计函数 

          SELECT  function    显示的标题

                         FROM   table_name         WHERE   condition;

          ①统计数目  无记录返回0

            COUNT(*):统计表中纪录,包含NULL

            COUNT(字段):针对指定纪录统计,此字段含NULL的省略,不忽略0


          ②统计计算平均值  无记录返回NULL

             AVG(字段):对指定字段计算平均值,忽略NULL,不忽略0


          ③统计计算求和    无记录返回NULL

             SUM(字段):求和,忽略NULL

 

          ④统计计算最大值和最小值   无记录返回NULL

             MAX(字段):忽略NULL

             MIN(字段):忽略NULL


   (2)分组数据查询---简单分组查询

           SELECT  *  FROM  table_name  GROUP BY  某字段;          //按某字段分组,并随机显示每组中的一条数据

   (3)统计+分组查询

          SELECT  GROUP_CONCAT(要显示值的字段)  显示字段名的标题 , function  显示字段名的标题              //function可以省略

                          FROM  table_name

                                   WHERE condition

                                               GROUP  BY  分组字段1,分组字段2...;

           GROUP_CONCAT:显示分组后指定字段的所有值


   (4)分组查询---HAVING子句限定

           对分组限制用HAVING,对纪录限制用WHERE

           SELECT  function    显示的标题

                           FROM   table_name         

                                       WHERE   condition

                                       GROUP  BY  字段1,字段2..

                                       HAVING  condition;

0 0
原创粉丝点击