자격증/SQLD

SQLD 2장 1과목

멍냐옹2 2023. 2. 21. 10:31
반응형

2과목

1장

  1. SQL 문장들의 종류
    1) DML : SELECT, INSERT, UPDATE, DELETE 등 데이터 조작어
    2) DDL : CREATE, ALTER, DROP, RENAME 등 데이터 정의어
    3) DCL : GRANT, REVOKE 등 데이터 제어어
    4) TCL : COMMIT, ROLLBACK 등 트랜잭션 제어어
  2. 제약조건 : 데이터의 무결성을 유지하기 위한 데이터베이스의 보편적인 방법
    1) PRIMARY KEY : 기본키. 하나의 테이블에 한 개만 지정 가능. 자동으로 UNIQUE 인덱스 생성 NULL값 입력 불가 (기본키 제약 = 고유키 & NOT NULL 제약)
    2) UNIQUE KEY : NULL 가능, 행을 고유하게 식별하기 위한 고유키
    3) NOT NULL : NULL 값 입력 금지
    4) CHECK : 입력할 수 있는 값의 범위 등을 제한. TRUE or FALSE 논리식을 지정
    5) FOREIGN KEY : 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼
    6) NULL : 공집합, 0, 공백 등과 다른 정의되지 않은 미지의 값 or 데이터 입력을 못하는 경우
    7) DEFAULT : 데이터 입력 시 칼럼의 값이 지정되지 않을 때, 기본값
  3. DDL
    1) Column 변경
    - ALTER TABLE 테이블명 ADD 추가칼럼명 데이터유형;
    - ALTER TABLE 테이블명 DROP COLUMN 삭제할 칼럼명;
    - [Oracle] ALTER TABLE 테이블명 MODIFY (칼럼명 데이터유형 DEFAULT NOT NULL);
    - [SQL Server] ALTER TABLE 테이블명 ALTER COLUMN 칼럼명 데이터유형 DEFAULT NOT NULL;
    - [Oracle] ALTER TABLE 테이블명 RENAME COLUMN (구)칼럼명 TO (신)칼럼명;
    - [SQL Server] sp_rename 'dbo.테이블명.칼럼명(구)‘, ’테이블명.칼럼명(신)‘, ’COLUMN';
    - ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
    - ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (칼럼명);
    2) 테이블 변경
    - DROP TABLE [CASCADE CONSTRAINT]
    : 테이블의 모든 데이터 및 구조 삭제
    : 해당 테이블과 관계가 있었던 참조되는 제약조건에 대해서도 삭제, 복구X
    - TRUNCATE TABLE
    : 테이블 삭제X, 테이블에 들어있던 데이터만 제거, 저장공간 재 사용
    3) 칼럼 변경시 고려사항
    - 해당 칼럼이 NULL 값, 테이블에 아무 행도 없으면 칼럼 폭 줄이기 가능
    - 해당 칼럼이 NULL 값만을 가지고 있으면 데이터 유형 변경 가능
    - 해당 칼럼의 DEFAULT 값을 바꾸면 변경 작업 이후 발생하는 행 삽입에만 영향을 미침
    - DDL 명령어의 경우 실행시 AUTO COMMIT
  4. DML
    1) INSERT
    - INSERT INTO 테이블명 (COLUMN_LIST) VALUES (VALUE_LIST);
    - INSERT INTO 테이블명 VALUES (VALUE_LIST);
    2) UPDATE
    - UPDATE 테이블명 SET 칼럼명 = 새로운 값;
    3) DELETE
    - DELETE FROM 테이블명 (WHERE 조건절);
    4) SELECT
    - SELECT [ALL | DISTINCT] 칼럼명 FROM 테이블;
    - ALL : DEFAULT 옵션 ( 중복 데이터 모두 출력 )
    - DISTICNT : 중복데이터를 1건으로 표시
    - * : 전체 컬럼 표시
    - AS: 칼럼명에 멸칭으로 표시
    5) 고려사항
    - SQL Server의 경우 DML도 AUTO COMMIT
  5. Delete vs Drop vs Truncate
  • DELETE : 데이터는 지워지지만 테이블 용량은 줄어 들지 않음.
    원하는 데이터만 삭제 가능, 복구 가능
  • DROP : 테이블 전체, 공간, 객체를 삭제. 복구 불가능
  • TRUNCATE : 용량이 줄어 들고, 인덱스 등도 모두 삭제. 복구 불가능
  1. TCL
    1) 트랜잭션 : 데이터베이스의 논리적 연산단위, 분할할 수 없는 최소단위
    2) 트랜젝션 특성
    3) 언어
    - 커밋(COMMIT) : 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것
    - 롤백(ROLLBACK) : 트랜잭션 시작 이전의 상태로 되돌리는 것
    ex) ROLLBACK TO SVPT1; (Oracle)
    ex) ROLLBACK TRAN SVPT1; (SQL Server)
    - 저장점(SAVEPOINT) : 저장점 기능
    ex) SAVEPOINT SVPT1; (Oracle)
    ex) SAVE TRAN SVPT1; (SQL Server)
    - Oracle은 DML문장 수행 후 사용자가 임의로 COMMIT 또는 ROLLBACK 수행해줘야 함
    - SQL Server는 기본적으로 AUTO COMMIT
  2. 함수
    1) 행 반환
    - ROWNUM : 원하는 만큼의 행을 가져올 때 사용(Oracle)
    ex) WHERE ROWNUM <= 1;
    - TOP : (SQL Server)
    - PERCENT : 결과 집합의 처음 몇 % 행만 반환
    - WITH TIES : ORDER BY 절이 지정된 경우만 사용, 마지막 행 같은 값 추가 출력
    ex) SELECT TOP(1) PLAYER_NAME FROM PLAYER;
    2) 문자열

    3) 숫자형

    4) 날짜형

    5) 변환형
    6) CASE 표현

    7) NULL

    8) 집계
  3. GROUP BY, HAVING 절의 특징
    1) GROUP BY를 통해 소 그룹별 기준을 정한 후, SELECT에 집계 함수 사용
    2) 집계 함수의 통계 정보는 NULL값을 가진 행을 제외하고 수행
    3) GROUP BY 절에서는 ALIAS 사용 불가
    4) 집계 함수는 WHERE 절에 올 수 없음
    5) HAVING 절에는 집계함수를 이용하여 조건 표시
    6) HAVING 절은 일반적으로 GROUP BY 뒤에 위치
    7) WHERE 절은 GROUP으로 나누기 전에 행들을 미리 제거
  4. ORDER BY 절
    1) Oracle은 NULL = 큰 값, SQL Server는 NULL = 가장 작은 값으로 처리
    2) SELECT 절에서 정의하지 않은 칼럼 사용 가능
  5. SELECT 문장 실행 순서
    1) 발췌 대상 테이블을 참조한다. (FROM)
    2) 발췌 대상 데이터가 아닌 것은 제거한다. (WHERE)
    3) 행들을 소그룹화 한다. (GROUP BY)
    4) 그룹핑된 값의 조건에 맞는 것만을 출력한다. (HAVING)
    5) 데이터 값을 출력/계산한다. (SELECT)
    6) 데이터를 정렬한다. (ORDER BY)
  6. 조인
    1) 개념 : 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것
    2) 특이사항
    - 일반적인 경우 행들은 PK나 FK 값의 연관에 의해 JOIN이 성립
    - FROM 절에 A, B, C 3개의 테이블이 나열되었더라도 특정 2개의 테이블만 먼저 조인되고, 그 조인된 새로운 결과 집합과 남은 한 개의 테이블이 다음 차례로 조인
    3) EQUI JOIN : 두 테이블 간에 칼럼 값들이 서로 정확히 일치하는 경우에 사용
    - 대부분 PK-FK 관계를 기반으로 조인
    - JOIN의 조건은 WHERE 절에 “=” 연산자를 사용해서 표현
    - 조건절에 ALIAS명 사용 가능
    - WHERE 절에서 JOIN 조건 이외의 검색 조건에 대한 조건 사용 가능
    4) Non EQUI JOIN : 두 개의 테이블 간 칼럼 값들이 서로 정확하게 일치하지 않는 경우 사용
    - “=” 연산자가 아닌 다른(Between, 부등호 등) 연산자를 사용하여 조인
    - 데이터 모델에 따라서 Non EQUI JOIN이 불가능한 경우 존재
반응형

'자격증 > SQLD' 카테고리의 다른 글

SQLD 합격  (1) 2023.02.22
SQLD 오답노트  (0) 2023.02.22
SQLD 2장 2-3과목  (1) 2023.02.21
SQLD 1장 2과목  (2) 2023.02.20
SQLD 1장 1과목  (0) 2023.02.20