• 数据库----SQL基本查询


    SQL基本查询

    查表 :show create table 表名(show tables);

       describe 表名;(desc 表名)//  模糊查询:show table like '%c%';(查询带c的数据表)

    基本查询:

      SELECT [DISTINCT] * | 字段名1,字段名2,…FROM  表名  [ WHERE 条件表达式1]
          GROUP BY  字段名【HAVING 条件表达式2】]
            [ORDER BY  字段名 [ASC | DESC] ]
              [ LIMIT [OFFSET] 记录数 ]  
    select * | 字段名1,字段名2...from table_name 
    SELECT 字段名 【AS】别名 from table_name // 为字段添加别名
     
    条件查询:
      where关键字--------对条件语句进行过滤
      IN 关键字------------用于判断某个子弹的值是是否在指定集合中。
      AND关键字---------多条件查询-------满足所有条件则会有结果。
      OR关键字---------满足任意一个条件就会有结果。
      BETWEEN AND 关键字-------查询区间值------判断某个字段值是否在指定的范围内。
      空值查询-----------控制为null,不是啥样没有或者是0;
      DISTINCT 关键字------查询会过滤表中重复的数据
      LIKE 关键字--------模糊查询
        百分号(%)通配符:匹配任意长度的字符串,包括空字符,如:“%c”匹配以字符C开头的。“w%g”表示以w开头g结尾的字符串“可,”%C%“表示出现c的字符串。
        下划线( _ )通配符:只匹配单个 字符,需要匹配多个需要使用多个下划线通配符。
           加入字符串中出现了_或%则用进行转义。如“\_“和”\%”。
      Having关键字-----设置表达式对结果进行过滤,having关键字可以跟聚合函数,where不能。
    select * from table_name where 字段名 [NOT]  IN (元素1,……)
    SELECT * | {字段名1,字段名2,…} FROM 表名 WHERE条件表达式 OR 条件表达式2[………] //当and和or关键字一起使用,and的优先级高于OR.
    select * from table_name where 字段名 [NOT] BETWEEN 值1  AND 值2;//且结果区间包括值1,不包括值2.
    SELECT * | 字段名1,字段名2,… FROM 表名 WHERE 字段名 IS [NOT] NULL;
    SELECT DISTINCT 字段名1,字段名2,… FROM 表名;
    SELECT * | {字段名1,字段名2,…} FROM 表名 WHERE 字段名 [NOT] LIKE ‘匹配字符串’;

     

     

    高级查询:
      聚合函数-------对表中的一组值进行统计,并返回唯一值。如count(),sum()等
       ORDER BY关键字-------对结果进行排序-----Asc升序,desc降序,默认升序。
      分组查询:
        GROUP BY关键字---对某个字段值进行分组。
        group by和聚合函数一起------------统计最大值或啥啥啥之类的,看具体聚合函数。
        group by和Having关键字一起------对分组后的结果进行过滤。
      LIMIT关键字-----限制查询结果的数量-------分页查询中常用到。
      函数----简化用户对数据的操作----字符串函数、数学函数等等
       
    select  count(x字段名)  from table_name;  //统计x一共的记录
    select * from table_name ORDER BY 字段名 [asc | desc]; //根据字段名进行升序或降序
    SELECT 字段名1,字段名2,… FROM table_name GROUP BY 字段名1,字段名2,.....[HAVING条件表达式;];
    SELECT 字段名1,字段名2,… FROM 
    table_name LIMIT [OFFSET,] 记录数;
        //OFFSET表示偏移量--默认为0,表示从第1条数据开始返回。
        //记录数 表示返回的查询结果的数量
     
    多表查询:
      交叉连接:笛卡尔积--表A的记录数 * 表B的记录数---CROSS JOIN----连接两个表。
      内连接:又称简单连接或自然连接,根据指定的连接条件进行连接查询,只有满足条件的数据才出现在结果集
      外连接:在内连接的基础上,将某个表中不符合条件的记录加入到集合中,一个表只能和一个表外连接。
        左连接----LEFT JOIN----返回包括左表的所有记录和右表的中符合连接条件的记录。
                    左外连接:左表完全显示,右表不符合条件的用null显示。关键字 left join  。  
        右连接----RIGHT JOIN---返回包括右表的所有记录和左表中符合连接条件的记录。
                    右外连接:右表完全显示,左表不符合条件的用null显示。关键字 right join
                  全外连接:连接操作符两侧表中不符合条件的记录加入结果集合中,完全显示两表,没有匹配的记录为空。关键字full join。
     
    交叉连接:select  *  from 表A CROSS JOIN 表B;
    内连接:select 查询字段 from 表A [INNER] JOIN 表2 ON 表1.关系子弹 = 表2.关系字段//inner join用于连接两个表,ON指定连接条件
    左右连接:select 所查字段 from 表1 LEFT|RIGHT [OUTER] JOIN 表2 ON 表1.关系字段 = 表2.关系字段 where 条件
    全外连接:select * from emp e full join depet d on e.depton = d.depton;
    子查询:也称嵌套查询。
            单行子查询:只返回一条数据供外层查询语句进行比较操作。
          IN关键字-----外层查询的值与子查询返回值中的某个值相等。
          EXISTS关键字-----后面的参数可以是任意一个子查询,作用是测试,它不产生任何数据,只返回TURE或FALSE。当为TURE时,外部查询才执行。
      
              多行子查询:返回多于一行数据的子查询。
                     ANY(与子查询返回的任何一个值比较)、ALL(与子查询返回的所有值比较)
             ANY关键字--------当子查询返回多个值时,把子查询的多个值当做条件,且满足任意一个条件。
        ALL关键字--------与所有子查询的值比较,且均要满足。     
      
        多列子查询:向外部的SQL语句返回多列
                  关联子查询:子查询在执行时需要引用外部父查询的信息
                  嵌套子查询:子查询内部嵌套其他子查询,其那套层次最多为255.
    select  *  from  table_name where 字段名 IN|<|>  (select 子查询)  ;
     
       
     
     
  • 相关阅读:
    增加文章
    网站之注册
    C#常用的引用
    Session.Abandon和Session.Clear有何不同 (转)
    C#文件路径的写法
    UpdatePanel的用法详解
    [转]asp:ScriptManager
    Git 常用命令
    AJAX请求 $.post方法的使用
    a 标签中调用js的几种方法
  • 原文地址:https://www.cnblogs.com/Tanggula-pioneer/p/11740593.html
Copyright © 2020-2023  润新知