본문 바로가기

Programming/SQL

3. 실습(1) - BASIC

Edit

3. 실습(1) - BASIC

  • 샘플 데이터 베이스 개요
  • 데이터를 제공하는 MySQL에 따르면 here
    준비된 데이터는 다음과 같은 개수(expected_records)를 가진다.
  • 각 테이블의 데이터를 확인하는 SQL문을 만들어 보자
table_name expected_records expected_crc
employees 300024 4d4aa689914d8fd41db7e45c2168e7dcb9697359
departments 9 4b315afa0e35ca6649df897b958345bcb3d2b764
dept_manager 24 9687a7d6f93ca8847388a42a6d8d93982a841c6c
dept_emp 331603 f16f6ce609d032d6b1b34748421e9195c5083da8
titles 443308 d12d5f746b88f07e69b9e36675b6067abb01b60e
salaries 2844047 b5a1785c27d75e33a4173aaa22ccf41ebd7d4a9f
SELECT COUNT(*) FROM EMPLOYEES;
SELECT COUNT(*) FROM DEPARTMENTS;
SELECT COUNT(*) FROM DEPT_MANAGER;
SELECT COUNT(*) FROM DEPT_EMP;
SELECT COUNT(*) FROM TITLES;
SELECT COUNT(*) FROM SALARIES;
  • COUNT 함수는 집계 함수 (Aggregate function) 라고 하여 개수(COUNT), 합(SUM), 평균(AVG), 최대값(MAX), 최소값(MIN)이 있다.
  • 지정된 그룹(GROUP)에 대한 계산을 진행하는 함수로 여기에서는 그룹이 지정되지 않았기 때문에 전체 그룹(테이블)을 대상으로 계산된다.
  • 여기서는 작성해야할 SQL문에 대한 일반적인 질문을 SQL문으로 작성하면서 SQL 능력을 키우려고 한다.
  • 다음 문제들을 가급적 SQL문을 보지 않고 직접 작성해 보면서 익히길 바란다.


1. 직원 이름이 빠른 순(A, B, C …) 순으로 리스트를 출력하시오.

SELECT *
FROM EMPLOYEES
ORDER BY FIRST_NAME, LAST_NAME;

NOTE : ORDER BY는 데이터 정렬을 의미하는 것으로 올림차순(ASC)과 내림차순(DESC)이 있다.
올림차순은 ABC~~가나다~~순을 의미하고 내림차순은 반대의 개념이다.
ORDER BY 뒤에 필드 명을 쓰고 정렬을 생략하면 올림차순으로 조회된다.


연습: 직원 나이가 적은 순으로 출력하시오.

SELECT * 
FROM EMPLOYEES
ORDER BY BIRTH_DATE DESC;


2. 직원 중 나이가 가장 많은 사람의 생년월일은 언제 인가?

SELECT MIN(BIRTH_DATE) 
FROM EMPLOYEES


3. 직원 중 나이가 가장 많은 사람의 나이는 몇 살 인가?

SELECT TIMESTAMPDIFF(YEAR, MIN(BIRTH_DATE), NOW()) 
FROM EMPLOYEES

NOTE : NOW는 현재 시간을 가져오는 함수이고,
TIMESTAMPDIFF와 DATEDIFF 시간의 차이를 구하는 함수이다.


연습: 가장 나이 많은 직원과 적은 직원의 나이 차이는 몇 살 인가?

SELECT TIMESTAMPDIFF(YEAR, MIN(BIRTH_DATE), MAX(BIRTH_DATE)) 
FROM EMPLOYEES;


4. 직원들의 업무(titles)에는 직원별로 업무가 저장되어 있다. 이 회사의 업무 종류 리스트를 구하시오.

SELECT DISTINCT TITLE 
FROM TITLES;

NOTE : DISTINCT는 지정된 필드에 대한 고유값을 보여주는 명령어 이다.


연습: 이 회사의 업무 종류 개수를 구하시오.

SELECT COUNT(DISTINCT TITLE) 
FROM TITLES;

NOTE : 집계 합수에도 DISTINCT를 사용할 수 있다.


