데이터베이스 카테고리
- 관계형 데이터베이스 : 오라클, 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 가짐> 그룹>에 의해