간단한 쿼리

데이터베이스 카테고리

  • 관계형 데이터베이스 : 오라클, MySQL은, DB2, SQL 서버, sqllite 등
  • 비 관계형 데이터베이스 : 레디 스, HBase를 등

  • DBMS :
    • 데이터베이스 관리 시스템
    • 데이터베이스 관리 시스템
  • RDBMS :
    • 관계형 데이터베이스 관리 시스템
    • 관계형 데이터베이스 관리 시스템

간단한 쿼리

아래의 emp 테이블

EMPNO ENAME MGR HIREDATE 의지 통신 DEPTNO
7,369 스미스 서기 7,902 1980년 12월 17일 800.00 (20)
7,499 ALLEN 판매원 7,698 1981년 2월 20일 1600.00 300.00 (30)
7,521 판매원 7,698 1981년 2월 22일 1250.00 500.00 (30)
7566 JONES 매니저 7839 1981년 4월 2일 2975.00 (20)
7654 남자 이름 판매원 7,698 1981년 9월 28일 1250.00 1400.00 (30)
7,698 BLAKE 매니저 7839 1981년 5월 1일 2850.00 (30)
7,782 CLARK 매니저 7839 1981년 6월 9일 2450.00 (10)
7788 SCOTT 분석자 7566 1987년 4월 19일 3000.00 (20)
7839 대통령 1981년 11월 17일 5000.00 (10)
7844 돌리는 사람 판매원 7,698 1981년 9월 8일 1500.00 0.00 (30)
7,876 ADAMS 서기 7788 1987년 5월 23일 1100.00 (20)
7900 JAMES 서기 7,698 1981년 12월 3일 950.00 (30)
7,902 포드 분석자 7566 1981년 12월 3일 3000.00 (20)
7934 MILLER 서기 7,782 1982년 1월 23일 1300.00 (10)
모든 정보 룩업 테이블
select * from emp;
하나의 열 정보를 조회

이름, 생일, 부서

select ename,hiredate,deptno from emp;

조건 문의

아니

보기 2000 미만 2000 직원 이름의보다 급여 이상을 부정

select ename from emp where sal>2000;

select ename from emp where not sal>2000;
같은 和 좋아하지

퍼지 일치하는 문자열

자리 표시 자

  • %는 0 문자의 수를 나타냅니다
  • _ 임의의 문자를 나타내는

S 모든 직원 정보를 시작 쿼리 이름

select * from emp where ename like 'S%';

당신은 같은 값을 좋아하지 않을 것이다

select * from emp where ename not like 'S%';

쿼리 이름은 세 번째 문자는 A의 직원 정보입니다

select * from emp where ename like '__A%';

보기 이름의 길이는 6 직원 정보입니다

select * from emp where ename like '______';

이스케이프 문자가 정의 탈출 의 이름으로 쿼리 직원 정보를 _

select * from emp where ename like '%\_%' escape '\';

사용 자리에서 사용 전후의 % 문자열 피해야한다

널 (null) 和는 null가 아닌

쿼리 데이터 필드의 값은 null입니다

직원 정보위원회에 대한 접근

select * from emp where comm is not null;

보기 높지 직원 정보

select * from emp where mgr is null;
하지에 和에서

서브 세트 또는 조회 한 후, 열 값은 나중에 설정 여부를 조회하는

모음 또는 서브 쿼리 표현하면, 조건은 그렇지 않으면 반대하지 설립되지 않고, 사실

  • 그것은 쉬운의 컬렉션을 나타냅니다
    • (요소, 요소, ..., 요소)

이러한 형태는 개별 요소 값의 집합을 나타낸다는 것을 유의

쿼리 정보 부서 직원 수 10 수 20

select * from emp where deptno in(10,20);
select * from emp where deptno not in(10,20,50);
하지가 존재 和 존재

하위 쿼리 다음, 그것은 변환하지에서 할 수 있습니다

바꾸지 존재에게 죄가 없도다.은 SQL 문을 하위 쿼리 결과를 확인할 수있는 경우, 다음 조건이 만족 존재 사실이 아니다

구문 : EXISTS |되지 EXISTS (SELECT 문)

  • EMP에서이 문을 선택 *를 실행, 진정한 듀얼 정상 쿼리에서 1,2,3,4를 선택합니다.
  • 정상이 될 수 없습니다 이중 쿼리에서 1,2,3,4를 선택하고 거짓, 이전 문을 실행하지 않습니다
select * from emp where exists(select 1,2,3,4 from dual);
모든 및

= | 모음 또는 하위 쿼리 모두 다음에 어떤 직접적으로 만 사용 <=> 등호를 사용할 수 없습니다

옵션 기술
> 모두 즉, 컬렉션의 가장 큰 요소보다 큰
<모든 그것은 요소의 최소한 미만 수단
> 어떤 즉, 상기 컬렉션에서 가장 작은 요소보다 큰
<어떤 이 컬렉션의 가장 큰 요소보다 의미

쿼리 직원 정보 요구 사항 다음 요구 사항이 임금 미만 (2000,1500,3000)

