개발 공부
SQL - DDL (CREATE / ALTER / DROP) 본문
목차
<CREATE>
<ALTER>
<DROP>
< CREATE >
객체를 새로이 생성하는 구문
테이블 생성
- 테이블이란? 행(ROW)과 열(COLUMN)로 가장 기본적인 데이터베이스 객체
모든 데이터들은 테이블을 통해서 저장된다.
(DBMS 용어 중 하나로, 데이터를 일종의 표 형태로 표현한 것)
[ 표현식 ]
CREATE TABLE 테이블명(
컬럼명 자료형 (크기),
컬럼명 자료형 (크기),
컬렴명 자료형,
SQL 자료형 종류
1.문자: (CHAR(바이트 크기) | VARCHAR2(바이트크기) => 반드시 크기 지정 해야한다.
> CHAR : 최대 2000바이트까지 지정 가능.
지정한 범위 안에서만 써야한다./
고정길이 (지정한 크기보다 더 적은 값이 들어와도 공백으로 채워진다.)
고정된 글자수의 데이터만이 담길 경우 사용
=> 일반적으로 한글자사용시 사용된다. EX)퇴직여부 Y/N , M/F
> VARCHAR2 : 최대 4000바이트 까지 지정 가능.
가변 길이(담긴 값에 따라서 공간의 크기가 맞춰진다.)
몇 글자의 데이터가 들어올지 모르는 경우 + 긴글
2.숫자 (NUMBER)
3.날짜 (DATE)
< ALTER >
객체를 변경하는 구문
[표현식]
ALTER TABLE 테이블명 변경할내용;
*변경할 내용
1) 컬럼 추가 / 컬럼 수정/ 컬럼 삭제
2) 제약조건 추가/삭제 --> 수정은 불가 (수정하고자 한다면 삭제한 후 새로이 추가 )
3) 컬럼명/제약조건 명 / 테이블명 수정
<직접사용시 겪었던 문제>
1.CREATE시 컬럼의 대한 주석 COMMENT 동시 생성은 불가하기 때문에 ALTER를 사용해야한다.
2.CREATE시 제약조건을 잘못 부여하게 되어 수정이 필요했다.
3.테이블명을 잘못 입력하여 수정이 필요했다.
1-1 컬럼 추가(ADD)
ADD 컬럼명 자료형 [DEFAULT 기본값 ]제약조건
변경전
변경후후
1-2 컬럼 수정(MODIFY)
1)자료형 수정 : MODIFY 컬럼명 바꾸고자 하는 자료형
2)DEFAULT 값 수정 : MODIFY 컬렴명 DEFALUT 바꾸고자하는 기본값
★주의할점 기존 컬럼의 자료형과 다른 자료형으로 변경시 전재하는 데이터가 없어야만 변경가능하다
변경전
변경후
1-3 컬럼삭제 (DROP COLUMN)
-->최소 한개의 컬럼은 존재해야한다
--> 컬럼다중삭제 불가능
DROP COLUMN 삭제하고자 하는 컬럼명
변경전
변경후
2) 제약조건 추가/삭제 및 제약조건명 지정
--> 수정은 불가 (수정하고자 한다면 삭제한 후 새로이 추가 )
2-1제약조건 추가
PRIMARY KEY : ADD PRIMARY KEY (컬럼명)
FOREIGN KEY : ADD FOREIGN KEY (컬럼명) REFERENCES 참조할테이블명(컬럼명)
UNIQUE : ADD UNIQUE(컬럼명)
CHECK : ADD CHECK(컬럼에 대한 조건)
★ NOT NULL : MODIFY 컬럼명 NOT NULL | NULL => 이거쓰면 널 허용
제약조건 추가 + 제약조건명을 지정하고자 한다면
ALTER TABLE 테이블명 MODIFY [CONSTRAINT 제약조건명] 제약조건 앞에
제약조건 부여 및 제약조건명 지정
변경전
변경후
2-2제약조건 삭제 : DROP CONSTRAINT 제약조건명
★제약조건을 삭제하려면 제약조건명을 입력해야한다
db시스템은 기본적으로 제약조건의 이름을 자동으로 생성해주기 떄문에 확인 후 입력해야한다.
만약 제약조건명을 설정해주었다면 입력한 제약조건명을 써주면 된다.
변경전
변경후
3) 컬럼명/제약조건 명 / 테이블명 수정
컬럼명 변경 : RENAME COLUMN 기존컬렁명 TO 바꿀 컬럼명
제약조건명 변경 : RENAME CONSTRAINT 기존제약조건명 TO 바꿀제약조건
테이블명 변경 : RENAME [기존테이블명] TO 바꿀테이블명
< DROP >
테이블을 삭제하는 구문
- 단 ,어딘가에서 참조(외래키 설정)되고 있는 부모테이블은 함부로 삭제가 되지 않는다.
만약 삭제하고자 한다면 방법은 2가지로 나뉜다.- 방법1.자식테이블을 먼저 삭제 한 후 부모테이블 삭제하는 방법
- 방법2.부모 테이블 삭제 + 제약조건 같이 삭제
DROP TABLE 테이블명 CASCADE CONSTRAINT;
'DataBase > ORACLE_SQL' 카테고리의 다른 글
SQL -DML(UPDATE) (0) | 2023.07.11 |
---|---|
SQL - DML (INSERT) (0) | 2023.07.05 |
SQL - <DDL / DML / DCL > (0) | 2023.07.04 |
SQL - 문법 / 조회(SELECT) + WHERE절 (0) | 2023.06.29 |
SQL 집합 연산자 (SET OPERATION ) (0) | 2023.06.28 |