본문 바로가기

유익한 정보

'SQL Developer' 배우기(이것이 오라클이다)

반응형


스프링 프레임워크를 배우면서 선생님께서 우리에게 가르쳐주신 DB는 오라클 SQL이었다.

흔히 'SQL Developer'라고 부르는 '오라클 SQL' DB는 My SQL과 비슷해 사용하기가 어렵지 않았다.

나는 'SQL Developer'를 잘 배우고 싶은 마음에 도서관에 가서 책을 한권 빌려왔다.

그것은 바로 '한빛미디어'에서 출판된 '이것이 오라클이다'라는 책으로 오라클 설치에서부터 그 사용법이 자세하게 소개되어 있다.

나는 책꽂이에 수없이 꽂혀 있는 오라클DB관련 책들 중에서 이 책을 선택했다.

다음의 내용은 잊지 않기 위해 위 책을 토대로 정리해 놓은 'SQL Developer'의 중요한 내용들이다.


'SQL Developer'에 데이터를 입력해서 테이블을 만드는 예!

CREATE TABLE userTBL(   --회원테이블

userID  CHAR(8) NOT NULL PRIMARY KEY, --사용자 아이디(PK)

userName  NVARCHAR(10) NOT NULL, --이름

birthYear  NUMBER(4) NOT NULL, --출생년도

addr  NCHAR(2) NOT NULL, --지역(경기, 서울, 경남 식으로 2글자만 입력)

mobile1  CHAR(3), --휴대폰국번(010)

mobile2  CHAR(8), --휴대폰의 나머지 번호(하이픈 제외)

hight  NUMBER(3), --키

mDate  DATE --회원가입일

);

CREATE TABLE buyTBL(  --회원구매 테이블

idNum  NUMBER(8) NOT NULL PRIMARY KEY,  --순번(PK)

userID CHAR(8) NOT NULL,  --아이디(FK)

prodName  NCHAR(6) NOT NULL, --물품명

groupName NCHAR(4), --분류

price NUMBER(8) NOT NULL, --단가

amount NUMBER(3) NOT NULL, --수량

FOREIGN KEY (userid) REFERENCES usereTBL(userID)

);

그러면 결과창에 다음과 같은 메시지가 뜰 것이다.

Table USERTBL이(가) 생성되었습니다.

Table BUYTBL이(가) 생성되었습니다.


이를 위해 데이터를 입력할 때는

INSERT INTO userTBL VALUES('LSG', '이승기', 1987', '서울', '010', 78961234', 182, '2018-8-10');

이런 식이다.

한편, 구매 테이블(buyTBL)에 데이터를 입력하기 위해서는 시퀀스(SEQURNCE)를 생성해야 한다.


CREATE SEQUENCE idSEQ; --순차번호 입력을 위해서 시퀀스 생성

INSERT INTO buyTBL VALUES(idSEQ.NEXTVAL, 'KBS', '운동화', NULL, 30, 2);

시퀀스는 순차적으로 값이 증가하는 데이터베이스 개체이다. 

시퀀스이름: NEXTVAL은 1부터 2, 3, 4... 로 값이 계속 증가한다.

문자형 (CHAR, VARCHAR2,  NCHAR, NVARCHAR2)에 데이터를 입력하려면 작은 따옴표(')로 묶어줘야 한다.


참고로 CHAR와 VARCHAR2는 영문자를 기준으로 1Byte를 할당하고 NCHAR와 NVARCHAR2는 유니코드를 기준으로 2Byte를 할당한다.

그래서 영문자를 입력할 거라면, CHAR와 VARCHAR2를, 한글을 입력할 거라면, NCHAR와 NVARCHAR2를 사용하면 된다.

또 NUMBER(자릿수)는 정수형을 표현하고 DATE는 날짜형을 표현한다. 


입력한 데이터를 커밋하고, 데이터를 확인한다.

COMMIT;

SELECT * FROM userTBL;

SELECT * FROM buyTBL;

그러면 결과창에서 테이블을 확인할 수 있을 것이다.


이제, 이 테이블들을 가지고 새로운 테이블을 만들어보자.

CREATE TABLE buyTBL2 AS (SELECT * FROM buyTBL);

SELECT * FROM buyTBL2;

이 명령문은 buyTBL을 buyTBL2로 복사하는 구문이다.

필요하다면 지정한 일부분만 복사할 수도 있다.

CREATE TABLE buyTBL3 AS (SELECT userID, prodName FROM buyTBL);

SELECT * FROM buyTBL3;





반응형