본문 바로가기
자격증/SQL개발자(SQLD)

3-2장. SQL 기본(DDL[DATA DEFINITION LANGUAGE])

by 김엉배 2023. 5. 23.
728x90
반응형

 

SQLD 단원별 목록으로


1.  데이터 유형

- 데이터 유형은 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준이라고

  생각하면 된다. 즉 특정 칼럼을 정의할 때 선언한 데이터 유형은 그 칼럼이 받아들일 수 있는 자료의 유형을 규정한다.

 

 


2. CREATE TABLE

- 테이블은 일정한 형식에 의해서 생성된다. 테이블 생성을 위해서는 해당 테이블에 입력될 데이터를 정의하고, 정의한 데이터를 어떠한

   데이터 유형으로 선언할 것인지를 결정해야 한다.

가) 테이블과 칼럼의 정의

- 테이블에 존재하는 모든 데이터를 고유하게 식별할 수 있으면서 반드시 값이 존재하는 단일 칼럼이나 칼럼의 조합들(후보키) 중에 하나를    선정하여 기본키 칼럼으로 지정한다.


나) CREATE TABLE

- 테이블명은 객체를 의미할 수 있는 적절한 이름을 사용한다. 가능한 단수형을 권고한다.

- 테이블 명은 다른 테이블의 이름과 중복되지 않아야 한다.

- 한 테이블 내에서는 칼럼명이 중복되게 지정될 수 없다.

- 테이블 이름을 지정하고 각 칼럼들은 괄호 "( )"로 묶어 지정한다.

- 각 칼럼들은 콤마 ","로 구분되고, 테이블 생성문의 끝은 항상 세미콜론 ";"으로 끝난다.

- 칼럼에 대해서는 다른 테이블까지 고려하여 데이터베이스 내에서는 일관성 있게 사용하는 것이 좋다.(데이터 표준화 관점)

- 칼럼 뒤에 데이터 유형은 꼭 지정되어야 한다.

- 테이블명과 칼럼명은 반드시 문자로 시작해야 하고, 벤더별로 길이에 대한 한계가 있다.

- 벤더에서 사전에 정의한 예약어(Reserved word)는 쓸 수 없다.

- A-Z, a-z, 0-9, _, $, # 문자만 허용된다.

- 테이블 생성 시 대/소문자 구분은 하지 않는다. 기본적으로 테이블이나 칼럼명은 대문 자로 만들어진다.

- DATETIME 데이터 유형에는 별도로 크기를 지정하지 않는다.

- 문자 데이터 유형은 반드시 가질 수 있는 최대 길이를 표시해야 한다.

- 칼럼과 칼럼의 구분은 콤마로 하되, 마지막 칼럼은 콤마를 찍지 않는다.

- 칼럼에 대한 제약조건이 있으면 CONSTRAINT를 이용하여 추가할 수 있다.

 


다) 제약조건(CONSTRAINT)

- 데이터의 무결성을 유지하기 위한 데이터베이스의 보편적인 방법으로 테이블의 특정 칼럼에 설정하는 제약이다.

- NULL 의미: ‘아직 정의되지 않은 미지의 값’이거나 ‘현재 데이터를 입력하지 못하는 경우’를 의미

- DEFAULT 의미: 데이터 입력 시에 칼럼의 값이 지정되어 있지 않을 경우 기본값(DEFAULT)을 사전에 설정할 수 있다.


라) 생성된 테이블 구조 확인

- 테이블을 생성한 후 테이블의 구조가 제대로 만들어졌는지 확인할 필요가 있다. Oracle의 경우 “DESCRIBE 테이블명;” 또는 간략히        “DESC 테이블명;”으로 해당 테이블에 대한 정보를 확인할 수 있다. SQL Server의 경우 “sp_help ‘dbo.테이블명’”으로 해당 테이블에     대한 정보를 확인할 수 있다.


마) SELECT 문장을 통한 테이블 생성 사례

- SELECT 문장을 활용해서 테이블을 생성할 수 있는 방법(CTAS: Create Table ~ As Select ~)이 있다. 기존 테이블을 이용한

  CTAS 방법을 이용할 수 있다면 칼럼별로 데이터 유형을 다시 재정의 하지 않아도 되는 장점이 있다.

 

 


3. ALTER TABLE

가) ADD COLUMN

- 기존 테이블에 필요한 칼럼을 추가하는 명령

- 주의할 것은 새롭게 추가된 칼럼은 테이블의 마지막 칼럼이 되며 칼럼의 위치를 지정할 수는 없다.


나) DROP COLUMN

- 테이블에서 필요 없는 칼럼을 삭제할 수 있으며, 데이터가 있거나 없거나 모두 삭제 가능하다.

- 한 번에 하나의 칼럼만 삭제 가능하며, 칼럼 삭제 후 최소 하 나 이상의 칼럼이 테이블에 존재해야 한다.

- 주의할 부분은 한 번 삭제된 칼럼은 복구가 불가능하다.


다) MODIFY COLUMN

- 칼럼의 데이터 유형, 디폴트(DEFAULT) 값, NOT NULL 제약조건에 대한 변경을 포함할 수 있다.


라) DROP CONSTRAINT

- 테이블 생성 시 부여했던 제약조건을 삭제하는 명령어


마) ADD CONSTRAINT

- 특정 칼럼에 제약조건을 추가하는 명령어

 

 


4. RENAME TABLE

- 명령어를 사용하여 테이블의 이름을 변경할 수 있다.


- SQL Server에서는 sp_rename을 이용하여 테이블 이름을 변경할 수 있다.

 

 


5. DROP TABLE

- DROP 명령어를 사용하면 테이블의 모든 데이터 및 구조를 삭제한다. CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있었던    참조되는 제약조건에 대해서도 삭제한 다는 것을 의미한다.

 

 


6. TRUNCATE TABLE
- TRUNCATE TABLE은 테이블 자체가 삭제되는 것이 아니고, 해당 테이블에 들어있던 모든 행들이 제거되고 저장 공간을 재사용

  가능하도록 해제한다. 테이블 구조를 완전히 삭제하기 위해서는 DROP TABLE을 실행하면 된다.

728x90
반응형