자료형
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로 바꾸기
기타
'구트아카데미 > 6. Oracle' 카테고리의 다른 글
[Oracle] 트랜잭션 (0) | 2021.09.07 |
---|---|
[Oracle] 서브쿼리 (0) | 2021.09.06 |
[Oracle] 등가 조인 , 비등가 조인 (0) | 2021.09.03 |
[Oracle] 특정 문자를 지우는 TRIM,LTRIM,RTRIM (0) | 2021.09.02 |
[Oracle] 두 문자열 데이터를 합치는 CONCAT (0) | 2021.09.02 |