1. 데이터 유형
1) CHARACTER
- s는 기본 길이 1바이트
- 최대 길이 Oracle 2000바이트, SQL Server 8000바이트
- 고정 길이를 갖고 있음.
2) VARCHAR
- 가변 길이 문자열 정보
- Oracle은 VARCHAR2, SQL Server는 VARCHAR
- s는 최소 길이 1바이트, 최대 길이 Oracle 4000바이트, SQL Server 8000바이트
- 할당된 변수값의 바이트만 적용(Limit 개념)
3) NUMERIC
- 정수, 실수 등의 숫자 정보
- Oracle은 NUMBER, SQL Server는 10가지 이상의 숫자 타입 보유
4) DATETIME
- 날짜와 시각 정보
- Oracle은 DATE, SQL Server는 DATETIME
CHAR 유형
'AA' = 'AA ' -> 공백 추가해 같은 길이가 되도록 비교
VARCHAR 유형
'AA' != 'AA ' -> 공백도 하나의 문자로 취급
2. 테이블 생성
- 테이블 명 단수형 권고
- 한 테이블 내에서 칼럼명 중복 x
- 칼럼에 대해서 다른 테이블까지 고려하여 데이터베이스 내에서 일관성 있게 사용하는 것 좋다(데이터 표준화 관점)
- 테이블과 칼럼명은 반드시 문자로 시작
- A-Z, a-z, 0-9, _, $, # 문자만 허용
- 테이블 생성시 대/소문자 구분 x
- 문자 데이터 유형은 반드시 가질 수 있는 최대 길이 표시
제약조건: 사용자가 원하는 조건의 데이터만 유지하기 위한 즉, 데이터의 무결성을 유지하기 위한 테이블의 특정 칼럼에 설정하는 제약(PK, UNIQUE KEY, NOT NULL, CHECK, FK)
* UNIQUE KEY(고유키): 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키, 단 NULL은 고유키 제약 대상 X
* CHECK: 입력할 수 있는 값의 범위 등을 제한. TRUE or FALSE로 평가 가능한 논리식 지정
테이블 구조 확인
- Oracle: "DESCRIBE 테이블명;"
- SQL Server": "sp_help 'dbo.테이블명'"
CTAS(Create Table ~ As Select ~) 기법 사용시 기존 테이블의 제약조건 중에 NOT NULL만 새로운 복제 테이블에 적용이 되고, 기본키/고유키/외래키/CHECK 등의 다른 제약 조건은 없어진다는 점이다.
3. 테이블 수정
1) 컬럼 추가
ALTER TABLE 테이블명
ADD 추가할 컬러명 데이터유형(데이터크기);
2) 컬럼 삭제
ALTER TABLE 테이블명
DROP COLUMN 삭제할컬럼명;
3) 컬럼 수정: 컬럼의 데이터 유형, 디폴트값, NOT NULL 제약조건에 대한 변경을 포함 가능
ALTER TABLE 테이블명
MODIFY (컬럼명1 데이터 유형 [DEFAULT 식] [NOT NULL],
컬럼명2 데이터 유형 ```);
- 해당 컬럼의 크기를 늘릴 수는 있지만 줄이진 못한다
- 해당 컬럼이 NULL값만 가지고 있거나 테이블에 아무 행도 없으면 컬럼의 폭을 줄일 수 있다.
- 해당 컬럼이 NULL 값만을 가지고 있으면 데이터 유형 변경 가능
- 해당 컬럼의 DEFAULT 값을 바꾸면 변경 작업 이후 발생하는 행 삽입에만 영향을 미치게 된다.
- 해당 컬럼의 NULL 값이 없을 경우에만 NOT NULL 제약 조건 추가 가능
4) 컬럼 이름 변경
ALTER TABLE 테이블명
RENAME COLUMN 변경해야 할 컬럼명 TO 새로운 컬럼명;
'데이터베이스 > SQLD' 카테고리의 다른 글
3-1 관계형 데이터베이스 (0) | 2022.09.19 |
---|---|
2-6 분산 데이터베이스와 성능 (0) | 2022.09.16 |
2-5 데이터베이스 구조와 성능 (0) | 2022.09.16 |
2-4 대량 데이터에 따른 성능 (0) | 2022.09.16 |
2-3 반정규화와 성능 (0) | 2022.09.16 |