5. 가장 최근에 입사한 사람 100명만 출력하시오

SELECT * 
FROM EMPLOYEES
ORDER BY HIRE_DATE DESC
LIMIT 100;

NOTE : LIMIT는 조회 데이터의 개수를 제한하는 명령어 이다.
Limit뒤에 정수만 단복으로 나올 경우 (ex: LIMIT 100) 이 정수는 개수를 의미한다.
Limit뒤에 정수가 둘일 경우는 는 순서와 개수를 의미한다.
예로 LIMIT 100, 10 일 경우 100은 100번째, 10은 개수를 의미한다.
즉, 100부터 110까지의 데이터가 조회된다.
다만, 순서가 1부터가 아닌 0부터 시작하기 때문에 실제 의미는 101부터 111까지의 데이터가 조회된다.


연습: 급여가 가장 많은 사람 10명을 구하시오.

SELECT * 
FROM SALARIES
ORDER BY SALARY DESC
LIMIT 10;


연습: 급여가 가장 많은 사람 10명을 제외하고 다음 10명을 구하시오. (11등부터 20등 까지)

SELECT * 
FROM SALARIES
ORDER BY SALARY DESC
LIMIT 10, 10;


6. 입사한지 가장 오래된 사람의 이름은 무엇인가?

SELECT * 
FROM EMPLOYEES
ORDER BY HIRE_DATE
LIMIT 1;


7. 1999년에 입사한 직원 리스트를 구하시오.

SELECT *
FROM EMPLOYEES
WHERE YEAR(HIRE_DATE)=1999;

NOTE : WHERE는 테이블 전체에 대한 조건을 의미하는 함수로 그룹에 조건을 사용하는 Having과 차이가 있다.
YEAR 함수는 지정된 값에서 년도를 추출하는 함수로 날짜 함수는 찾아보길…


8. 1999년에 입사한 직원 중 여자 직원(GENDER=’F’) 리스트를 구하시오.

SELECT *
FROM EMPLOYEES
WHERE YEAR(HIRE_DATE)=1999 AND GENDER='F';

NOTE : 조건이 여러 개일 경우 AND나 OR를 사용할 수 있다.


연습: 1998년에 입사한 직원 중 남자 직원(M)은 몇 명인가?

SELECT COUNT(*)
FROM EMPLOYEES
WHERE YEAR(HIRE_DATE)=1999 AND GENDER='M';


9. 1998년에 입사한 남자 직원 중 나이가 어린 5명을 구하시오.

SELECT *
FROM EMPLOYEES
WHERE YEAR(HIRE_DATE)=1999 AND GENDER='M'
ORDER BY BIRTH_DATE
LIMIT 5;


10. 1998년이나 1999년에 입사한 직원의 수를 구하시오.

SELECT COUNT(*) -- 5669
FROM EMPLOYEES
WHERE YEAR(HIRE_DATE)=1998 OR YEAR(HIRE_DATE)=1999


연습 : 1998년이나 1999년에 입사한 직원 중 남자 직원의 수를 구하시오.

SELECT COUNT(*) -- 3364
FROM EMPLOYEES
WHERE (YEAR(HIRE_DATE)=1998 OR YEAR(HIRE_DATE)=1999) AND GENDER='M'

NOTE : OR와 AND가 같이 사용될 때는 괄호() 사용에 주의해야 한다.
년도는 OR로 괄호를 이용하여 먼저 처리하고 이 조건에 의해 구해진 데이터 중 성별이 남자(AND)인 직원만 추출하게 된다.
많이 하는 실수로 잘 못 사용하면 처리 속도에 문제가 생기고 원하지 않는 데이터들이 나오게 된다.


11. 1995년부터 1999년까지 입사한 직원의 수를 구하시오.

SELECT COUNT(*) -- 34027
FROM EMPLOYEES
WHERE YEAR(HIRE_DATE) BETWEEN 1995 AND 1999

NOTE : BETWEEN은 두 조건 사이의 값이 일치하는 데이터를 계산하는 명령어이다.


12. 1995, 1997, 1999년에 입사한 직원의 평균 나이를 구하시오.

