zoukankan      html  css  js  c++  java
  • SQL语句之查询(SELECT)

    SQL语句之查询(SELECT)

    SQL是用于访问和处理数据库的标准计算机语言;
    中文:结构化查询语言;英文全称:Structured Query Language;
    而其中的核心就是查询。

    简单查询

    SELECT 字段,字段,字段...			  [SELECT 子句]
    FROM EMP;(数据来源)					[FROM 子句]
    
    • 以上两个语句执行时,先执行FROM子句,再执行SELECT子句。
    • 当查询所有字段信息时可以使用通配符*
    • 当信息有重复时,可以使用关键字DISTINCT来去除重复。

    限定查询

    再实际开发中基本上都会使用限定查询

    SELECT 字段,字段,字段...			  [SELECT 子句]
    FROM 数据来源						  [FROM 子句]
    WHERE 过滤条件						 [WHERE 子句]
    
    • WHERE 子句会根据过滤条件来选择出满足条件的数据。

    1.关系运算符

    SELECT *
    FROM EMP
    WHERE SAL>1000;
    
    • 查询月薪大于1000的员工信息。
    SELECT *
    FROM EMP
    WHERE ENAME = 'SMITH';
    
    • 查询名为SMITH的员工信息。
    SELECT *
    FROM EMP
    WHERE JOB<>'SALESMAN';
    
    • 查询工作不是SALESMAN(销售)所有员工信息。

    2.逻辑运算符

    SELECT *
    FROM EMP
    WHERE SAL >= 1500 AND SAL<= 3000;
    
    SELECT *
    FROM EMP
    WHERE BETWEEN 1500 AND 3000;
    
    • 以上两种方式都是查询所有月薪在1500到3000之间的员工信息;但是这两种的有区别的。第一种在数据库中会认为是两个判断条件,而第二种(BETWEEN AND )则只认为是一个判断条件,所有第二种效率更高一点。

    3.空判断

    SELECT *
    FROM EMP
    WHERE COMM IS NULL;
    
    • 查询没有佣金的员工信息。

    4.IN查询

    SELECT *
    FROM EMP
    WHERE EMPNO IN (7788,7654,6329);
    
    • 查询员工编号是7788,7654,6329的员工信息。

    模糊查询

    在了解模糊查询之前要先了解通配符_%
    _:表示任意一个字符;
    %:表示任意位数的任意字符;
    同过关键字LIKE来实现模糊查询。

    SELECT 字段,字段...
    FROM 数据来源
    WHERE 模糊查询的字段 LIKE 关键内容
    
    SELECT *
    FROM EMP
    WHERE ENAME LIKE 'A%';
    
    • 查询姓名以A开头的员工信息。
    SELECT *
    FROM EMP
    WHERE ENAME LIKE '%A%';
    
    • 查询姓名中含有A的员工信息。
    SELECT *
    FROM EMP
    WHERE ENAME LIKE '_A%';
    
    • 查询姓名第二个字母是A的员工信息。

    排序查询

    排序查询:将结果按照指定字段进行升序或者降序来显示,注意指定的字段一般指数字或者日期。

    其关键字是 ORDER BY

    SELECT 字段...
    FROM 数据来源
    WHERE 过滤条件
    ORDER BY 排序字段	ASC[DESC]
    
    • ASC:升序排列(默认);DESC:降序排列。
    SELECT *
    FROM EMP
    WHERE JOB = 'SALESMAN'
    ORDER BY SAL DESC;
    
    • 工作是销售并按月薪降序排列员工信息。

    多表查询

    如果要从多张数据表中查询数据,那么就会用到多表查询,多表查询也叫做连接查询。

    SELECT 字段...
    FROM 数据源,数据源...
    WHERE 过滤条件
    ORDER BY 排序字段 ASC[DESC]
    
    • 当多表查询时,会产生笛卡尔积。即查询出的数据量是各个数据源的数据量的乘积。这样的数据含有大量没用的重复数据,可以使用WHERE 子句来加过滤条件消除笛卡尔积。
    SELECT *
    FROM EMP,DEPT
    WHERE EMP.DEPTNO = DEPT.DEPTNO;
    
    • 通过WHERE使两张数据源中关联字段相等来消除笛卡尔积。注意:这里的消除是指不显示没用的相关数据,实际上并没用真正的去除。所以一般数据量比较大时 不要使用多表查询,会消耗很多性能。

    以上

    @Fzxey

  • 相关阅读:
    文件的上传
    扩展HTTP管道
    发布开源框架iOS矢量图形框架 TouchVG
    批量修改文件名的py脚本
    《矢量绘图基础》PPT
    开题了《面向移动设备的交互式图形平台设计与实现》
    计算几何(转)
    批量替换文件名和内容的Python脚本
    iOS上的二维绘图软件现状
    基本图形手绘图形算法包
  • 原文地址:https://www.cnblogs.com/fzxey/p/10883824.html
Copyright © 2011-2022 走看看