학교에서 무슨 평가보는데 DBMS 관련 문제도 나와서
시험 대비 복습 겸 오라클 문법을 벼락치기 정리해 봅니다...
1. Table 생성문 CREATE
CREATE 테이블명 (
컬럼명 컬럼타입 [UNIQUE] [NULL, NOT NULL] [CHECK] [PRIMARY KEY],
컬럼명 컬럼타입 [UNIQUE] [NULL, NOT NULL],
...
)
위와 같은 구조로 작성하면 된다.
*[] 안에 있는 내용은 생략 가능
(1) 테이블명 / 컬럼명
- 테이블, 컬렴명 최대 크기는 30byte
- 오라클 예약어는 사용할 수 없음 (예약어 확인)
- 첫글자는 문자만
- 최대 255컬럼 사용 가능
(2) 컬럼타입
많으니 자주 사용하는 대표적인것만 적어보자면
CHAR(N) : 고정 길이 문자열
VARCHAR(N): 가변 길이 문자열
NUMBER(P, S): 가변 숫자 *P(1~38)는 소숫점 포함 자릿수, S(-84~127) 소수점 자리수
DATE: BC 4712 ~ AD 9999년까지의 날짜, 년도, 월, 일, 시, 분, 초 포함
TIMESTAMP: DATE 타입의 확장, 9자리 밀리초 단위까지 저장 가능
BLOB: 이미지, 동영상 등 구조화되지 않은 이진 데이터 저장
CLOB: 문자형 대용량 데이터 저장
(3) UNIQUE
-UNIQUE: 해당 컬럼은 유니크한 값을 가져야함
(4) NULL / NOT NULL
-해당 컬럼이 NULL 값이 가능한지 아닌지 여부 결정, Default: NULL
(5) CHECK 인라인 제약조건
-컬럼에 범위 또는 값 지정 등 제약조건 추가
CHECK(컬럼 조건)
ex) tmp NUMBER CHECK(tmp > 10)
tmp2 NUMBER CHECK(tmp2 BETWEEN 100 AND 200)
tmp3 NUMBER CHECK(tmp3 IN(10, 20, 30))
(6) CONSTRAINTS 제약조건
-무결성 보장 용도, PRIMARY KEY, FOREIN KET, UNIQUE NOT NULL 등이 있음
CONSTRAINTS 제약조건명 제약조건(해당 컬럼)
(7) PK 지정 방식
두 가지 방법이 있음
- 컬럼 정의할 때 PRIMARY KEY 명시
- PRIMARY KEY 제약 조건으로 추가 -> 2개 이상의 컬럼이 PK로 묶일 때는 이 방법을 사용해야함
(8) FK 지정 방식
CONSTARINT 제약조건명 FOREIGN KEY(컬럼명)
REFERENCE 참조테이블명(참조 컬럼명)
테이블 생성 예시
CREATE TABLE DM_TBL (
dmno Number(8) NOT NULL PRIMARY KEY,
custid VARCHAR(10),
maildate DATE,
contents VARCHAR(13),
dept CHAR(2),
grade CHAR(1),
campagin CHAR(2)
// CONSTRAINTS pk_constraint PRIMARY KEY(dmno)
CONSTRAINTS fk_custid FOREIGN KEY(custid) REFRENCE bookinfo_tbl(custid)
);
2. 테이블 수정 ALTER
ALTER TABLE 테이블명 테이블수정내용
테이블 수정
1) ADD COLUNM: 컬럼 추가
ALTER TABLE ADD COLUMN col1 CHAR(3) [...]
2) MODIFY COLUMN: 컬럼 타입 수정
ALTER TABLE MODIFY col1 VARCHAR(3) [...]
2) RENAME COLUMN: 컬럼 타입 수정
ALTER TABLE RENAME col1 TO col2
4) DROP COLUMN: 컬럼 삭제
ALTER TABLE DROP COLUMN col1 [CASCADE]
3. 테이블 삭제 DROP
DROP TABLE 테이블명 [CASCADE | RESTRICTED]
-CASCADE: 참조 관계에 있는 데이터도 연쇄 삭제
-RESTRICTED: 참조하고 있는 데이터가 있다면 삭제 취소
'데이터 > 데이터베이스' 카테고리의 다른 글
[Database] MySQL User 생성 (0) | 2024.07.24 |
---|---|
[Database] DB Session & Connection (0) | 2024.07.24 |
[Database] Transaction과 ACID (0) | 2024.07.05 |
[Database] 스토리지 엔진 InnoDB VS MyISAM (0) | 2024.07.04 |
[Database] DB 조회 쿼리 최적화 (0) | 2024.06.26 |