MySQL 1일차

진창호·2023년 1월 31일
0

MySQL

목록 보기
1/6

MySQL은 RDBMS와 SQL를 사용한다.

RDBMS는 아래와 같은 특징이 있다.

  1. 데이터를 테이블 단위로 관리한다.
  2. 정규화를 통해 중복 데이터를 최소화할 수 있다.
  3. Join을 이용해서 여러 테이블의 분산 데이터를 가져올 수 있다.

SQL은 DB에 있는 정보를 사용할 수 있도록 지원하는 언어이다. 특징은 아래와 같다.

  1. 모든 DBMS에서 사용 가능하다.
  2. 대소문자를 구분하지 않는다. 구분 필요 시 binary 함수를 사용한다.
  3. DDL(CREATE, DROP .. ), DML(SELECT, DELECT .. ), DCL(GRANT, REVOKE .. )로 구분된다.

MySQL의 특징은 아래와 같다.

  1. MySQL은 INSERT시 반드시 순서에 따라 넣진 않는다.
  2. 논리값 TRUE은 1, FALSE는 0으로 내부적으로 해석된다.
    따라서 BOOLEAN을 INT로 관리한다.
  3. 실행 순서는 FROM -> WHERE -> SELECT -> ORDER BY 순이다.

MySQL은 DML 중 SELECT로 데이터를 찾을 수 있다.

실습 위주로 SELECT를 익혀보자. 데이터 구조는 아래와 같다.
데이터 구조

  1. 모든 사원의 사번, 이름, 급여, 급여 * 12 (연봉), 커미션, 커미션포함 연봉 검색.
SELECT employee_id, first_name, salary, salary * 12 AS 연봉, 
commission_pct, salary * 12 * (1 + ifNULL(commission_pct, 0)) AS 커미션포함연봉
FROM employees;
  1. 모든 사원의 사번, 이름, 급여, 급여에 따른 등급표시 검색.
    15000 이상 "고액연봉", 8000 이상 “평균연봉”, 8000 미만 "저액연봉"
SELECT employee_id, first_name, salary,
	case when salary > 15000 then '고액연봉'
		when salary > 8000 then '평균연봉'
        else '저액연봉'
	end "연봉등급" -- 열 이름
FROM employees;
  1. 등급 표시의 경계션에 있는 사원의 사번, 이름, 급여, 급여에 따른 등급경계선 검색.
    15000은 "고액연봉경계선", 8000은 “평균연봉경계선”, 경계선이 아니면 "-"
SELECT employee_id, first_name, salary,
	case salary when 15000 then '고액연봉경계선'
		when 8000 then '평균연봉경계선'
        else "-"
	end "등급경계선"
FROM employees
  1. 부서번호가 50인 사원중 급여가 7000이상인 사원의 사번, 이름, 급여, 부서번호.
SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id = 50 AND salary >= 7000; -- 모든 튜플을 지나며 조건에 부합하는지 확인
  1. 부서번호가 50, 60, 70이 아닌 사원의 사번, 이름, 부서번호
SELECT employee_id, first_name, department_id
FROM employees
WHERE department_id != 50 and department_id != 60 and department_id != 70;
  1. 급여가 6000이상 10000이하인 사원의 사번, 이름, 급여
SELECT employee_id, first_name, salary
FROM employees
WHERE salary BETWEEN 6000 AND 10000;
  1. 이름에 'x'가 들어간 사원의 사번, 이름
SELECT employee_id, first_name
FROM employees
WHERE first_name LIKE '%x%';

※ MySQL의 논리연산은 아래와 같다.
MySQL의 논리연산

profile
백엔드 개발자

0개의 댓글