-- 테이블의 모든 데이터 조회 SELECT * FROM 테이블명; -- 모든 부서 정보 조회하기 SELECT * FROM DEPARTMENTS; -- 모든 국가 정보 조회하기 SELECT * FROM COUNTRIES; -- 모든 사원 정보 조회하기 -- 오라클의 키워드와 테이블 이름, 컬럼 이름은 대소문자를 구분하지 않는다. SELECT * FROM EMPLOYEES; -- 모든 직종 정보 조회하기 SELECT * FROM JOBS; -- 모든 직종 변경 이력 정보 조회하기 SELECT * FROM JOB_HISTORY; -- 테이블의 특정 열(컬럼)의 데이터 조회하기 SELECT 컬럼명, 컬럼명, 컬럼명 FROM 테이블명; -- 부서 정보 중에서 부서 번호와 부서 이름을 조회하기 SELECT DEPARTMENT_ID, DEPARTMENT_NAME FROM DEPARTMENTS; -- 사원 정보 중에서 사원 아이디, 이름, 급여를 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES; -- 사원 정보 중에서 부서 아이디, 사원 아이디, 직종 아이디, 이름, 급여를 조회하기 SELECT DEPARTMENT_ID, EMPLOYEE_ID, JOB_ID, FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES; -- SELECT절에서는 산술 연산자(+, -, *, /)의 사용이 가능하다. -- 숫자 데이터 및 날짜 데이터에 대해서 사용 가능하다. -- SELECT 컬럼명+컬럼명, 컬럼명 - 숫자, 컬럼명 * 숫자, 컬럼명/숫자, 컬럼명/컬럼명 -- from 테이블명 -- 사원 아이디, 이름, 급여, 연봉을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, SALARY*12 FROM EMPLOYEES; -- 사원 아이디, 이름, 급여(주급), 시급(원으로 환산한 값:1달러 1130원) SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, (SALARY/40)*1130 SALARY_PER_HOUR FROM EMPLOYEES; -- 별칭 부여하기 -- SELECT 컬럼명 AS 별칭, 컬럼명 AS 별칭, 산술식 AS 별칭 -- FROM 테이블명 -- SELECT 컬럼명 별칭, 컬럼명 별칭, 산술식 "별칭" <-- 띄어쓰기 하고 싶을 때 -- FROM 테이블명 -- 오라클의 예약어는 컬럼명으로 쓸 수 없음. SELECT EMPLOYEE_ID AS ID, FIRST_NAME AS NAME, HIRE_DATE AS "DATE" FROM EMPLOYEES; SELECT EMPLOYEE_ID, FIRST_NAME, SALARY || '달러' FROM EMPLOYEES; -- 문자 이어 붙이기 연산자 || -- 문자(열) '' -- 별칭 "" -- 연결 연산자 -- 연결 연산자(||)는 컬럼과 컬럼, 산술식과 컬럼, 산술식과 산술식을 연결해서 문자를 생성한다. -- 사원 아이디, 이름, 직종을 조회하기 -- (단, FIRST_NAME과 LAST_NAME을 연결해서 조회하고, 별칭을 FULL_NAME으로 붙이기) SELECT EMPLOYEE_ID, FIRST_NAME || LAST_NAME AS FULL_NAME, JOB_ID FROM EMPLOYEES; SELECT EMPLOYEE_ID, FIRST_NAME || ' ' || LAST_NAME AS FULL_NAME, JOB_ID FROM EMPLOYEES; -- 사원들이 현재 근무하고 있는 직종을 조회하기(중복 제거) SELECT DISTINCT EMPLOYEE_ID, JOB_ID -- 이 경우 둘 다 같은 게 있어야 중복 제거 됨. FROM EMPLOYEES; -- 선택되는 행을 제한하기 -- WHERE 절을 사용하면 조회되는(선택되는) 행을 제한할 수 있다(조건절). -- WHERE 절은 FROM 절 다음에 온다. -- (조건식 --> WHERE 컬럼 이름 비교 조건 값, WHERE 컬럼이름 비교조건 다른 컬럼) -- 오라클의 비교 조건 -- 같다 = -- 같지 않다. != <> -- 사원 정보에서 60번 부서에서 소속된 사원의 아이디, 이름, 직종을 조회하기 SELECT employee_id, first_name, job_id, department_id FROM EMPLOYEES WHERE DEPARTMENT_ID = 60; -- 사원 정보에서 급여를 15000달러 이상 받는 사원의 아이디, 이름, 직종, 급여를 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, JOB_ID, SALARY FROM EMPLOYEES WHERE SALARY >= 15000; -- 사원 정보에서 사원 아이디가 200번인 사원의 아이디, 이름, 전화번호, 이메일, 소속부서 아이디 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, PHONE_NUMBER, EMAIL, DEPARTMENT_ID FROM EMPLOYEES WHERE EMPLOYEE_ID = 200; -- ! 국가정보에서 아시아 지역에 위치하고 있는 나라의 국가코드, 국가명 조회하기 SELECT COUNTRY_ID, COUNTRY_NAME FROM COUNTRIES WHERE REGION_ID = 3; -- WHERE 절에서 사용 가능한 기타 비교조건 -- WHERE 컬럼명 BETWEEN 값1 AND 값2 -- 지정된 컬럼이 값1 이상 값2 이하인 행을 선택한다. 문자도? -- WHERE 컬럼명 IN (값1, 값2, 값3) -- 지정된 컬럼의 값이 값1, 값2, 값3 중의 하나와 일치하는 행을 선택한다. -- WHERE 컬럼명 LIKE '문자 패턴' -- 지정된 컬럼의 값이 문자 패턴과 유사한 행을 선택한다. -- WHERE 컬럼명 IS (NOT) NULL -- 지정된 컬럼의 값이 NULL인(NULL이 아닌) 행을 선택한다. -- 컬럼의 값이 NULL인 행을 선택할 때 WHERE 컬럼명 = NULL과 같이 사용하지 않는다. -- 급여가 10000 ~ 15000 달러를 받는 사원의 아이디, 이름, 직종, 급여를 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, JOB_ID, SALARY FROM EMPLOYEES WHERE SALARY BETWEEN 10000 AND 15000; -- 사원 아이디가 150 ~ 170에 속하는 사원의 아이디, 이름 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME FROM EMPLOYEES WHERE EMPLOYEE_ID BETWEEN 150 AND 170; -- 소속 부서 아이디가 30, 60, 90인 사원의 아이디, 이름, 직종, 부서 아이디를 조회하시오. SELECT EMPLOYEE_ID, FIRST_NAME, JOB_ID, DEPARTMENT_ID FROM EMPLOYEES WHERE DEPARTMENT_ID IN (30, 60, 90); -- 직종 아이디가 'ST_MAN'이거나 'ST_CLERK'인 직종의 아이디, 제목, 최소 급여, 최대 급여 조회하기 SELECT JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY FROM JOBS WHERE JOB_ID IN ('ST_MAN', 'ST_CLERK'); -- 오라클의 문자 패턴 형식 ( % 0 or 무한대로 이미지화 ) -- WHERE job_id LIKE 'ST%' <-- JOB_ID가 'ST'로 시작하는 것 검색 -- WHERE job_id LIKE '%ST%' <-- JOB_ID가 'ST'로 끝나는 것 검색 -- WHERE job_id LIKE '%ST%' <-- JOB_ID가 'ST'를 포함하는 것 검색 -- WHERE NAME LIKE "이_" <-- 이름이 이*인 사람 검색(외자). -- 이름에 'e'를 포함하고 있는 사원의 아이디, 이름을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME FROM EMPLOYEES WHERE FIRST_NAME LIKE '%e%'; -- 이름이 'A'로 시작하는 사원의 아이디, 이름을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME FROM EMPLOYEES WHERE FIRST_NAME LIKE 'A%'; -- 이름이 'L'로 시작하고 이름이 4글자인 사원의 아이디, 이름을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME FROM EMPLOYEES WHERE FIRST_NAME LIKE 'L___'; -- 부서 정보에서 담당자가 지정되어 있지 않은 부서의 아이디, 부서 이름 조회하기 SELECT DEPARTMENT_ID, DEPARTMENT_NAME FROM DEPARTMENTS WHERE MANAGER_ID IS NULL; -- 사원 정보에서 커미션을 받는 사원의 아이디, 이름, 급여, 커미션을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, COMMISSION_PCT FROM EMPLOYEES WHERE COMMISSION_PCT IS NOT NULL; -- 사원 정보에서 소속 부서가 지정되어 있지 않는 사원의 아이디, 이름, 직종을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, JOB_ID FROM EMPLOYEES WHERE DEPARTMENT_ID IS NULL; -- 1. 모든 사원 정보 조회하기 SELECT * FROM EMPLOYEES; -- 2. 모든 부서 정보를 조회하기 SELECT * FROM DEPARTMENTS; -- 3. 사원 정보에서 사원 아이디가 100번인 사원의 아이디, 이름, 부서 아이디, 급여를 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID, SALARY FROM EMPLOYEES WHERE EMPLOYEE_ID = 100; -- 4. 사원 정보에서 소속 부서가 60번인 사원의 아이디, 이름, 부서 아이디, 직종을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID, JOB_ID FROM EMPLOYEES WHERE DEPARTMENT_ID = 60; -- 5. 사원 정보에서 60번 부서 혹은 80번 부서에 소속된 사원의 아이디, 이름, 부서 아이디, 직종을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID, JOB_ID FROM EMPLOYEES WHERE DEPARTMENT_ID IN (60, 80); -- 6. 직장 정보에서 최소 급여가 5000달러 이상 10000 이하인 직종의 아이디, 제목, 최소 급여, 최고 급여 조회하기 SELECT JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY FROM JOBS WHERE MIN_SALARY BETWEEN 5000 AND 10000; -- 7. 사원 테이블에서 커미션을 받는 사원의 아이디, 이름, 급여, 연봉, 시급을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, SALARY AS 급여, SALARY*12 AS 연봉, SALARY/208 AS 시급 FROM EMPLOYEES WHERE COMMISSION_PCT IS NOT NULL; -- 8. 사원 테이블에서 이름이 'Kevin'인 사원의 아이디, 이름, 이메일, 전화번호를 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, EMAIL, PHONE_NUMBER FROM EMPLOYEES WHERE FIRST_NAME = 'Kevin'; -- 9. 사원테이블에서 급여가 12000달러를 넘는 사원의 아이디, 이름, 급여를 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, SALARY FROM EMPLOYEES WHERE SALARY > 12000; -- 10. 사원테이블에서 연봉이 100000달러를 초과하는 사원의 아이디, 이름, 급여, 연봉을 조회하기 SELECT EMPLOYEE_ID, FIRST_NAME, SALARY FROM EMPLOYEES WHERE SALARY*12 > 100000; -- 11. 사원테이블에서 관리자가 없는 사원의 이름과 직종을 조회하기 SELECT FIRST_NAME, JOB_ID FROM EMPLOYEES WHERE MANAGER_ID; -- 12. 사원테이블에서 커미션을 받는 사원의 아이디, 이름, 급여, 커미션, 커미션 반영 급여를 조회하기 (커미션 반영 급여 = 급여 + 급여*커미션) SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, COMMISSION_PCT, (1+COMMISSION_PCT)*SALARY FROM EMPLOYEES WHERE COMMISSION_PCT IS NOT NULL; -- 13. 이름의 3번째 문자가 'a'인 사원의 이름을 모두 조회하기 SELECT FIRST_NAME FROM EMPLOYEES WHERE FIRST_NAME LIKE '__a%'; | cs |
Oracle Database SQL(deprecated)