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

数据库----SQL基本查询的更多相关文章

  1. Oracle数据库——SQL高级查询

    一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所 ...

  2. 数据库SQL SELECT查询的工作原理

    一般开发员只会应用SQL的四条经典语句:select,insert,delete,update.但是我从来没有研究过它们的工作原理,这篇我想说一说select在数据库中的工作原理. B/S架构中最经典 ...

  3. 数据库SQL语句查询指定时间段内的数据

    [摘要]有的时候,我们需要查询数据库某段时间之间的数据,比如2016年5月1号到到5月3号之间用户注册数量(特殊节假日期间)等.那么用SQL语句如何实现呢? 首先,数据表中的存时间的字段比如是addt ...

  4. Oracle数据库——SQL基本查询

    一.涉及内容 1.掌握SELECT 语句的基本语法. 2.掌握常用函数的使用. 二.具体操作 (一)使用Scott方案下的emp表和dept表,完成以下操作: 1.查询部门编号是20的员工信息. 2. ...

  5. 如何使用SQL SERVER数据库跨库查询

    SQL Server中内置了数据库跨库查询功能,下面简要介绍一下SQL Server跨库查询.首先打开数据源码:OPENDATASOURCE不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分 ...

  6. 怎样用SQL语句查询一个数据库中的所有表?

    怎样用SQL语句查询一个数据库中的所有表?  --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...

  7. 怎么用sql语句查询一个数据库有多少张表

    今天在技术群中闲谈时忽然聊到一个问题,那就是当一个数据库中有多张表时怎么快速的获取到表的个数,从而给问询者一个准确的回答. 大家或许会说,这个问题和我们的数据库操作没有太大关系或者不是很挂钩,所以没意 ...

  8. 你用什么方法检查 PHP 脚本的执行效率(通常是脚本执行时间)和数据库 SQL 的效率(通常是数据库 Query 时间), 并定位和分析脚本执行和数据库查询的瓶颈所在?

    php: 一般是在你要检查的代码开头记录一个时间,结尾记录一个时间.取差值, 数据库SQL的效率    sql的explain(mysql),启用slow query log记录慢查询.   通常还要 ...

  9. SQL语句查询数据库的触发器、存储过程、视图以及表的SQL语句

    Sql Server数据库用SQL语句查询方法如下: select name from sysobjects where xtype='TR' --所有触发器 select name from sys ...

随机推荐

  1. CTO职场解惑指南系列(一)

    基于科技能够改变世界的事实,几乎每个公司的程序员都自带闪光灯.程序员的手和普通人的手自然是有区别的,“我们可是用双手改变了世界” .(码农真的是靠双手吃饭,呵呵) 这个世界上但凡靠双手吃饭就会特别不容 ...

  2. 点击回退时需要点击2次才可返回js

    为a加上window.location.href跳转页面时,再返回到此页面,再点击返回时需点击2次才能返回到前一个页面,原因竟然是href=“#”的原因,在html中#可做为锚点 http://blo ...

  3. Java-Shiro:目录

    ylbtech-Java-Shiro:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://yl ...

  4. FreeMarker 自定义 TemplateDirectiveModel(一)

    FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker 与 Web 容器无关,即在 Web 运行时,它并不知道 Servlet 或 HTTP.它不 ...

  5. Spring MVC(六)--通过URL传递参数

    URL传递参数时,格式是类似这样的,/param/urlParam/4/test,其中4和test都是参数,这就是所谓的Restful风格,Spring MVC中通过注解@RequestMapping ...

  6. Java 使用JDBC连接MySQL

    //  这学期本来不打算深入学习Java的,课上的小项目也就随便写了一个简单计算器和扫雷游戏就糊弄过去.可是我们的Eliza老师偏偏什么都讲了,考虑到期末也会涉及到JDBC的内容,前些天试着学习一番. ...

  7. 【51nod 1874】 奇怪的数学题

    题目 求 \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 首先这个次大公约数显然就是\(gcd\)除一下最小质因子了 于是 \[\sum_{i=1}^n\sum_{j= ...

  8. mysql case....when条件

    oracle的写法SELECT decode(ttype,1,’a',2,’b',3,’c',’d') FROM taba 可以在mysql里写成SELECT if(ttype=1, 'a',if(t ...

  9. PAT甲级——A1035 Password

    To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...

  10. 观察者模式(Observer、Subject、ConcreteSubject、ConcreteObserver)(监护、订阅)

    建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应的作出反应. 在此发生改变的对象称之为观察目标(被观察者),而被通知的对象称为观察者,一个观察者目标可以对应多个观 ...