SQL SELECT 구문 및 DCL 권한 관리

2024. 10. 11. 14:21·🗄️ Backend/SQL

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는 데이터 조회의 핵심 구문이며, GRANT와 REVOKE는 데이터베이스 보안에서 중요한 역할을 합니다.

'🗄️ Backend > SQL' 카테고리의 다른 글

SQL 서브쿼리 (Subquery)와 데이터 조작 명령어 (DML) 정리  (4) 2024.10.14
그룹 함수 및 조인 함수 구문  (0) 2024.10.11
숫자 함수 및 SQL 함수 정리  (3) 2024.10.11
RDBMS (관계형 데이터베이스 관리 시스템)의 이해: 개념과 SQL 기본 구문  (0) 2024.10.11
JDBC를 이용한 Oracle 데이터베이스 연동 및 회원 정보 관리  (0) 2024.10.11
'🗄️ Backend/SQL' 카테고리의 다른 글
  • 그룹 함수 및 조인 함수 구문
  • 숫자 함수 및 SQL 함수 정리
  • RDBMS (관계형 데이터베이스 관리 시스템)의 이해: 개념과 SQL 기본 구문
  • JDBC를 이용한 Oracle 데이터베이스 연동 및 회원 정보 관리
hjwjo
hjwjo
백엔드 및 풀스택 개발에 관심 있는 초보 개발자의 개발 블로그입니다.
  • hjwjo
    Jeongwoo's Devlog
    hjwjo
  • 전체
    오늘
    어제
    • Devlog
      • 🗄️ Backend
        • Java
        • Spring
        • JPA
        • SQL
        • JSP
        • AWS
        • GCP
        • Linux
        • GitHub
        • ML
        • Security
      • 🖥️ Frontend
        • React
        • CSS
      • 🏅 Project
        • Hackathon
        • Team Project
      • 📊 Algorithm
        • BOJ
      • 📜 Certs
        • ADsP
        • SQLD
        • 정보처리기사
      • 📖
        • JavaScript
      • 일상
        • 면접후기
  • 블로그 메뉴

    • 홈
    • Devlog
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    DML
    자바
    http
    정보처리기사
    백엔드
    쿼리
    스프링
    jsp
    GCP
    SQL
    스프링부트
    백준
    springboot
    데이터베이스
    java기초
    Spring
    정처기
    ADsP
    AWS
    java
  • 최근 댓글

  • 최근 글

hjwjo
SQL SELECT 구문 및 DCL 권한 관리
상단으로

티스토리툴바