🗄️ Backend/SQL

SQL SELECT 구문 및 DCL 권한 관리

hjwjo 2024. 10. 11. 14:21

SQL SELECT 구문 정리 및 예시

SELECT 구문은 SQL에서 데이터베이스로부터 데이터를 조회하는 가장 기본적인 구문입니다. 데이터베이스에서 원하는 데이터를 다양한 조건으로 조회할 수 있으며, 필요한 데이터를 선택해 가공할 수도 있습니다.

기본 구문 형식

SELECT [DISTINCT] { * | column [[AS] alias], ... }
FROM table
[WHERE condition]
[ORDER BY column [ASC | DESC]];

구성 요소 설명

  • SELECT: 하나 이상의 열을 선택합니다.
  • DISTINCT: 중복되는 행을 제거합니다.
  • *: 테이블의 모든 열을 선택합니다.
  • column: 특정 열을 지정하여 조회합니다.
  • AS: 선택된 열의 별칭(alias)을 지정합니다.
  • alias: 출력 시 열의 이름을 변경합니다.
  • FROM table: 데이터를 조회할 테이블을 명시합니다.
  • WHERE: 조건에 맞는 행만 선택합니다.
  • ORDER BY: 특정 열을 기준으로 결과를 정렬합니다.
    • ASC: 오름차순 정렬 (기본값).
    • DESC: 내림차순 정렬.

SQL 예시 및 설명

1. 기본 SELECT 문

-- EMPLOYEES 테이블의 모든 데이터를 조회
SELECT * FROM EMPLOYEES;

2. 특정 열만 조회

-- EMPLOYEES 테이블에서 특정 열만 선택 (이름, 입사일, 이메일, 급여)
SELECT FIRST_NAME, HIRE_DATE, EMAIL, SALARY FROM EMPLOYEES;

3. 열에 대한 연산 수행

-- 급여에 10% 추가된 값을 계산하여 출력
SELECT FIRST_NAME, SALARY, SALARY + SALARY * 0.1 AS "최종 급여" FROM EMPLOYEES;

4. 문자열 연결

-- 문자열을 연결하여 출력
SELECT FIRST_NAME || ' 님의 급여는 ' || SALARY || '$ 입니다' AS 급여 FROM EMPLOYEES;

5. DISTINCT로 중복 제거

-- DEPARTMENT_ID가 중복되지 않도록 조회
SELECT DISTINCT DEPARTMENT_ID FROM EMPLOYEES;

6. WHERE 절 조건문

-- 급여가 10000 이상인 직원만 조회
SELECT * FROM EMPLOYEES WHERE SALARY >= 10000;

7. ORDER BY로 정렬

-- 급여가 높은 순으로 정렬하여 조회
SELECT FIRST_NAME, SALARY FROM EMPLOYEES ORDER BY SALARY DESC;

8. WHERE와 조건문 결합

-- 2003년도에 입사한 직원 조회 (LIKE 연산자 사용)
SELECT FIRST_NAME, HIRE_DATE FROM EMPLOYEES WHERE HIRE_DATE LIKE '03%';

DCL (Data Control Language)

DCL은 데이터베이스 사용자 권한을 관리하는 구문을 말하며, 주로 권한 부여와 회수에 사용됩니다. DCL은 데이터의 보안과 접근 제어를 담당합니다.

DCL 구문

  1. GRANT: 특정 사용자에게 권한을 부여합니다.
  2. REVOKE: 특정 사용자의 권한을 회수합니다.

GRANT 구문

GRANT {권한} ON {대상} TO {사용자};
  • 권한: SELECT, INSERT, UPDATE, DELETE, EXECUTE 등.
  • 대상: 테이블, 뷰, 프로시저 등.
  • 사용자: 권한을 부여받을 사용자.

GRANT 예시

-- 사용자 'john'에게 EMPLOYEES 테이블에 대한 SELECT 권한 부여
GRANT SELECT ON EMPLOYEES TO john;

REVOKE 구문

REVOKE {권한} ON {대상} FROM {사용자};
  • 권한: SELECT, INSERT, UPDATE, DELETE, EXECUTE 등.
  • 대상: 테이블, 뷰, 프로시저 등.
  • 사용자: 권한을 회수할 사용자.

REVOKE 예시

-- 사용자 'john'의 EMPLOYEES 테이블에 대한 SELECT 권한 회수
REVOKE SELECT ON EMPLOYEES FROM john;

추가적인 권한 제어

  • GRANT OPTION: 다른 사용자에게 권한을 부여할 권한도 부여합니다.

    GRANT SELECT ON EMPLOYEES TO john WITH GRANT OPTION;
  • PUBLIC: 모든 사용자에게 권한을 부여합니다.

    GRANT SELECT ON EMPLOYEES TO PUBLIC;

이번 포스팅에서는 SELECT 구문의 구성 요소와 다양한 사용 예시, 그리고 데이터베이스 접근 권한을 제어하는 DCL에 대해 설명했습니다. SELECT는 데이터 조회의 핵심 구문이며, GRANTREVOKE는 데이터베이스 보안에서 중요한 역할을 합니다.