최소 목록보다 적은

select * from emp where sal<all(2000,1500,3000);
기호 연결 상태와, 또는
  • 및 : 및

    • 두 전반적인 상태를 설립하기 전에 설정해야합니다에 연결된 두 개의 조건으로
    • 한 사람이 보유하지 않는 한, 조건이 설정되지 않은
  • 나 : 나

    • 같은 길이의 설정이 있기 때문에, 그것에 연결된 두 조건 전체적인 조건이 성립
    • 두 가지 조건이 설정되지 않은 경우에만, 전체 조건이 충족되지 않았습니다
  • 와 ~ 사이에있는 ..

    • 이 특별한 조건 커넥터에 속하는
    • 일반적으로 숫자와 날짜에
    • 이 두 값 사이에서의 열 값을 나타낸다
    • 이후 더 이전의 작은 값. 그것의 조건 나타내는 경계 값 포함 중을
    • 상당列>=min and 列<=max

列 in(10,20,30) 상당 (列=10 or 列=20 or 列=30)

列 not in(10,20,30) 상당 列!=10 and 列!=20 and 列!=30

주문

순서

  • ASC : 큰 작은에서 상승, 기본 정렬을위한
  • 내용 : 내림차순을 나타냅니다

오름차순 임금

select * from emp order by sal;

임금 내림차순

select * from emp order by sal desc;

다중 열 정렬

또는 두 경우가 두개 이상의 컬럼 눌러 첫 번째 열을 정렬, 정렬은, 첫 번째 열은 값이 동일한 경우, 그 다음 정렬 열 정렬 장착

쿼리 직원 정보는에 따라 상승의 부서 번호 순서 경우 동일한에 따라 부문 내림차순 임금 종류

select * from emp order by deptno,sal desc;

집계 함수

이 집계 기능은 단독으로 또는 중합의 사용에 의해 중합 성 관능기 수와의 데이터 세트는 데이터이다 유의

집계 함수 기술
카운트
최대 최고
나를 최소한의
평균 평균
합집합 합산
카운트

모든 직원 수를보기

select count(*) from emp;

(가) 열 이름 관리인 인 경우, MGR 컬럼의 수는 비어 있지 기록

select count(mgr) from emp; 
최대

가장 높은 임금의 emp 테이블 쿼리

select max(sal) from emp;
나를

최저 임금의 emp 테이블 쿼리

select min(sal) from emp;
합집합

emp 테이블과 임금 쿼리

select sum(sal) from emp;
평균

평균 임금의 emp 테이블을 조회합니다

select avg(sal) from emp;

참고 : null 값은 후 평균 함수는 null 값으로 이동하지 않을이 열이있는 경우 디지털 평균 열이 계산 된 값은 다음 평균 것이다 때

별개의 중복 제거,

때 사용, 당신은 단지 모든 열 앞에 쓸 수 있습니다

별개의 복수 열로 나중에는,이 열은 동시에 동일한 값을 나타내는 경우, 중복 데이터 간주

얼마나 많은 내 그룹의 직원 emp 테이블 총

select distinct deptno from emp;

패킷

그룹화 열은 각 그룹에서 결과 데이터를 쿼리 그룹으로 나누어 동일한 열 값 데이터 패킷은, 단지 하나를 가질 수있다

패킷은 필드의 열에서 동일한 값이 구 세트로 분할되고

select 列,列,...,列
from 表
where 条件
group by 分组列,分组列
order by 排序列

분류 번호의 상이한 세트, 각각의 그룹의 가장 높은 임금 통계의 수 및 최소 임금 따르면

select deptno,count(*),sum(sal),avg(sal),max(sal),min(sal)
from emp
group by deptno;
다중 열 그룹화

다수의 칼럼을 그룹화 할 때, 패킷의 동일한 값이 복수 열은 같은 그룹에 속하는 같다

select ename,empno,sal,job,deptno 
from emp
order by deptno,job;
 select deptno,job,count(*),max(sal) 
 from emp 
 group by deptno,job;

필요

어디 갖는 차이점

필요

  • 조건식 이어
  • 패킷 데이터를 갖는 스크리닝
  • 이어서 할 수는 중합 곳의 비율로하는 기능을 수행

어디

  • 조건식,이 데이터 패킷 차단의 전방이다 집계 기능을 사용할 수없는 통상의 함수 다음에 우선 할 수있다

당신은 조건이 내부의 필요에 기록 될 수있는 곳에서 쓸 수 있습니다 (하지만이 작성하지 않음)

, huving는 쓸 수 없습니다 쓰려고되지 않은 내부가 기록되는 곳 조건 쓸 수 있습니다

2000 이상의 부서가 더 필요로하는 다양한 분야에서 쿼리 부문 임금의 평균, 평균 임금,

select deptno,count(*),avg(sal) 
from emp 
group by deptno 
having avg(sal)>2000;

쿼리 실행 순서

> ORDER BY 가짐> 그룹>에 의해

추천

출처www.cnblogs.com/inmeditation/p/11773051.html