ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD] 3.SQL 기본
    자격증 2021. 11. 18. 00:46

    SQL

    명령어종류 명령어 설명
    DDL
    (Data Definition Language)
    CREATE DROP ALTER RENAME 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
    구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어
    DML
    (Data Manipulation Language)
    SELECT 데이터를 조회하거나 검색하기 위한 명령어 / RETRIEVE라고도 한다
    INSERT DELETE UPDATE 데이터에 변형을 가하는 명령어
    DCL
    (Data Control Language)
    REVOKE GRANT DB에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어
    TCL
    (Transaction Control Language)
    COMMIT ROLLBACK 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위 별로 제어하는 명령어

    DML

    • 절자척 데이터 조작어(procedural DML) : 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지 설명
    • 비절차적 데이터 조작어(nonprocedural DML) : 사용자가 어떤 데이터를 원하는지만 설명. 어떻게는 DBMS 에 맡김
    • AS-IS : 비절차적 데이터 조작어는 사용자가 무슨(What) 데이터를 원하는지만을 명세함
    • TO-BE : 비절차적 데이터 조작어는 사용자가 무슨(What) 데이터를 원하는지만을 명세하지만, 절차적 데이터 조작어는 어떻게 (How) 데이터를 접근해야 하는지 명세한다. 절차적 데이터 조작어로는 PL/SQL(오라클), T-SQL(SQL Server) 등이 있다

    CHECK

    • 데이터베이스에서 데이터 무결성을 유지하기 위하여 테이블의 특정 컬럼(column)에 설정하는 제약이다

    TRUNCATE

    • 테이블에 있는 데이터를 한번에 제거하며, 테이블이 최초 생성되었을 당시 Storage만 남기고, 데이터가 담겨있던 Storage는 Release 된다. (create table을 한 직후의 상태로 만들 수 있다) 
    • 자동 COMMIT 된다

    FOREIGN KEY

    • ALTER TABLE 테이블명
    • ADD CONSTRAINTS 외래키이름 FOREIGN KEY(참조컬럼)
    • REFERENCES 참조테이블명(참조컬럼)
    • DELETE ACTION
      Cascade Master 삭제 시 Child 같이 삭제
      Set Null Master 삭제 시 Child 해당 필드 Null
      Set Default Master 삭제 시 Child 해당 필드 Default 값으로 설정
      Restrict Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용
      No Action 참조무결성을 위반하는 삭제/수정 액션을 취하지 않음
      INSERT ACTION
      Automatic Master 테이블에 PK가 없는 경우 Master PK를 생성 후 Child 입력
      Set Null Master 테이블에 PK가 없는 경우 Child 외부키를 Null 값으로 처리
      Set Default Master 테이블에 PK가 없는 경우 Child 외부키를 지정된 기본값으로 입력
      Dependent Master 테이블에 PK가 존재할 때만 Child 입력 허용
      No Action 참조무결성을 위반하는 입력 액션을 취하지 않음

    TABLE 명 변경

    • RENAME 변경전테이블명 TO 변경후테이블명

    TRANSACTION

    • Atomicity(원자성) : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. (ALL OR NOTHING)
    • Consistency(일관성) : 트랜잭션이 실행되기 전의 DB 내용이 잘못 되어 있지 않다면, 트랜잭션이 실행된 이후에도 DB의 내용에 잘못이 있으면 안된다.
    • Isolation(독립성,격리성) : 트랜잭션이 실행되는 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다
    • Durability(지속성) : 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 DB의 내용은 영구적으로 저장된다

    DB 트랜잭션에 대한 격리성이 낮은 경우 발생할 수 있는 문제점

    • Dirty Read : 다른 트랜잭션에 의해 수정되었지만 아직 커밋되지 않은 데이터를 읽는 것
    • Non-Repeatable Read : 한 트랜잭션 내에서 같은 쿼리를 두 번 수행했는데, 그 사이에 다른 트랜잭션이 값을 수정, 삭제하는 바람에 두 쿼리 결과가 다르게 나타나는 현상
    • Phantom Read : 한 트랜잭션 내에서 같은 쿼리를 두 번 수행했는데, 첫번째 쿼리에서 없던 유령 레코드가 두번째 쿼리에서 나타나는 현상

    오라클 시간

    • 1/24 : 1시간 (1일/24)
    • 1/24/60 : 1분 (1일/24 , 60분)
    • 1/24/6 : 10분

    Searched Case Expression vs Simple Case Expression

    • searched_case_expression : SELECT LOC, CASE WHEN LOC='NEW YORK' THEN 'EAST' ELSE 'ETC' 
    • simple_case_expression : SELECT LOC, CASE LOC WHEN 'NEW YORK' THEN 'EAST'

    오라클 단일행

    • NULLIF(1,2) : 1이 2와 같으면 NULL 리턴 / 같지 않으면 1을 리턴
    • COALESCE(1,2,...) : 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이면 NULL 리턴
    • ISNULL, NVL

    오라클 COUNT 사용 시 NULL이 포함되는 경우/ 아닌경우

    • 포함되는 경우 : COUNT(*)
    • 포함되지 않는 경우 : COUNT(ColumnName)

    오라클 order by

    • SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 컬럼을 기준으로 정렬하는데 사용
    • DBMS마다 NULL 값에 대한 정렬 순서가 다를 수 있으므로 주의하여야 한다
    • GROUP BY 절을 사용하는 경우 ORDER BY 절에 집계 함수를 사용할 수도 있다

    SELECT 문장 실행 순서

    • FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

    TOP ( )

    • SQL Server는 TOP 조건을 사용하게 되면 별도 처리 없이 관련 ORDER BY 절의 데이터 정렬 후 원하는 일부 데이터만 쉽게 출력할 수 있다
    • WITH TIES 옵션은 ORDER BY 절의 조건 기준으로 TOP N의 마지막 행으로 표시되는 추가 행의 데이터가 같은 경우 N+ 동일 정렬 순서 데이터를 추가 반환하도록 지정하는 옵션이다. 즉, 동일 수치의 데이터를 추가로 더 추출하는 것
    • 사원 테이블에서 급여가 높은 두명을 내림차순으로 출력하는데 같은 급여를 받는 사원이 있으면 같이 출력
    • SELECT TOP(2) WITH TIES ENAME, SAL FROM EMP ORDER BY SAL DESC;
    728x90
Designed by Tistory.