• sql语句


    查看sql基础https://www.cnblogs.com/yangj-Blog/p/12976572.html

    然后看看常见的sql语句

    查询某个数据是否存在

    传统的方法是使用count,他会统计具体的数据,但是显然需要遍历表中所以的数据,当数据量很大时,效率较低。

    SELECT count(*) FROM table WHERE a = 1 AND b = 2

    SQL不再使用count,而是改用 LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了

    业务代码中直接判断是否非空即可

    select 1 from user where id = xxx limit 1;

    统计函数及分组统计的操作

    统计函数主要有: 
    COUNT():用于统计数据数量 

    注意关于COUNT()函数,当数据表中没有数据时,COUNT()总是会返回一个数值,只是这个数值是“0” 

    SUM():用于统计数据和 
    AVG():统计平均值 
    MIN():得到最小值 
    MAX():得到最大值 

    select count(empno),sum(sal),avg(sal) from emp;
    按照职位分组,求出每个职位的最高和最低工资:
    select job,max(sal),min(sal) from emp group by job;
    

    多表查询

    select empno,ename,job,sal,dept.deptno,dname,loc
    
        from emp,dept
    
        where emp.deptno(+)=dept.deptno; -- (Oracle 8i 及以前的写法)

        --另一种写法(右连接):     -- (SQL 99的写法)

        select empno,ename,job,sal,dept.deptno,dname,loc
    
        from emp right join dept on (emp.deptno=dept.deptno);

    多条件查询

    select * from TABLE where USERID=a or USERID= b or USERID=c

    但是有一种效率更高的

     用in实现,比如
    select * from TABLE where USERID in(a,b,c,d……)

    或者普通的多列选项

    SELECT * FROM T_Employee 
    WHERE FNumber BETWEEN 'DEV001' AND 'DEV008' 
    AND FName LIKE '%J%' 
    AND FSalary BETWEEN 3000 AND 6000

    多表多条件查询语句

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

    例子

    有5个结构相同的表,表1、表2、表3、表4、表5,对这5个表单条件查询Select * from 表1 where 入职日期='2014-04-20' union all Select * from 表2 where 入职日期='2014-04-20' union all..........union all Select * from 表5 where 入职日期='2014-04-20' 查询是成功的,如果再加上一个查询条件 ,岗位=普工,表达式该怎么写?

    Select * from 表1 where 入职日期='2014-04-20' and 岗位='普工' 
    union all
    Select * from 表2 where 入职日期='2014-04-20' and 岗位='普工'
    union all
    ..........
    union all
    Select * from 表5 where 入职日期='2014-04-20 and 岗位='普工'

    或者

    select * from
    (select * from 表bai1
    union all
    select * from 表2
    union all
    select * from 表3
    union all
    select * from 表4
    union all
    select * from 表5)tb
    where 入职日du期='2014-04-20' and 岗位zhi='普工'

     查询每个部门最高员工工资

  • 相关阅读:
    Codeforces-859C Pie Rules(dp)
    Codeforces-550D Regular Bridge
    Codeforces-534D Handshakes
    抽象类
    内部类
    接口
    初始化
    this 和super
    数据库测试的测试点
    数据库测试的主要内容
  • 原文地址:https://www.cnblogs.com/yangj-Blog/p/13285308.html
Copyright © 2020-2023  润新知