공부/데이터베이스

[데이터베이스] 오라클 기본(자료형, DDL, DML, 연산자)

ghhong 2021. 10. 21. 15:53

DB : 중복제거, 무결성을 위함

 

DDL : create, alter, drop

 

DML : select, insert, update, delete

 

DCL : grant, revoke

 

ㅇ 테이블 스페이스 : 물리적 파일들에 논리적인 테이블들이 저장된다.

 

ㅇ 주석처리 : --

 

ㅇ 데이터 타입 :

. CHARACTER : ‘HELLO’

           CHAR(바이트수) : 고정길이(길이가 같아서 검색이 빠르다.)

(CHAR(2 CHAR)로 사용하면 바이트 수에 상관 없이 2글자로 사용할 수 있지만 NCHAR를 사용함.)

           VARCHAR2(20) : 가변길이(구분자로 구분되어 어디있는지 찾는데 검색이 오래걸림)

           NCHAR(SIZE), NVARCHAR2(SIZE) : N->NAITONAL, 2바이트 3바이트로 UTF문자 표시

           LONG : 2GB까지의 문자열(잘 안씀)

           CLOB : 대용량 텍스트(최대 4GB)

           NCLOB : 대용량 텍스트(UNICODE)

. NUMERIC : 37, 1.42

           NUMBER(4) : 4자리 숫자

           NUMBER(6,2) : 소수점 2자리 포함하는 6자리

           NUMBER : NUMBER(38,*)(최대)

           NUMBER(*, 5) : NUMBER(38,5)       

. DATE : ‘2021-10-01’

. TIMESTAMP : ‘2021-10-01 10.25.22.00000’

 

CREATE TABLE :

CREATE TABLE MEMBER(

ID VARCHAR2(50),

PWD VARCHAR2(50),

NAME VARCHAR2(50),

GENDER VARCHAR2(50),

AGE NUMBER,

BIRTHDAY VARCHAR2(50),

PHONE VARCHAR2(50),

REGDATE DATE);

 

DELETE TABLE

DROP TABLE MEMBER;

 

ALTER TABLE

ALTER TABLE MEMBER MODIFY ID NVARCHAR(50); -- 열 수정

ALTER TABLE MEMBER DROP COLUMN AGE; -- 열 삭제

ALTER TABLE MEMBER ADD EMAIL VARCHAR2(200); -- 열 추가

 

 예약어를 테이블명, 컬럼명으로 사용하고 싶을 때 큰 따옴표로 묶어서 사용한다

CREATE TABLE “COMMENT”

 

INSERT

INSERT INTO MEMBER VALUES( ‘~’, ‘~’, ‘~’, ‘~’, ‘~’);

INSERT INTO MEMBER(ID,PWD) VALUES(‘~’, ‘~’) -> 값이 안 들어간 컬럼에는 NULL값이 들어간다.

 

SELECT

SELECT * FROM MEMBER;

 

ㅇ 컬럼명 바꿔서 출력하기

SELECT ID as USER_ID , NAME, PWD FROM MEMBER; (as는 생략 가능하다 , 공백이 있는 경우 큰따옴표로 묶는다)

 

UPDATE

UPDATE MEMBER SET PWD=’222’;

è 모든 행에 적용된다.

UPDATE MEMBER SET PWD=’333’ WHERE ID=’geonho’;

è 조건을 붙인다.

DELETE

DELETE MEMBER WHERE ID = ‘test’;

 

ㅇ 산술 연산

SELECT 1+’3’ FROM DUAL; (DUAL은 더미테이블) => 4

SELECT ‘3’ || 10 FROM DUAL; => ‘310’

SELECT 1+’a’ FROM DUAL; => ERROR

 

ㅇ 비교 연산

SELECT * FROM NOTICE WHERE WRITER_ID = ‘GEONHO’;

SELECT * FROM NOTICE WHERE HIT>3;

SELECT * FROM NOTICE WHERE CONTENT IS NULL;

 

ㅇ 관계 연산

SELECT * FROM NOTICE WHERE HIT =0 OR HIT=1 OR HIT =2;

SELECT * FROM NOTICE WHERE 0 <= HIT AND HIT <= 2;

SELECT * FROM NOTICE WHERE HIT BETWEEN 0 AND 2;

SELECT * FROM NOTICE WHERE HIT IN (0,1,2);

SELECT * FROM NOTICE WHERE HIT NOT IN (0,1,2);

 

ㅇ 패턴 비교 연산자

SELECT * FROM MEMBER WHERE NAME LIKE%’;

SELECT * FROM MEMBER WHERE NAME NOT LIKE%’;

SELECT * FROM MEMBER WHERE NAME LIKE ‘%%’;

SELECT * FROM MEMBER WHERE NAME LIKE_’; --외자

SELECT * FROM MEMBER WHERE NAME LIKE ‘__’;

 

ㅇ 중복 제거하고 검색하기

SELECT DISTINCT AGE FROM MEMBER; -- 하나의 컬럼을 뽑을 때 이용한다.