SQLD 공부 3일차

28.2까지 완료. p.54 (2주제, 1장)

학습시간 : 2시간(누적 5.5시간)

1. SQL 문의 종류

1) DML: 데이터 조작 언어

– 선택, 삽입, 업데이트, 삭제

2) DDL: 데이터 정의 언어

– 생성, 수정, 삭제, 이름 바꾸기

3) DCL: 데이터 제어 언어

– 보증, 무효

4) TCL: 트랜잭션 제어 언어

– 커밋, 롤백

2. 데이터 언어 및 SQL 명령어 설명

– 비절차적 데이터 조작 언어(DML)는 사용자가 원하는 데이터(무엇)만 지정합니다.

– DML은 데이터베이스 사용자가 응용 프로그램이나 쿼리를 통해 저장된 데이터베이스에 실제로 액세스하는 데 사용됩니다.

– DDL은 스키마, 도메인, 테이블, 뷰 및 인덱스를 정의, 변경 또는 제거할 때 사용됩니다.

– 호스트 프로그램에 삽입되어 사용되는 DML 명령어를 데이터 서브워드라고 합니다.

3. PK 명명 절차

– 테이블 생성 후: ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID);

– 테이블 생성 시: CREATE TABLE PRODUCT( … , CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID));

4. 테이블 열 정의 변경

– 오라클

: 테이블 테이블 이름 변경

MODIFY(column_name1 데이터 유형(DEFAULT 표현식)(NULL이 아님), column_name2 …);

– SQL 서버

: ALTER TABLE 테이블 이름 ALTER COLUMN 열 이름 1 데이터 유형(DEFAULT 표현식)(NULL이 아님)

ALTER TABLE 테이블명 ALTER COLUMN 컬럼명2 …

참고: SQL Server는 한 번에 여러 mullum을 변경하는 구문을 지원하지 않습니다.

: SQL Server에서는 괄호를 사용하지 않습니다.

5.제로

– 알 수 없는 값

– 무가치

– 아직 정의되지 않은 알 수 없는 값

– NULL과의 모든 비교(IS NULL 제외)는 Unknown을 반환합니다.

– 현재 데이터를 입력할 수 없는 경우

6. 제한 유형

– PRIMARY KEY: UNIQUE KEY + NOT NULL의 속성. 제약 조건은 테이블당 하나만 정의할 수 있습니다.

– UNIQUE KEY: 테이블에 중복된 값이 없습니다.

NULL 입력 가능.

-제로가 아님

– CHECK: 데이터베이스에서 데이터 무결성을 유지하기 위해 테이블의 특정 열에 적용되는 제약 조건입니다.

– FOREIGN KEYS: 테이블 간의 관계를 정의하기 위해 다른 테이블의 외래 키가 참조하도록 기본 키를 생성합니다.

7. 테이블 생성 시 주의사항

– 테이블 이름은 객체를 의미할 수 있는 적절한 이름이어야 합니다.

가능하면 단수형을 사용하는 것이 좋습니다.

– 테이블 이름은 다른 테이블의 이름과 중복되어서는 안됩니다.

– 칼럼 이름은 테이블 내에서 중복되어서는 안됩니다.

– 테이블 이름을 제공하고 각 열을 괄호로 묶어 지정합니다.

– 각 열은 쉼표로 구분되며 테이블 생성 문은 항상 세미콜론으로 끝납니다.

– 열에 대한 다른 테이블을 고려하고 데이터베이스 내에서 일관되게 사용하십시오.

– 열 뒤에 데이터 유형을 지정해야 합니다.

– 테이블 이름과 컬럼 이름은 문자로 시작해야 하며 각 프로바이더의 길이 제한이 있습니다.

– 제공자가 미리 정의한 예약어는 사용할 수 없습니다.

– AZ, az, 0-9, _, $, # 문자만 허용됩니다.

8. 외래 키 설명

