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로 롤백할 수 있습니다.