담비의 개발블로그

국비지원교육 47일차(10주차&DB) 본문

국비교육

국비지원교육 47일차(10주차&DB)

담비12 2024. 1. 18. 12:11

데이터 정의어

- 데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성&변경&삭제 관련 기능을 수행한다.

 

CREATE

- 객체를 생성하는데 사용하는 명령어이다.

CREATE TABLE 소유계정.테이블 이름(

열1 이름 열1 자료형,

열2 이름 열2 자료형,

...

열N 이름 열N 자료형

);

 

예시

CREATE TABLE EMP_DDL(

EMPNO NUMVER(4),

ENAME VARCHAR(10)

);

 

 

테이블 이름 생성 규칙

1. 테이블 이름은 문자로 시작해야한다. (한글도 가능, 숫자로 시작 불가)

2. 테이블 이름은 30byte이하여야 한다.(영어는 30자, 한글은 15자)

3. 같은 사용자 소유의 테이블 이름은 중복될 수 없다.

4. 테이블 이름은 영문자, 숫자와 특수 문자 $, #, _ 를 사용할 수 있다.

5. SQL 키워드는 테이블 이름으로 사용할 수 없다.(SELECT, FROM등은 테이블 이름으로 사용 불가)

 

열 이름 생성 규칙

1. 열 이름은 문자로 시작해야 한다.

2. 열 이름은 30byte이하여야 한다.

3. 한 테이블의 열 이름은 중복될 수 없다.

4. 열 이름은 영문자, 숫자와 특수 문자 $, #, _ 를 사용할 수 있다.

5. SQL 키워드는 열 이름으로 사용할 수 없다.

 

기존 테이블 열 구조와 데이터를 복사하여 새 테이블 생성방법

CREATE TABLE 새 테이블이름

AS SELECT * FROM 기존 테이블 이름;

 

기존 테이블 열 구조와 일부 데이터를 복사하여 새 테이블 생성방법

CREATE TABLE 새 테이블이름

AS SELECT * FROM 기존 테이블 이름

WHERE 일부 데이터내용;

 

기존 테이블 열 구조만 복사하여 새 테이블 생성방법

CREATE TABLE 새 테이블이름

AS SELECT * FROM 기존 테이블 이름

WHERE 1 <> 1;

 

ALTER

- 이미 생성된 오라클 데이터베이스 객체를 변경할 때 사용한다.

 

ALTER ADD

- 추가할 열 이름과 자료형을 명시하면 테이블에 새 열을 추가할 수 있다.

ALTER TABLE 테이블이름

ADD 열이름 자료형;

 

RENAME

- 테이블의 열 이름을 변경할 수 있다.

ALTER TABLE 테이블이름

RENAME COLUMN 기존열이름 TO 바꿀열이름;

 

MODIFY

- 열의 자료형을 변경할 수 있다.

ALTER TABLE 테이블이름

MODIFY 열이름 바꿀자료형;

 

DROP

- 특정 열을 삭제한다.

ALTER TABLE 테이블이름

DROP COLUMN 열이름;

 

RENAME(테이블)

- 테이블 이름을 변경할 수 있다.

RENAME 기존 테이블 이름 TO 변경할 테이블 이름;

 

TRUNCATE

- 특정 테이블의 모든 데이터를 삭제한다.

- ROLLBACK이 되지 않는다. (DELETE와 다른점)

TRUNCATE TABLE 테이블 이름;

 

DROP

- 데이터베이스 객체를 삭제한다.

DROP TABLE 테이블이름;

 

INSERT문

- 테이블에 데이터를 추가하는데 사용한다.

INSERT INTO 테이블이름 (열1, 열2, ..., 열N)

VALUES (열 1에 들어갈 데이터, 열2에 들어갈 데이터, ... , 열N에 들어갈 데이터);

 

INSERT 문에서 NULL입력법

INSERT INTO 테이블 이름(열1, 열2, 열3)

VALUES (70, 80, NULL);

이런식으로 사용이 가능하다.

 

INSERT문에서 서브쿼리를 사용할 때 유의할 점

1. VALUES절은 사용하지 않는다.

2. 데이터가 추가되는 테이블의 열 개수와 서브쿼리의 열 개수가 일치해야 한다.

3. 데이터가 추가되는 테이블의 자료형과 서브쿼리의 자료형이 일치해야 한다.

 

번외)MERGE문을 사용하면 같은 열 구조를 가지는 여러 테이블 또는 서브쿼리의 결과 데이터를 한 테이블에 병합하여 추가할 수도 있다.

 

UPDATE

- 테이블에 저장되어있는 데이터 내용을 수정할때 사용한다.

- 수정한 내용을 되돌리고 싶을때는 ROLLBACK; 을 사용한다.

- 데이터 일부분만 수정을 원한다면 WHERE문을 쓴다.

- WHERE절을 먼저 확인하고 UPDATE문을 실행한다면 보다 많은 오류를 줄일 수 있다.

UPDATE [변경할 테이블]

SET [변경할 열1] = [데이터], [변경할 열2] = [데이터],  ... , [변경할 열N] = [데이터]

[WHERE 데이터를 변경할 대상 행을 선별하기 위한 조건];

 

 

DELETE

- 테이블에 있는 데이터를 삭제할 때 사용한다.

DELETE FROM 테이블이름

WHERE 삭제할 대상 행을 선별하기 위한 조건식;

 

트랜잭션

- 하나의 트랜잭션 내에 있는 여러 명령어를 한 번에 수행하여 작업을 완료하거나 아예 모두 수행하지 않는 상태이다.- 트랜잭션을 취소하고 싶다면 ROLLBACK명령어를 사용한다.- 트랜잭션을 영원히 반영하고 싶다면 COMMIT명령어를 사용한다.

 

세션

- 데이터베이스 접속을 시작으로 여러 데이터베이스에서 관련 작업을 수행한 후 접속을 종료하기까지 전체 기간을 의미한다.

 

LOCK

- 조작 중인 데이터를 다른 세션은 조작할 수 없도록 접근을 보류시키는 것을 뜻한다.