• MySQL SELECT语句


    说明:MySQL的offset第一行是0

       位置指的是在SELECT语句中第几个出现的字段,如:1,则代表用第一个出现的字段来分组。

    SELECT语句:

    SELECT  select_expr1 【,select_expr2......】

      FROM  表名

       【WHERE  where_condition】

       【GROUP  BY  {列名|位置}  【ASC | DESC】,.....】     //对查询结果进行分组,如:SELECT sex,COUNT(id) FROM tb1 GROUP BY sex;对tb1表性别分组统计,group一般与聚合函数联合使用

         【HAVING  where_condition】    //分组条件,如:SELECT sex FROM tb1 GROUP BY sex HAVING count(id) >2;对tb1表中id列的值大于2的sex列进行分组

         【ORDER  BY  {列名|expr|位置}】 【ASC | DESC】,.....】   //对查询结果进行排序,如:SELECT * FROM tb1 ORDER BY id DESC,sex ASC;把行先按id降序排列,不满足条件的再按sex升序排列。

       【LIMIT  {【offset,】 行数 | 行数  OFFSET  offset}】   //限制查询结果的返回数量,如:SELECT * FROM tb1 LIMIT 2;返回前两行

                                                SELECT * FROM tb1 LIMIT 2,2;从第二行开始,返回2行

     】

    select_expr的顺序将影响结果的排列顺序,如:SELECT id,username FROM tb1;和SELECT username,id FROM tb1;结果是不一样的。

    select_expr可以使用【AS】 alias_name为其赋予别名,字段的别名将影响结果集,别名可用于GROUP BY,ORDRE BY或HAVING,如:SELECT id AS userid,username AS uname FROM tb1;

    *表示所有的列,tbl_name.*可以表示数据表下的所有列,如:tb1.id表示数据表tb1下的id列。

    where_condition中可以使用MySQL支持的函数或运算符。

    通过连接来显示多张表的内容:

       连接的语法结构:

      表1  {【INNER | CROSS】 JOIN |  {LEFT | RIGHT} 【OUTER】JOIN}  表2  ON  conditional_expr(连接条件)

        连接类型:

        INNER JOIN等同于JOIN等同于CROSS JOIN    称为内连接

        LEFT 【OUTER】JOIN  称为左外连接

        RIGHT 【OUTER】JOIN  称为右外连接

    SELECT ...... INNER JOIN ......【INNER JOIN ......】  显示左表及右表符合连接条件的记录

    SELECT ...... LEFT JOIN ......【LEFT JOIN ......】查询的结果集包括SQL语句中左表的所有行,右表中匹配的行。如果左表的某行在右表中没有匹配行,则用空值表示

    SELECT ...... RIGHT JOIN ......【RIGHT JOIN ......】查询的结果集包括SQL语句中右表的所有行,左表中匹配的行。如果右表的某行在左表中没有匹配的行,则用空值表示

    完全外连接(full join 或 full outer join),查询的结果集包括SQL语句中左表和右表的所有行。如果某行在另一个表中没有匹配行时,则用空值表示。

    通过CREATE...SELECT来创建数据表并且同时写入SELECT查询到的记录:


         >CREATE TABLE tdb_goods_brands (

        ->brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

        ->brand_name VARCHAR(40) NOT NULL

        ->) SELECT brand_name FROM tdb_goods GROUP BY brand_name;

    自身连接:

    -- 查找所有分类及其父类
    SELECT s.type_id,s.type_name,p.type_name FROM tdb_goods_types AS s LEFT JOIN tdb_goods_types AS  p ON s.parent_id = p.type_id;
    -- 查找所有分类及其子类
    SELECT p.type_id,p.type_name,s.type_name FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS  s ON s.parent_id = p.type_id;

  • 相关阅读:
    iPhone 12 Pro 不锈钢边框刮伤 All In One
    .vscodeignore All In One
    程序员如何挑选和购买一款高性价比的电动升降桌 All In One
    TypeScript function arguments destructuring All In One
    LeetCode 旋转数组算法题解 All In One
    python 中实现DNA一致性序列计算
    python中输出两条长度一致序列碱基不同的个数
    python 中统计不同scafflod的GC含量并输出GC含量最高的scafflod
    python 中 斐波那契兔子问题
    python 中如何将列表中的数值转换为字符串
  • 原文地址:https://www.cnblogs.com/yaohunzhanyue/p/5513074.html
Copyright © 2020-2023  润新知