SQL 기초 DAY01

개-발뚜-발·2023년 10월 10일
1

쿼리

목록 보기
6/7

-- 실행 : 실행하려는 명령어로 커서를 이동 시킨 뒤
-- CTRL+ENTER or alt+X키
SHOW TABLES;

  • 테이블 생성
    CREATE TABLE STUDENTS(
    ID INT,
    NAME VARCHAR(100),
    PHONE CHAR(13),
    ADDRESS VARCHAR(1000)
    );

-- 한줄주석
/ 여러줄 주석 /
-- ';' 문장의 끝 마다 세미콜론은 꼭 붙힐것.

  • SELECT 문
    SELECT : 조회.
    [사용법]
    SELECT 컬럼, 컬럼, .. : 조회하고자 하는 내용(*은 모든 컬럼을 의미)
    FROM 테이블 명 : 조회하고자 하는 테이블 명
    [WHERE 조건] : 특정 조건
    [ORDER BY 컬럼] : 정렬

EMPLOYEE 테이블의 모든 행과 모든 컬럼 조회
select * or select 모든컬럼명 다적기
from employee

select *
from EMPLOYEE;

  • 모든 사원의 아이디(EMP_ID)와 사원명(EMP_NAME), 연락처(PHONE)만 조회
    SELECT EMP_ID, EMP_NAME, PHONE
    from EMPLOYEE;

-- WHERE 구문(절)
-- 테이블에서 조건을 만족하는 값을 가진 행을 따로 선택하여 조회함.
-- 여러 조건을 선택하고자 할 경우 and,or등 명령어를 함께 사용함.

  • 부서코드가 'D6'인 사원들의 정보를 모두 조회
    SELECT *
    from EMPLOYEE
    where DEPT_CODE = 'D6';

  • 실습1/ 직급이 'J1'인 사원의 사번(ID), 사원명(NAME), 직급코드(JOB_CODE), 부서코드(DEPT_CODE) 출력

SELECT EMP_ID, EMP_NAME, JOB_CODE, DEPT_CODE
from EMPLOYEE
where JOB_CODE = 'J1';

  • 실습2 / 급여(SALARY)가 300만원 이상인 사원의 아이디,사원명,직급코드,급여정보들을 조회

SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
where SALARY >=3000000;

  • 부서코드가 'D6' 이면서, 이름이 '유재식'인 사원의 정보

SELECT *
FROM EMPLOYEE
where DEPT_CODE = 'D6'
and EMP_NAME = '유재식';

  1. as(alias)표현
    SELECT
    EMP_ID as "사원번호"
    ,EMP_NAME as 사원명
    from EMPLOYEE;
    별칭을 정해줄때 )나, 띄어쓰기 같은 문자가 들어갈 경우 ""반드시 사용.
  • 실습3/부서가 D2이거나 D1인 사원들의 사원명,입사일,연락처 조회 (단, 컬럼명 부여)
    SELECT
    EMP_NAME as "사원명"
    ,HIRE_DATE as "입사일"
    ,PHONE as "연락처"
    FROM EMPLOYEE
    WHERE DEPT_CODE = 'D1'
    OR DEPT_CODE = 'D2';
  • 사원들의 연봉 조회
    SELECT EMP_NAME as "사원명" , SALARY as "급여", (SALARY12) as "연봉", BONUS as "보너스" , (SALARY + (SALARYBONUS) * 12) as "연봉종합"
    from EMPLOYEE ;
  • 컬럼값이 만약 NULL이라면 어떠한 연산을 처리해도 결과는 NULL이다.

IFNULL() : 만약에 현재 조회한 값이 NULL일 경우 별도로 설정한 값으로 변경한다.
IFNULL(컬럼, 기본값)

SELECT BONUS,
IFNULL(BONUS,0)
FROM EMPLOYEE;

SELECT
EMP_NAME as "사원명"
,SALARY as "급여"
,(SALARY12) as "연봉"
,BONUS as "보너스"
,(SALARY + (SALARY
IFNULL(BONUS,0))) * 12 as "연봉종합"
from EMPLOYEE ;

DISTINCT
해당하는 값이 컬럼에 여러 개 존재할 경우 중복을 제거하고 한개만 조회(NULL도 포함하여 중복제거)

SELECT DEPT_CODE
from EMPLOYEE;

SELECT DISTINCT DEPT_CODE
from EMPLOYEE;

  • 실습 4
    DEPARTMENT 테이블을 참조하여,
    부서가 '해외영업2부'인 부서의 부서코드를 찾고,
    EMPLOYEE 테이블에서 해당 부서의
    사원들 중 급여를 200만원보다 많이 받는 직원의
    사번, 사원명, 급여를 조회하시오.
  • 1) '해외영업2부' 부서의 부서코드 찾기

SELECT *
from DEPARTMENT
where DEPT_TITLE = '해외영업2부';-- D6

  • 2) 조회한 부서 코드를 사용하여
    사원들 중 급여를 200만원보다 많이 받는 직원 조회하기

SELECT EMP_ID as 사번, EMP_NAME as 이름, SALARY as 월급
FROM EMPLOYEE
WHERE DEPT_CODE = 'D6'
and SALARY > 2000000;

  • 실습 5
    실습 3을 참고하여
    부서가 '해외영업2부'(D6)이거나 급여를 200만원보다 많이 받는 직원의 사번, 사원명, 급여를 조회 하시오.

SELECT EMP_ID as 사번, EMP_NAME as 이름, SALARY as 월급
FROM EMPLOYEE
WHERE DEPT_CODE = 'D6'
OR SALARY >2000000;

profile
관심O 댓글O 감놔라배놔라O 가르쳐주는거O 한가할때올립니다

0개의 댓글