SELECT AVG(TIMESTAMPDIFF(YEAR, BIRTH_DATE, NOW())) -- 57.1324
FROM EMPLOYEES
WHERE YEAR(HIRE_DATE) IN (1995, 1997, 1999);

NOTE : IN 명령어는 개별 값에 대한 조건을 부여하는 것으로 다수의 OR를 의미한다. ( 문자에 대해서도 사용할 수 있다. )


연습 : 성(last_name)이 Senzako, Pettis, Henseler인 직원을 출력하시오.

SELECT *
FROM EMPLOYEES
WHERE LAST_NAME IN ('Senzako', 'Pettis', 'Henseler');


출처 : SW 개발이 좋은 사람

%23%23%23%203.%20%uC2E4%uC2B5%281%29%20-%20BASIC%0A%0A@%28SQL%29%5Btistory%2C%20SQL%5D%0A%0A-%20%5B**%uC0D8%uD50C%20%uB370%uC774%uD130%20%uBCA0%uC774%uC2A4%20%uAC1C%uC694**%5D%28http%3A//youssol.tistory.com/26%29%0A-%20%uB370%uC774%uD130%uB97C%20%uC81C%uACF5%uD558%uB294%20MySQL%uC5D0%20%uB530%uB974%uBA74%20%5Bhere%5D%28https%3A//dev.mysql.com/doc/employee/en/employees-validation.html%29%20%0A%uC900%uBE44%uB41C%20%uB370%uC774%uD130%uB294%20%uB2E4%uC74C%uACFC%20%uAC19%uC740%20%uAC1C%uC218%28expected_records%29%uB97C%20%uAC00%uC9C4%uB2E4.%0A-%20%uAC01%20%uD14C%uC774%uBE14%uC758%20%uB370%uC774%uD130%uB97C%20%uD655%uC778%uD558%uB294%20SQL%uBB38%uC744%20%uB9CC%uB4E4%uC5B4%20%uBCF4%uC790%0A%0A%7C%20table_name%20%20%7C%20expected_records%20%7C%20expected_crc%20%7C%0A%7C%20%3A--------%20%7C--------%3A%7C%20%3A------------%3A%20%7C%0A%7C%20employees%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20300024%20%7C%204d4aa689914d8fd41db7e45c2168e7dcb9697359%20%7C%0A%7C%20departments%20%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%209%20%7C%204b315afa0e35ca6649df897b958345bcb3d2b764%20%7C%0A%7C%20dept_manager%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2024%20%7C%209687a7d6f93ca8847388a42a6d8d93982a841c6c%20%7C%0A%7C%20dept_emp%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20331603%20%7C%20f16f6ce609d032d6b1b34748421e9195c5083da8%20%7C%0A%7C%20titles%20%20%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20443308%20%7C%20d12d5f746b88f07e69b9e36675b6067abb01b60e%20%7C%0A%7C%20salaries%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%202844047%20%7C%20b5a1785c27d75e33a4173aaa22ccf41ebd7d4a9f%20%7C%0A%0A%60%60%60sql%0ASELECT%20COUNT%28*%29%20FROM%20EMPLOYEES%3B%0ASELECT%20COUNT%28*%29%20FROM%20DEPARTMENTS%3B%0ASELECT%20COUNT%28*%29%20FROM%20DEPT_MANAGER%3B%0ASELECT%20COUNT%28*%29%20FROM%20DEPT_EMP%3B%0ASELECT%20COUNT%28*%29%20FROM%20TITLES%3B%0ASELECT%20COUNT%28*%29%20FROM%20SALARIES%3B%0A%60%60%60%0A-%20**COUNT**%20%uD568%uC218%uB294%20**%uC9D1%uACC4%20%uD568%uC218%20%28Aggregate%20function%29**%20%uB77C%uACE0%20%uD558%uC5EC%20**%uAC1C%uC218%28COUNT%29%2C%20%uD569%28SUM%29%2C%20%uD3C9%uADE0%28AVG%29%2C%20%uCD5C%uB300%uAC12%28MAX%29%2C%20%uCD5C%uC18C%uAC12%28MIN%29**%uC774%20%uC788%uB2E4.%0A-%20%uC9C0%uC815%uB41C%20**%uADF8%uB8F9%28GROUP%29**%uC5D0%20%uB300%uD55C%20%uACC4%uC0B0%uC744%20%uC9C4%uD589%uD558%uB294%20%uD568%uC218%uB85C%20%uC5EC%uAE30%uC5D0%uC11C%uB294%20%uADF8%uB8F9%uC774%20%uC9C0%uC815%uB418%uC9C0%20%uC54A%uC558%uAE30%20%uB54C%uBB38%uC5D0%20%uC804%uCCB4%20%uADF8%uB8F9%28%uD14C%uC774%uBE14%29%uC744%20%uB300%uC0C1%uC73C%uB85C%20%uACC4%uC0B0%uB41C%uB2E4.%0A-%20%uC5EC%uAE30%uC11C%uB294%20%uC791%uC131%uD574%uC57C%uD560%20SQL%uBB38%uC5D0%20%uB300%uD55C%20%uC77C%uBC18%uC801%uC778%20%uC9C8%uBB38%uC744%20SQL%uBB38%uC73C%uB85C%20%uC791%uC131%uD558%uBA74%uC11C%20SQL%20%uB2A5%uB825%uC744%20%uD0A4%uC6B0%uB824%uACE0%20%uD55C%uB2E4.%0A-%20%uB2E4%uC74C%20%uBB38%uC81C%uB4E4%uC744%20%uAC00%uAE09%uC801%20SQL%uBB38%uC744%20%uBCF4%uC9C0%20%uC54A%uACE0%20%uC9C1%uC811%20%uC791%uC131%uD574%20%uBCF4%uBA74%uC11C%20%uC775%uD788%uAE38%20%uBC14%uB780%uB2E4.%0A%0A%3Cbr%3E%0A%0A**1.%20%uC9C1%uC6D0%20%uC774%uB984%uC774%20%uBE60%uB978%20%uC21C%28A%2C%20B%2C%20C%20%u2026%29%20%uC21C%uC73C%uB85C%20%uB9AC%uC2A4%uD2B8%uB97C%20%uCD9C%uB825%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20*%0A%20%20FROM%20EMPLOYEES%0A%20ORDER%20BY%20FIRST_NAME%2C%20LAST_NAME%3B%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**%20ORDER%20BY%uB294%20%uB370%uC774%uD130%20%uC815%uB82C%uC744%20%uC758%uBBF8%uD558%uB294%20%uAC83%uC73C%uB85C%20%uC62C%uB9BC%uCC28%uC21C%28ASC%29%uACFC%20%uB0B4%uB9BC%uCC28%uC21C%28DESC%29%uC774%20%uC788%uB2E4.%0A%3E%20%uC62C%uB9BC%uCC28%uC21C%uC740%20ABC%7E%7E%uAC00%uB098%uB2E4%7E%7E%uC21C%uC744%20%uC758%uBBF8%uD558%uACE0%20%uB0B4%uB9BC%uCC28%uC21C%uC740%20%uBC18%uB300%uC758%20%uAC1C%uB150%uC774%uB2E4.%0A%3E%20ORDER%20BY%20%uB4A4%uC5D0%20%uD544%uB4DC%20%uBA85%uC744%20%uC4F0%uACE0%20%uC815%uB82C%uC744%20%uC0DD%uB7B5%uD558%uBA74%20%uC62C%uB9BC%uCC28%uC21C%uC73C%uB85C%20%uC870%uD68C%uB41C%uB2E4.%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%3A%20%uC9C1%uC6D0%20%uB098%uC774%uAC00%20%uC801%uC740%20%uC21C%uC73C%uB85C%20%uCD9C%uB825%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20*%20%0A%20%20FROM%20EMPLOYEES%20%0A%20ORDER%20BY%20BIRTH_DATE%20DESC%3B%0A%60%60%60%0A%3Cbr%3E%0A%0A**2.%20%uC9C1%uC6D0%20%uC911%20%uB098%uC774%uAC00%20%uAC00%uC7A5%20%uB9CE%uC740%20%uC0AC%uB78C%uC758%20%uC0DD%uB144%uC6D4%uC77C%uC740%20%uC5B8%uC81C%20%uC778%uAC00%3F**%0A%60%60%60sql%0ASELECT%20MIN%28BIRTH_DATE%29%20%0A%20%20FROM%20EMPLOYEES%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**3.%20%uC9C1%uC6D0%20%uC911%20%uB098%uC774%uAC00%20%uAC00%uC7A5%20%uB9CE%uC740%20%uC0AC%uB78C%uC758%20%uB098%uC774%uB294%20%uBA87%20%uC0B4%20%uC778%uAC00%3F**%0A%60%60%60sql%0ASELECT%20TIMESTAMPDIFF%28YEAR%2C%20MIN%28BIRTH_DATE%29%2C%20NOW%28%29%29%20%0A%20%20FROM%20EMPLOYEES%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**NOW%uB294%20%uD604%uC7AC%20%uC2DC%uAC04%uC744%20%uAC00%uC838%uC624%uB294%20%uD568%uC218%uC774%uACE0%2C%0A%3E%20TIMESTAMPDIFF%uC640%20DATEDIFF%20%uC2DC%uAC04%uC758%20%uCC28%uC774%uB97C%20%uAD6C%uD558%uB294%20%uD568%uC218%uC774%uB2E4.%20%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%3A%20%uAC00%uC7A5%20%uB098%uC774%20%uB9CE%uC740%20%uC9C1%uC6D0%uACFC%20%uC801%uC740%20%uC9C1%uC6D0%uC758%20%uB098%uC774%20%uCC28%uC774%uB294%20%uBA87%20%uC0B4%20%uC778%uAC00%3F**%0A%60%60%60sql%0ASELECT%20TIMESTAMPDIFF%28YEAR%2C%20MIN%28BIRTH_DATE%29%2C%20MAX%28BIRTH_DATE%29%29%20%0A%20%20FROM%20EMPLOYEES%3B%0A%60%60%60%0A%3Cbr%3E%0A%0A**4.%20%uC9C1%uC6D0%uB4E4%uC758%20%uC5C5%uBB34%28titles%29%uC5D0%uB294%20%uC9C1%uC6D0%uBCC4%uB85C%20%uC5C5%uBB34%uAC00%20%uC800%uC7A5%uB418%uC5B4%20%uC788%uB2E4.%20%uC774%20%uD68C%uC0AC%uC758%20%uC5C5%uBB34%20%uC885%uB958%20%uB9AC%uC2A4%uD2B8%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20DISTINCT%20TITLE%20%0A%20%20FROM%20TITLES%3B%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**DISTINCT%uB294%20%uC9C0%uC815%uB41C%20%uD544%uB4DC%uC5D0%20%uB300%uD55C%20%uACE0%uC720%uAC12%uC744%20%uBCF4%uC5EC%uC8FC%uB294%20%uBA85%uB839%uC5B4%20%uC774%uB2E4.%20%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%3A%20%uC774%20%uD68C%uC0AC%uC758%20%uC5C5%uBB34%20%uC885%uB958%20%uAC1C%uC218%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20COUNT%28DISTINCT%20TITLE%29%20%0A%20%20FROM%20TITLES%3B%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**%20%uC9D1%uACC4%20%uD569%uC218%uC5D0%uB3C4%20DISTINCT%uB97C%20%uC0AC%uC6A9%uD560%20%uC218%20%uC788%uB2E4.%0A%0A%3Cbr%3E%0A%0A**5.%20%uAC00%uC7A5%20%uCD5C%uADFC%uC5D0%20%uC785%uC0AC%uD55C%20%uC0AC%uB78C%20100%uBA85%uB9CC%20%uCD9C%uB825%uD558%uC2DC%uC624**%0A%60%60%60sql%0ASELECT%20*%20%0A%20%20FROM%20EMPLOYEES%20%0A%20ORDER%20BY%20HIRE_DATE%20DESC%20%0A%20LIMIT%20100%3B%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**%20LIMIT%uB294%20%uC870%uD68C%20%uB370%uC774%uD130%uC758%20%uAC1C%uC218%uB97C%20%uC81C%uD55C%uD558%uB294%20%uBA85%uB839%uC5B4%20%uC774%uB2E4.%0A%3E%20Limit%uB4A4%uC5D0%20%uC815%uC218%uB9CC%20%uB2E8%uBCF5%uC73C%uB85C%20%uB098%uC62C%20%uACBD%uC6B0%20%28ex%3A%20LIMIT%20100%29%20%uC774%20%uC815%uC218%uB294%20%uAC1C%uC218%uB97C%20%uC758%uBBF8%uD55C%uB2E4.%0A%3E%20Limit%uB4A4%uC5D0%20%uC815%uC218%uAC00%20%uB458%uC77C%20%uACBD%uC6B0%uB294%20%uB294%20%uC21C%uC11C%uC640%20%uAC1C%uC218%uB97C%20%uC758%uBBF8%uD55C%uB2E4.%0A%3E%20%uC608%uB85C%20LIMIT%20100%2C%2010%20%uC77C%20%uACBD%uC6B0%20100%uC740%20100%uBC88%uC9F8%2C%2010%uC740%20%uAC1C%uC218%uB97C%20%uC758%uBBF8%uD55C%uB2E4.%0A%3E%20%uC989%2C%20100%uBD80%uD130%20110%uAE4C%uC9C0%uC758%20%uB370%uC774%uD130%uAC00%20%uC870%uD68C%uB41C%uB2E4.%0A%3E%20%uB2E4%uB9CC%2C%20%uC21C%uC11C%uAC00%201%uBD80%uD130%uAC00%20%uC544%uB2CC%200%uBD80%uD130%20%uC2DC%uC791%uD558%uAE30%20%uB54C%uBB38%uC5D0%20%uC2E4%uC81C%20%uC758%uBBF8%uB294%20101%uBD80%uD130%20111%uAE4C%uC9C0%uC758%20%uB370%uC774%uD130%uAC00%20%uC870%uD68C%uB41C%uB2E4.%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%3A%20%uAE09%uC5EC%uAC00%20%uAC00%uC7A5%20%uB9CE%uC740%20%uC0AC%uB78C%2010%uBA85%uC744%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20*%20%0A%20%20FROM%20SALARIES%20%0A%20ORDER%20BY%20SALARY%20DESC%20%0A%20LIMIT%2010%3B%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%3A%20%uAE09%uC5EC%uAC00%20%uAC00%uC7A5%20%uB9CE%uC740%20%uC0AC%uB78C%2010%uBA85%uC744%20%uC81C%uC678%uD558%uACE0%20%uB2E4%uC74C%2010%uBA85%uC744%20%uAD6C%uD558%uC2DC%uC624.%20%2811%uB4F1%uBD80%uD130%2020%uB4F1%20%uAE4C%uC9C0%29**%0A%60%60%60sql%0ASELECT%20*%20%0A%20%20FROM%20SALARIES%20%0A%20ORDER%20BY%20SALARY%20DESC%20%0A%20LIMIT%2010%2C%2010%3B%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**6.%20%uC785%uC0AC%uD55C%uC9C0%20%uAC00%uC7A5%20%uC624%uB798%uB41C%20%uC0AC%uB78C%uC758%20%uC774%uB984%uC740%20%uBB34%uC5C7%uC778%uAC00%3F**%0A%60%60%60sql%0ASELECT%20*%20%0A%20%20FROM%20EMPLOYEES%0A%20ORDER%20BY%20HIRE_DATE%0A%20LIMIT%201%3B%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**7.%201999%uB144%uC5D0%20%uC785%uC0AC%uD55C%20%uC9C1%uC6D0%20%uB9AC%uC2A4%uD2B8%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20*%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20YEAR%28HIRE_DATE%29%3D1999%3B%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**%20WHERE%uB294%20%uD14C%uC774%uBE14%20%uC804%uCCB4%uC5D0%20%uB300%uD55C%20%uC870%uAC74%uC744%20%uC758%uBBF8%uD558%uB294%20%uD568%uC218%uB85C%20%uADF8%uB8F9%uC5D0%20%uC870%uAC74%uC744%20%uC0AC%uC6A9%uD558%uB294%20Having%uACFC%20%uCC28%uC774%uAC00%20%uC788%uB2E4.%0A%3E%20YEAR%20%uD568%uC218%uB294%20%uC9C0%uC815%uB41C%20%uAC12%uC5D0%uC11C%20%uB144%uB3C4%uB97C%20%uCD94%uCD9C%uD558%uB294%20%uD568%uC218%uB85C%20%uB0A0%uC9DC%20%uD568%uC218%uB294%20%uCC3E%uC544%uBCF4%uAE38%u2026%0A%0A%3Cbr%3E%0A%0A**8.%201999%uB144%uC5D0%20%uC785%uC0AC%uD55C%20%uC9C1%uC6D0%20%uC911%20%uC5EC%uC790%20%uC9C1%uC6D0%28GENDER%3D%27F%27%29%20%uB9AC%uC2A4%uD2B8%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20*%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20YEAR%28HIRE_DATE%29%3D1999%20AND%20GENDER%3D%27F%27%3B%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**%20%uC870%uAC74%uC774%20%uC5EC%uB7EC%20%uAC1C%uC77C%20%uACBD%uC6B0%20AND%uB098%20OR%uB97C%20%uC0AC%uC6A9%uD560%20%uC218%20%uC788%uB2E4.%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%3A%201998%uB144%uC5D0%20%uC785%uC0AC%uD55C%20%uC9C1%uC6D0%20%uC911%20%uB0A8%uC790%20%uC9C1%uC6D0%28M%29%uC740%20%uBA87%20%uBA85%uC778%uAC00%3F**%0A%60%60%60sql%0ASELECT%20COUNT%28*%29%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20YEAR%28HIRE_DATE%29%3D1999%20AND%20GENDER%3D%27M%27%3B%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**9.%201998%uB144%uC5D0%20%uC785%uC0AC%uD55C%20%uB0A8%uC790%20%uC9C1%uC6D0%20%uC911%20%uB098%uC774%uAC00%20%uC5B4%uB9B0%205%uBA85%uC744%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20*%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20YEAR%28HIRE_DATE%29%3D1999%20AND%20GENDER%3D%27M%27%0A%20ORDER%20BY%20BIRTH_DATE%0A%20LIMIT%205%3B%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**10.%201998%uB144%uC774%uB098%201999%uB144%uC5D0%20%uC785%uC0AC%uD55C%20%uC9C1%uC6D0%uC758%20%uC218%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20COUNT%28*%29%20--%205669%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20YEAR%28HIRE_DATE%29%3D1998%20OR%20YEAR%28HIRE_DATE%29%3D1999%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%20%3A%201998%uB144%uC774%uB098%201999%uB144%uC5D0%20%uC785%uC0AC%uD55C%20%uC9C1%uC6D0%20%uC911%20%uB0A8%uC790%20%uC9C1%uC6D0%uC758%20%uC218%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20COUNT%28*%29%20--%203364%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20%28YEAR%28HIRE_DATE%29%3D1998%20OR%20YEAR%28HIRE_DATE%29%3D1999%29%20AND%20GENDER%3D%27M%27%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**%20OR%uC640%20AND%uAC00%20%uAC19%uC774%20%uC0AC%uC6A9%uB420%20%uB54C%uB294%20%uAD04%uD638%28%29%20%uC0AC%uC6A9%uC5D0%20%uC8FC%uC758%uD574%uC57C%20%uD55C%uB2E4.%0A%3E%20%uB144%uB3C4%uB294%20OR%uB85C%20%uAD04%uD638%uB97C%20%uC774%uC6A9%uD558%uC5EC%20%uBA3C%uC800%20%uCC98%uB9AC%uD558%uACE0%20%uC774%20%uC870%uAC74%uC5D0%20%uC758%uD574%20%uAD6C%uD574%uC9C4%20%uB370%uC774%uD130%20%uC911%20%uC131%uBCC4%uC774%20%uB0A8%uC790%28AND%29%uC778%20%uC9C1%uC6D0%uB9CC%20%uCD94%uCD9C%uD558%uAC8C%20%uB41C%uB2E4.%0A%3E%20%uB9CE%uC774%20%uD558%uB294%20%uC2E4%uC218%uB85C%20%uC798%20%uBABB%20%uC0AC%uC6A9%uD558%uBA74%20%uCC98%uB9AC%20%uC18D%uB3C4%uC5D0%20%uBB38%uC81C%uAC00%20%uC0DD%uAE30%uACE0%20%uC6D0%uD558%uC9C0%20%uC54A%uB294%20%uB370%uC774%uD130%uB4E4%uC774%20%uB098%uC624%uAC8C%20%uB41C%uB2E4.%0A%0A%3Cbr%3E%0A%0A**11.%201995%uB144%uBD80%uD130%201999%uB144%uAE4C%uC9C0%20%uC785%uC0AC%uD55C%20%uC9C1%uC6D0%uC758%20%uC218%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20COUNT%28*%29%20--%2034027%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20YEAR%28HIRE_DATE%29%20BETWEEN%201995%20AND%201999%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**BETWEEN%uC740%20%uB450%20%uC870%uAC74%20%uC0AC%uC774%uC758%20%uAC12%uC774%20%uC77C%uCE58%uD558%uB294%20%uB370%uC774%uD130%uB97C%20%uACC4%uC0B0%uD558%uB294%20%uBA85%uB839%uC5B4%uC774%uB2E4.%20%0A%0A%3Cbr%3E%0A%0A**12.%201995%2C%201997%2C%201999%uB144%uC5D0%20%uC785%uC0AC%uD55C%20%uC9C1%uC6D0%uC758%20%uD3C9%uADE0%20%uB098%uC774%uB97C%20%uAD6C%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20AVG%28TIMESTAMPDIFF%28YEAR%2C%20BIRTH_DATE%2C%20NOW%28%29%29%29%20--%2057.1324%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20YEAR%28HIRE_DATE%29%20IN%20%281995%2C%201997%2C%201999%29%3B%0A%60%60%60%0A%3E%20**NOTE%20%3A%20**%20IN%20%uBA85%uB839%uC5B4%uB294%20%uAC1C%uBCC4%20%uAC12%uC5D0%20%uB300%uD55C%20%uC870%uAC74%uC744%20%uBD80%uC5EC%uD558%uB294%20%uAC83%uC73C%uB85C%20%uB2E4%uC218%uC758%20OR%uB97C%20%uC758%uBBF8%uD55C%uB2E4.%20%28%20%uBB38%uC790%uC5D0%20%uB300%uD574%uC11C%uB3C4%20%uC0AC%uC6A9%uD560%20%uC218%20%uC788%uB2E4.%20%29%0A%0A%3Cbr%3E%0A%0A**%uC5F0%uC2B5%20%3A%20%uC131%28last_name%29%uC774%20Senzako%2C%20Pettis%2C%20Henseler%uC778%20%uC9C1%uC6D0%uC744%20%uCD9C%uB825%uD558%uC2DC%uC624.**%0A%60%60%60sql%0ASELECT%20*%0A%20%20FROM%20EMPLOYEES%0A%20WHERE%20LAST_NAME%20IN%20%28%27Senzako%27%2C%20%27Pettis%27%2C%20%27Henseler%27%29%3B%0A%60%60%60%0A%0A%3Cbr%3E%0A%0A**%uCD9C%uCC98%20%3A%20**%20%5BSW%20%uAC1C%uBC1C%uC774%20%uC88B%uC740%20%uC0AC%uB78C%5D%28http%3A//forest71.tistory.com/%29

'Programming > SQL' 카테고리의 다른 글

6. 실습(4) - SubQuery  (0) 2017.02.28
5. 실습(3) - Join  (0) 2017.02.28
4. 실습(2) - Group  (0) 2017.02.25
2. 샘플 데이터 베이스 개요  (0) 2017.02.25
1. 설치  (0) 2017.02.25