zoukankan      html  css  js  c++  java
  • SQL查询

    SQL 查询

    语法规则:

    1.  select * from 表名; 查询所有的字段 
    2.  select 字段 as [别名] from 表名; 查询一些字段 
    
    select 字段列表
    from 表名 -- 这里可以有多张表
    [where 条件]
    [group by 分组]
    [having 分组条件]
    [order by 排序]
    

    1、基本查询

    语法:

        1.  select * from 表名; 查询所有的字段 
        2.  select 字段 as [别名] from 表名; 查询一些字段 
    
    -- 查询所有的员工信息 
    select * from emp;
    -- 查询编号,姓名 职位  薪资 
    select empno,ename,job,sal from emp;
    
    查询结果显示标题 (编号,姓名 职位  薪资)
    -- as 添加别名  (员工编号")
    -- as 可以省略   "" 可以省略 
     select empno as "员工编号" ,ename 姓名,job,sal from emp;
    
    -- 查询所有emp 的职位 
    select job from emp; -- 有重复 去重复
    -- 去重复  distinct
    select distinct job from emp;
    
    -- 查询中进行四则运算  查员工年薪 
    select ename,job,(sal * 12 + 200) 年薪 from emp;
    
    -- 查询常量的使用 
     select '员工',ename,job from emp; -- 可以是字符串 常量 
     select 9527,ename,job from emp;  -- 可以是数组常量 (省略 '')
    
    -- 可以使用 || 凭借符  
    
    select empno || ename from emp;
    -- 不能""
    select  '编号:' || empno || '姓名:'|| ename  员工信息 from emp;
    
    -- 查询的时候 表 可以使用别名 
    select e.ename,e.job from emp e;
    

    2、条件查询

    语法:

    select 列名 
    from 表名 
    where 判断条件;      
    1. 关系运算符  > =    (<> !=) 不等于2中写法 
    sal > 1500 员工 
    select * from emp where sal > 1500;
    名字叫soctt 的员工信息
    select * from emp where ename = 'SCOTT';
    
    职位不是 ANALYST 的员工 
    
    select * from emp where job <>'ANALYST';
    select * from emp where job !='ANALYST';
    2. 逻辑运算符  and  or not 
    sal 在 1500 -2000 之间的  
    select * from emp where sal > 1500 and sal < 2500;
    
    查询sal > 3000 或者 名字叫 SCOTT 
    select * from emp where sal > 3000 or ename = 'SCOTT';
    
    SAL 不在这个 1500 -2000
    select * from emp where not (sal > 1500 and sal < 2500);      
    
    3.区间运算 
    between ... and ...  可以用在 数值 和 时间上 
    1. 查找在 1200 到 2500 之间 
    select * from emp where sal between 1200 and 2500;
    2. 在 1981 年入职的员工   
    select * from emp where hiredate between '01-1月-81' and '30-12月-81';
    
    4. 判断 null 操作 
    is null  is not null 
    -- comm 是奖金  
    -- 奖金为null 的员工 
    select * from emp where comm is null;
    -- 不为空 
    select * from emp where comm is not null;
    5. in   和  not in  
    
    在in 什么中 
     判断员工标号 :是否在 (7499,7521,8888) 
    select * from emp where empno  = 7499 or empno = 7521 or empno  =8888;
    select * from emp where empno in (7499,7521,8888);
    

    3、模糊查询

    SQL的四种匹配模式:% _ [ ] [^]

    通配符 解释
    % 包含零个或更多字符的任意字符串
    _ 下划线,表示任何单个字符
    [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符
    [^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符
    --1.查以 姓名以 A开头的员工 
    select * from emp where ename like 'A%';  
    --2.以s结尾  
    select * from emp where ename like '%S';  
    --3. 查询 第二字符为A的官员 
    select * from emp where ename like '_A%';
    --4. 是否包含s的员工 
    select * from emp where ename like '%S%';
    

    4、排序查询

    排序查询的语法:

    select * from t
    where 条件 
    order by 字段;
    
    -- sql的执行顺序 
    1.查表名 
    2. 查询 where判断条件 
    3. select *  字段
    4. 排序 
    
     1.查询所有的员工 
    
     select * from emp; -- 通过插入顺序进行 展示的 
    
     -- ase 升序  (默认是升序)
     -- desc 降序
    
     -- 通过薪资进行排序 (底到高) 升序 
       select * from emp
       order by sal ASC;
     --  默认是升序  asc 可以省略 
      select * from emp
       order by sal desc;
    
     -- 按照入职时间进行排序(升序) 如果入职时间相同 薪资排序 (降序)
    
     select * from emp 
     order by hiredate asc,sal desc;
    
  • 相关阅读:
    Nhibernate 简单实例(一)
    Sql 行转列
    EasyUI TreeGrid 的使用
    MSMQ消息队列的简单使用
    实体类与DataTable互换
    给Config的appSettings节点赋值
    Angular js (2)
    Angular JS 入门
    用Aspose.Cells 导出为自定义格式的excel
    【多线程学习笔记整理】002_线程的停止、暂停、与yield
  • 原文地址:https://www.cnblogs.com/zhiwenxi/p/11525168.html
Copyright © 2011-2022 走看看