728x90
테이블생성
[테이블명 규칙]
1) 컬럼명의 최대 크기는 30바이트
2) 컬럼명으로 예약어는 사용 불가
3) 컬럼명으로 문자, 숫자, _, $, #을 사용할 수 있지만 첫 글자는 문자만
4) 한 테이블에 사용가능한 컬럼은 최대 255까지
[테이블 생성]
구문형식
CREATE TABLE 테이블명(
컬럼명1 DATATYPE [DEFAULT 형식]
, 컬럼명2 DATATYPE [DEFAULT 형식]
, ...
);
ex> ex2_1_1 테이블 생성
CREATE TABLE ex2_1_1 (
col1 CHAR(10) ,
col2 VARCHAR2(10)
);
col1은 문자타입으로 10
col2는 가변문자타입으로 10
CHAR는 고정형으로 저장 공간의 효율화를 위해 VARCHAR타입을 사용하는 것이 바람직
INSERT INTO ex2_1_1 (col1, col2) VALUES ('abc', 'abc');
INSERT INTO를 통해 col1과 col2에 각각 값을 넣어준다.
create table ex2_2(
col1 varchar2(3) , -- 디폴트 값인 byte 적용
col2 varchar2(3 byte),
col3 varchar2(3 char)
);
insert into ex2_2 (col1, col2, col3 ) values('abc','abc','abc');
select col1
, lengthb(col1)
, col2
, lengthb(col2)
, col3
, lengthb(col3)
from ex2_2;
insert into ex2_2 (col1, col2, col3) values('오라클', '오라클', '오라클');
이건 오류가 난다.
한글은 한글자에 3바이트라 총 18바이트가 필요하기 때문이다.
insert into ex2_2 (col3) values('오라클');
위의 코딩은 오류가 나지 않는데 이는 col3을 char형태로 데이터 길이를 지정해주었기 때문이다.
테이블 삭제
DROP TABLE 테이블명;
테이블 변경
ALTER TABLE 테이블명 ADDD(컬럼명 데이터타입(사이즈));
ALTER TABLE 테이블명 MODIFY(컬럼명 데이터타입(사이즈));
ALTER TABLE 테이블명 DROP COLUMN 컬럼명
ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 바꿀컬럼명;
1) ADD
INFO 테이블에 새로운 컬럼인 INO_NO을 VARCHAR2(13) 타입으로 추가
ALTER TABLE INFO ADD(INO_NO VARCAHR2(13));
2) MODIFY
INFO 테이블에 INO_NO 컬럼을 VARCHAR2(3) 타입으로 수정
ALTER TABLE INFO MODIFY(INO_NO VARCHAR2(3));
3) DROP
INFO 테이블에서 INO_NO 컬럼을 삭제
ALTER TABLE INFO DROP COLUMN INO_NO;
4) RENAME
INFO 테이블에 INO_NO 컬럼을 No로 변경
ALTER TABLE INFO RENAME COLUMN INO_NO TO No;
'Oracle > SQL' 카테고리의 다른 글
DML(Data Manipulation Language, 데이터조작어) (0) | 2020.06.03 |
---|---|
제약조건 (0) | 2020.06.02 |
시간타입과 NOTNULL (0) | 2020.06.02 |
오라클 제약조건 SQL (0) | 2020.06.02 |
숫자데이터타입 (0) | 2020.06.02 |