– 테이블 생성 시 설정할 수 있습니다.

– null 값을 가질 수 있습니다.

– 테이블은 여러 항목을 포함할 수 있습니다.

– 외래 키 값은 참조 무결성 제약 조건이 적용될 수 있습니다.

9. 테이블 열 삭제

테이블 테이블 이름 변경

DROP COLUMN 열 이름;

10. 삭제(/수정) 작업.

– CASCADE: MASTER 삭제 시 CHILD와 함께 삭제

– 제로 설정: MASTER 삭제 시 CHILD 이 필드는 NULL

-기본값으로 설정: MASTER 삭제 시 CHILD 이 필드를 DEFAULT 값으로 설정

– RESTRICT: MASTER 삭제는 CHILD 테이블에 PK 값이 없는 경우에만 허용

– NO ACTION: 참조 무결성을 위반하는 삭제/수정 작업을 수행하지 않습니다.

11. 액션 삽입

– AUTOMATIC : MASTER 테이블에 PK가 없으면 MASTER PK를 생성하고 CHILD 입력

– SET NULL : MASTER 테이블에 PK가 없으면 CHILD 외래키를 NULL 값으로 처리한다.

– SET DEFAULT: MASTER 테이블에 PK가 없으면 CHILD 외래키를 기본값으로 입력

– DEPENDENT: MASTER 테이블에 PK가 있는 경우에만 CHILD 입력 허용

– NO ACTION: 참조 무결성을 위반하는 입력 작업을 수행하지 않습니다.

12. 삭제 VS 자르기 VS 삭제

짧은 끄다
DDL DDL(일부 DML 특성 포함) DML
롤백 불가 롤백 불가 COMMIT 전에 ROLLBACK 가능
자동. 저지르다 자동. 저지르다 사용자 커밋
테이블에서 사용하는 메모리
모두 해제
테이블에서 사용하는 메모리 중
테이블이 처음 생성될 때 할당됩니다.


메모리만 남기고 해제
사용한 메모리가 해제되지 않음
테이블 자체의 정의를 완전히 삭제하십시오. 테이블을 처음 생성했을 때의 초기 상태로 되돌립니다.

데이터만 삭제

13. 거래의 특징

원자성: 트랜잭션에 정의된 작업은 성공하거나 실패해야 합니다(전부 또는 전무).

– 일관성: 트랜잭션 이전에 데이터베이스의 내용이 실행된다면 트랜잭션 이후의 데이터베이스 내용은 틀리지 않아야 한다.

– 격리: 트랜잭션이 실행되는 동안 다른 트랜잭션의 영향을 받아 잘못된 결과를 제공해서는 안 됩니다.

– 지속성: 트랜잭션이 성공적으로 실행되면 트랜잭션에 의해 업데이트된 데이터베이스의 내용이 영구적으로 저장됩니다.

14. 재설정

– 테이블에 입력, 수정, 삭제된 데이터는 COMMIT 이전에 변경 사항을 롤백할 수 있지만, 데이터베이스는 롤백 기능을 사용합니다.

– 데이터 변경이 실행 취소되어 데이터가 이전 상태로 되돌아가고 관련 행이 잠금 해제되어 다른 사용자가 데이터를 변경할 수 있습니다.

– ORACLE은 DDL 문 실행 후 자동으로 COMMIT를 수행합니다.

– SQL Server는 DDL 문을 실행한 후 자동으로 COMMIT를 수행하지 않습니다.

– ORACLE에서 DDL 문을 실행하면 내부적으로 트랜잭션이 종료됩니다.

– SQL Server에서는 CREATE TABLE도 TRANSACTION 범주에 포함됩니다.

15. 세이브 포인트

– 세이브포인트를 정의하면 롤백할 때 트랜잭션에 포함된 모든 작업을 롤백하는 대신 현재 시간부터 트랜잭션의 일부만 SAVEPOINT로 롤백할 수 있습니다.