구트아카데미/6. Oracle

[Oracle] 명령어 정리

sunhoKim 2021. 9. 13. 10:35

자료형

VARCHAR2 문자열 데이터 저장
CHAR 고정 길이 문자열 데이터 저장
NUMBER 숫자 데이터 저장
CLOB 대용량 텍스트 데이터 저장
DATE 날짜 형식 저장
BLOB 이진 데이터 저장
BFILE 데이터 파일 저장

 

테이블 생성

CREATE TABLE TEST( 

ID VARCHAR2(4000),

PW CHAR(10),

NUM NUMBER(2),

NUM2 NUMBER(4,2),

CONTENTS CLOB,

WRITE_DATE DATE,

PRIMARY KEY(ID)

);

 

테이블 생성(복사,데이터)

CREATE TABLE DEPT_T AS SELECT * FROM DEPT;

CREATE TABLE DEPT_T AS SELECT * FROM DEPT WHERE 1!=1; -- 데이터 빼고 복사

 

CREATE TABLE TEST( ID VARCHAR2(4000) NOT NULL ); --NULL 허용 안됨

CREATE TABLE TEST( ID VARCHAR2(4000) UNIQUE ); -- 유일한 값 이지만, NULL 허용

CREATE TABLE TEST( ID VARCHAR2(4000) PRIMARY KEY ); -- 유일한 값, NULL 안돼!

 

CREATE TABLE TEST( ID VARCHAR2(4000) REFERENCES MEMBER(ID)); -- 제약조건 걸기

테이블 칼럼 확인

DESC TEST;

 

테이블 칼럼 업데이트

ALTER TABLE TEST ADD XXX NUMBER(3); --칼럼 추가

ALTER TABLE TEST RENAME COLUMN XXX TO YYY; -- 칼럼 이름 변경

ALTER TABLE TEST MODIFY YYY NUMBER(5); -- 칼럼 수정

ALTER TABLE TEST DROP COLUMN YYY; -- 칼럼 삭제

RENAME TEST TO TEST2; -- 테이블명 변경

 

테이블 칼럼 삭제

DROP TABLE TEST; --테이블 삭제

 

데이터 추가

INSERT INTO TEST VALUES('4','a','가',10); 

INSERT INTO EMP_T (HIREDATE) VALUES ('2021/09/06'); -- 연월일은 넣고 시분초는 0으로 들어감

INSERT INTO EMP_T (HIREDATE) VALUES (SYSDATE); -- 현재 시간 입력

INSERT INTO TEST (ID) VALUES('1');

 

데이터 조회

SELECT * FROM TEST ORDER BY ID; -- ID를 기준으로 정렬

SELECT * FROM TEST ORDER BY ID ASC; -- ID값의 오름차순으로 정렬

SELECT * FROM TEST ORDER BY ID DESC; --ID값의 내림차순으로 정렬

SELECT * FROM TEST WHERE ID >= 1; --ID가 1보다 크거나 같은 데이터를 출력

SELECT * FROM TEST WHERE NUM IS NOT NULL; -- NUM이 NULL 값이 아닌 데이터를 출력

SELECT * FROM TEST WHERE NUM IS NULL; --NUM이 NULL 값인 데이터를 출력

SELECT NO,TITLE,WID,TO_CHAR(DATE_W,'YYYY/MM/DD HH24:MI:SS') FROM BF ORDER BY TITLE ASC, DATE_W DESC; 

-- 정렬을 2개 이상 조건으로

-- 1차로 TITLE을 기준으로 정렬 후 그렇게 정렬된 상태에서 2차로 DATE_W로 정렬

 

데이터 수정 및 삭제

UPDATE TEST SET NUM = 5 WHERE ID = 3; -- ID가 3인 데이터의 NUM 값을 5로 수정

UPDATE TEST SET NUM = 5; -- NUM 값을 전부 5로 수정

DELETE TEST WHERE ID = 6; -- ID가 6인 데이터를 삭제

TRUNCATE TABLE TEST; -- 데이터 싹 지움

 

ALTER TABLE TEST MODIFY NO CONSTRAINT TEST_CR_CK CHECK(NO>0); --새로운 조건 걸기

ALTER TABLE TEST MODIFY( NO CONSTRAINT TEST_CR_CK CHECK(NO>0) ); --새로운 조건 걸기

ALTER TABLE TEST MODIFY NO NUMBER(36) CONSTRAINT TEST_CR_CK CHECK(NO>0); --새로 조건 걸기 + 자료형도 변경

ALTER TABLE TEST MODIFY NO NUMBER(36) DEFAULT 0; --새로 조건 걸기

ALTER TABLE TEST MODIFY ID VARCHAR2(4000) NULL; --널 허용으로 바꾸기

ALTER TABLE TEST DROP UNIQUE(ID); --유니크 조건 없애기

ALTER TABLE TEST DROP PRIMARY KEY; --PK(Primary Key) 조건 없애기

ALTER TABLE TEST DROP CONSTRAINT TEST_CR_CK; --체크 제약조건 없애기

ALTER TABLE TEST MODIFY NO NUMBER(36) DEFAULT NULL; --다시 디폴트를 NULL로 바꾸기

 

 

기타

 

 

728x90