JUST DO, 데이터베이스! 🕺 - (2) SQL, 다양한 함수

joyfulwave·2022년 8월 26일
0

방대한 데이터의 세계로, JUST DO DBMS!



📁 SQL

📎 SQL 기능에 따른 분류

⚫ 데이터 정의어(DDL)

  • 테이블이나 관계의 구조를 생성하는데 사용하며, Create, Alter, Drop문 등이 있어요.

⚫ 데이터 조작어(DML)

  • 테이블에 데이터를 검색, 삽입, 삭제, 수정하는데 사용하며 SELECT(Read), INSERT(Create), DELETE(D), UPDATE(U) 문 등이 있어요. CRDU라고 부르기도 해요.

⚫ 데이터 제어어(DCL)

  • 데이터의 사용 권한을 관리하는데 사용하며 GRANT, REVOKE 문 등이 있어요.

📎 데이터 조작어 - 검색

  • select 문의 구성 요소
	select	속성이름(들)
	from	테이블이름(들)
	where	조건 = '조건'
	; -- 세미콜론으로 명령어 종료    

📎 별칭

  • AS : 별칭, 알리아스



📁 다양한 QUERY

⚫ 주석

  • 한 줄 주석 : --
  • 여러 줄 주석 : /**/

⚫ select 문

    SELECT	*
    FROM	EMPLOYEES e ;

    SELECT	employee_id, last_name
    FROM	EMPLOYEES e ;
  • from 절을 먼저 완성시켜놓으면 select 자동 완성이 가능해요.
    SELECT	EMPLOYEE_ID,
            EMAIL,
            HIRE_DATE,
            SALARY ,
            COMMISSION_PCT 
    FROM	EMPLOYEES e ;


    SELECT 	EMPLOYEE_ID , 
            LAST_NAME 
    FROM	EMPLOYEES e
    WHERE	JOB_ID = 'SA_REP'
    ;

⚫ 별칭

    SELECT	EMPLOYEE_ID AS "ID",
            SALARY AS "SAL" 
    FROM	EMPLOYEES e 
    ;

    SELECT	EMPLOYEE_ID "ID", -- AS의 생략이 가능하다.
            SALARY "SAL" 
    FROM	EMPLOYEES e -- e는 EMPLOYEES 의 알리아스, 별칭이다. 여러 테이블을 가지고 올 때 필요하다. 
    ;

⚫ distinct : 중복제거

    SELECT  DISTINCT DEPARTMENT_ID 
    FROM EMPLOYEES e 
    ;

    SELECT *
    FROM EMPLOYEES e 
    ;

⚫ OR

    SELECT	*
    FROM 	EMPLOYEES e 
    WHERE 	DEPARTMENT_ID = 50
    OR 		MANAGER_ID = 100
    ;

⚫ NOT, <>, !=

    SELECT 	*
    FROM 	EMPLOYEES e 
    WHERE 	NOT DEPARTMENT_ID = 50
    ;

    SELECT	*
    FROM 	EMPLOYEES e 
    WHERE 	DEPARTMENT_ID <> 50
    ;

    SELECT	*
    FROM 	EMPLOYEES e 
    WHERE 	DEPARTMENT_ID != 50
    ;

⚫ A의 이상 ~ 이하

    SELECT 	*
    FROM 	EMPLOYEES e 
    WHERE 	SALARY >= 4000 AND SALARY <= 8000
    ;

⚫ BETWEEN A AND B

    SELECT	*
    FROM	EMPLOYEES e 
    WHERE 	SALARY BETWEEN 4000 AND 8000
    ;

⚫ IN()

	-- OR와 동일한 역할을 한다.
    SELECT	*
    FROM 	EMPLOYEES e 
    WHERE 	SALARY = 6500
    OR 		SALARY = 7700
    OR 		SALARY = 13000
    ;

    SELECT	*
    FROM 	EMPLOYEES e 
    WHERE 	SALARY IN (6500, 7700, 13000)
    ;

⚫ LIKE

	-- D로 시작하는 사람
    SELECT 	FIRST_NAME ,
            LAST_NAME 
    FROM 	EMPLOYEES e 
    WHERE 	FIRST_NAME LIKE 'D%'
    ;
    -- 'd' 로 끝나는 사람
    SELECT 	FIRST_NAME,
            LAST_NAME 
    FROM 	EMPLOYEES e 
    WHERE 	FIRST_NAME LIKE '%d'
    ;

⚫ __

	--세번 째 글자가 a인 사람
    SELECT 	FIRST_NAME,
            LAST_NAME 
    FROM 	EMPLOYEES e 
    WHERE 	FIRST_NAME LIKE '__a%'
    ;

⚫ null 출력

    SELECT 	*
    FROM 	EMPLOYEES e 
    WHERE 	COMMISSION_PCT IS NULL
    ;

⚫ NOT NULL 출력

	-- null 이 아닌 것
    SELECT 	*
    FROM	EMPLOYEES e 
    WHERE 	COMMISSION_PCT IS NOT NULL
    ;

⚫ ORDER BY ASC : 오름차순 정렬

    -- ORDER BY의 기본 속성은 오름차순이여서, ASC는 생략가능
    SELECT 	*
    FROM 	EMPLOYEES e 
    ORDER BY SALARY  ASC
    -- ORDER BY SALARY 위와 동일하다.
    ;

⚫ ORDER BY DESC : 내림차순 정렬

    SELECT 	*
    FROM 	EMPLOYEES e 
    ORDER BY SALARY DESC 
    ;

⚫ SUM()

	-- 해당 데이터의 합
    SELECT 	SUM(SALARY)
    FROM 	EMPLOYEES e 
    ;

⚫ COUNT(컬럼 / *)

	-- 해당 데이터 갯수 가져오기
    SELECT	COUNT(*)
    FROM	EMPLOYEES e 
    ;

    SELECT	COUNT(EMPLOYEE_ID) "CNT"
    FROM	EMPLOYEES e 
    ;

⚫ 평균(avg)

	-- 해당 데이터의 평균
    SELECT 	AVG(SALARY) 
    FROM 	EMPLOYEES e 
    ;

    SELECT 	AVG(SALARY) 
    FROM 	EMPLOYEES e 
    WHERE 	DEPARTMENT_ID = 80
    ;

⚫ max : 최대값

	-- 해당 데이터의 최대값
    SELECT	MAX(SALARY) 
    FROM 	EMPLOYEES e 
    ;

    SELECT 	MAX(HIRE_DATE) 
    FROM 	EMPLOYEES e 
    ;

⚫ min : 최소값

	-- 해당 데이터의 최소값
    SELECT 	MIN(SALARY) 
    FROM 	EMPLOYEES e 
    ;

    SELECT 	MIN(HIRE_DATE) 
    FROM 	EMPLOYEES e 
    ;



포기하지 말고 JUST DO! ✔️




출처
https://media.giphy.com/media/1hVi7JFFzplHW/giphy.gif
https://media.giphy.com/media/jUwpNzg9IcyrK/giphy.gif
https://ko.dict.naver.com/#/entry/koko/1dde70640cda4f8692a8e940957aba2b

0개의 댓글