i : internet
g : grid (데이터를 표(행렬)로 관리)
c : cloud (가상 데이터 서비스)
- 11 홀수: 안정적/ 12 짝수: 상대적...불안정.. ->회사에 따라서 사용
CHAR(길이) : 고정길이 , 단위는 바이트
VARCHAR(길이) : 오라클에서 존재하지만 사용하지 않는 예비자료형.
VARCHAR2(길이) : 가변형길이 단위 바이트, 길이는 최대길이이고 실제로 메모리는 데이터크기만큼 사용
CLOB : 장문 작성 타입
고정길이는 지정된 만큼 기억공간을 차지합니다. 가변길이는 데이터크기만큼 기억공간 사용하고 최대 크기로 제한.
최대 2000바이트입니다. UTF-8 인코딩에서 한글은 3바이트, 영문/숫자/기호는 1바이트
CREATE TABLE tbl_string(
acol char(10), -- 10 바이트 고정길이 : 데이터를 꼭 10바이트에 저장.
bcol varchar2(10), -- 10 바이트 가변길이 : 데이터 크기에 따라 정해진다.(최대 10바이트)
ccol nchar(10), -- 10개 문자 고정길이
dcol nvarchar2(10) -- 10개 문자 가변길이);
EX) CONSTRAINT CAR_PK PRIMARY KEY(ID)
ID NUMBER PRIMARY KEY - (생성시)
ALTER TABLE tbl# MODIFY COL1 varchar2(30) PRIMARY KEY;
ALTER TABLE tbl# ADD CONSTRAINT TBL#_PK PRIMARY KEY(COL1);
CONSTRAINT 제약조건이름(선택) 제약조건내용
--테이블의 제약조건 이름 확인하기 : 오라클의 시스템 테이블
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS;
CONSTRAINT POT_KF FOREIGN KEY(NAME) REFERENCES FLOWER(FLOWER_NAME)
commit : insert/update/delete 는 저장된 데이터의 변경 작업은 신중해야 합니다. → 최종 변경을 확인(승인)!!!
rollback : insert/update/delete 실행한 명령을 이전 상태로 되돌립니다.
CREATE: 테이블 생성
DROP: 삭제
ALTER: 수정
1) 컬럼 이름 변경 : rename column
2) 테이블 이름 변경 : rename to
3) 새로운 컬럼 추가 : add
4) 컬럼 데이터 형식 변경 : modify
5) 제약 조건 추가 : add constraint
6) 기존 컬럼 삭제 : drop
7) 기존 제약 조건 삭제 : drop constraint 제약조건이름
alter table 테이블명 [변경내용키워드] (변경내용)
1)컬럼 이름 변경 현재이름 to 새로운 이름
ALTER TABLE tbl# RENAME COLUMN coL2 TO col22;
ALTER TABLE tbl# RENAME COLUMN coL22 TO col2;
-컬럼의 기본설정 추가(기존 row(행)들도 값이 추가)된 컬럼5 의 값 100
ALTER TABLE tbl# ADD (column5 NUMBER(5) DEFAULT 100); -- 예 : 기본값 100
- 변경후에 데이터 추가
INSERT INTO tbl#(col1,col2) VALUES ('테스트11','테스트');
- 컬럼추가 : column6 가변문자열(20) 기본값 'guest' 로 변경
ALTER TABLE tbl# ADD (column6 VARCHAR(20) DEFAULT 'guest');
- 아래 데이터 추가 후 확인
INSERT INTO tbl#(col1,col2) VALUES ('게스트1','게스트2');
ALTER TABLE tbl# MODIFY (col2 varchar2(50));
-NOTNULL
ALTER TABLE tbl# MODIFY COL3 VARCHAR2(50) NOT NULL;
-유니크 넣기
ALTER TABLE Persons ADD UNIQUE (ID);
-유니크 여러개 넣기
ALTER TABLE Persons ADD CONSTRAINT UC_Person UNIQUE (ID,LastName)
-ALTER TABLE로 COL1을 PRIMARY KEY로 변경해보기, 후에는 FK도 설정할 수 있어야함
ALTER TABLE tbl# MODIFY COL1 varchar2(30) PRIMARY KEY;
-기본키가 복합컬러명이라면 제약조건 추가 키워드(ADD CONSTRAINT) 써야 함
ALTER TABLE tbl# ADD CONSTRAINT TBL#_PK PRIMARY KEY(COL1);
ALTER TABLE tbl# ADD CONSTRAINT PRIMARY KEY(COLUMN5);
-ADD와 DROP만 있음
ALTER TABLE tbl# DROP CONSTRAINT tbl#_notnull3;
- 제약조건 키워드없는 not null 을 null로 변경할 때
ALTER TABLE tbl# MODIFY COL2 VARCHAR2(50) NULL;
TRUNCATE: 테이블 내용 전체 삭제
--테이블 생성
CREATE TABLE TBL_ANIMAR(
ID NUMBER PRIMARY KEY,
"TYPE" VARCHAR(100),
AGE NUMBER(3),
FEED VARCHAR2(100)
);
--제약조건 삭제
ALTER TABLE TBL_ANIMAR DROP CONSTRAINT SYS_C007006;
--제약조건 추가
ALTER TABLE TBL_ANIMAR ADD CONSTRAINT ANIMAR_PK PRIMARY KEY(ID);
--테이블 삭제
DROP TABLE TBL_ANIMAR;
--조회
SELECT*FROM TBL_ANIMAR;
GENDER CHAR(1) DEFAULT 'W'NOT NULL CONSTRAINT BAN_CHAR CHECK(GENDER = 'M' OR GENDER = 'W')
혹은
CHECK(GENDER IN('M','W'))
DEFAULT - 기본값으로 설정(생성시 생략 가능, 생략 시 지정된 값으로 생성)
NOT NULL - NULL은 될 수 없음
CONSTRAINT - 제약 조건 생성
CHECK- 조건
BIRTH DATE CONSTRAINT BAN_DATE CHECK(BIRTH >= TO_DATE ('1980-01-01', 'YYYY-MM-DD'))
정보 삽입
INSERT INTO TBL_STUDENT
(ID, NAME, MAJOR, GENDER, BIRTH)
VALUES(0, '', '', 'W' , '');
INSERT INTO TBL_STUDENT
(ID, NAME, MAJOR, GENDER, BIRTH)
VALUES(1, '한동석', '컴공', 'M' , TO_DATE ('2000-01-02','YYYY-MM-DD'));
SELECT*FROM TBL_STUDENT;
INSERT INTO TBL_STUDENT
(ID, NAME, MAJOR, BIRTH)
VALUES(2, '홍길동','전자공학과', TO_DATE ('1980-01-02','YYYY-MM-DD')); ->성별이 디폴트 값으로 저장됨
제약 조건 DEFAULT와 CHECK 코드
--학생테이블 생성
CREATE TABLE TBL_STUDENT(
ID NUMBER,
NAME VARCHAR2(100),
MAJOR VARCHAR2(100),
GENDER CHAR(1) DEFAULT 'W' NOT NULL CONSTRAINT BAN_CHAR CHECK(GENDER IN('M','W')),
BIRTH DATE CONSTRAINT BAN_DATE CHECK(BIRTH >= TO_DATE ('1980-01-01', 'YYYY-MM-DD')),
CONSTRAINT STD_PK PRIMARY KEY(ID)
);
INSERT INTO TBL_STUDENT
(ID, NAME, MAJOR, GENDER, BIRTH)
VALUES(1, '한동석', '컴공', 'M' , TO_DATE ('2000-01-02','YYYY-MM-DD'));
SELECT*FROM TBL_STUDENT;
INSERT INTO TBL_STUDENT
(ID, NAME, MAJOR, BIRTH)
VALUES(2, '홍길동','전자공학과', TO_DATE ('1980-01-02','YYYY-MM-DD'));
TRUNCATE TABLE TBL_STUDENT;
check () 괄호 필수
age number(3) CHECK (age BETWEEN 10 AND 30)
모델링: 추상적인 주제를 DB에 맞게 설계하는 것
요구사항 분석: 회원, 주문, 상품- 3가지를 관리하고자 함
개념적 설계(개념 모델링)
필요한 정보 리스트 만들기
논리적 설계(논리 모델링) -
PK, FK… 설계
물리적 설계(물리 모델링) -
이름짓기 (크리에이트 전에 먼저 이름짓기)
참조를 하면 자동으로 테이블끼리 연결됨
CONSTRAINT POT_KF FOREIGN KEY(NAME)
REFERENCES FLOWER(FLOWER_NAME)