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 子查询)  ;
 
   
 
 

最新文章

  1. C++ 编写DLL文件给易语言调用
  2. C++ URLDecode和URLEncode实现——仅限gb2312,非utf8
  3. (转)博弈问题与SG函数
  4. apicloud+融云实现即时通讯
  5. memset与NULL区别
  6. 对C#中的web访问mysql数据库的一些知识点进行了整理归纳总结
  7. Lucene学习总结之七:Lucene搜索过程解析
  8. 【转】解决Gradle DSL method not found: ‘android()’
  9. 12款免费与开源的NoSQL数据库
  10. ABP Zero 导航菜单之角色权限
  11. 一个最简单的cell按钮点击回调
  12. MySQL字段操作与数据处理
  13. Retrofit 实现获取往里圆角图片,且传值到另一个页面
  14. keepalived配置介绍
  15. linux系统nginx的https的跳转
  16. Android开发之GridView的使用(解读谷歌官方API)
  17. 【bzoj2669】 cqoi2012—局部极小值
  18. jdk windows环境变量
  19. Apache URL重写的配置 及其 apache500错误
  20. Python监控目录和文件变化

热门文章

  1. 使用 SourceTree 操作时弹出 password required
  2. [不知道出自什么OJ]最大利润
  3. Genymotion 的那些事
  4. FreeMarker 自定义 TemplateDirectiveModel(一)
  5. JspServlet
  6. 渗透测试入门DVWA 环境搭建
  7. JS基础语法之DOM02(事件)
  8. ES6之主要知识点(二) 变量的解构赋值。默认值
  9. mysql导入数据
  10. 全栈之路-微信小程序-架构总览