zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    网页制作之JavaScript部分3--事件及事件传输方式(函数调用 练习题 )重要---持续更新中
    网页制作之JavaScript部分 2
    网页制作之JavaScript部分 1
    css之display:inline-block与float区别(可以尝试用一下)
    边框圆角化方式(原文链接http://www.cnblogs.com/SJP666/p/4678730.html)
    网页制作之html基础学习5-background-position用法
    网页制作之html基础学习4-格式与布局
    网页制作之html基础学习3-css样式表
    网页制作之html基础学习2-标签
    程序员的成长必备
  • 原文地址:https://www.cnblogs.com/yaohunzhanyue/p/5513074.html
Copyright © 2011-2022 走看看