웹쟁이의 일상

오라클(Oracle) 쿼리문 정리 본문

Database

오라클(Oracle) 쿼리문 정리

jellyChoi 2019. 5. 6. 02:30

안녕하세요. 오늘은 오라클 db 각종 쿼리문에 대해 포스팅해보겠습니다.

 

저번 포스팅에서 관리자 계정으로 로그인 후 유저 생성 및 권한 부여에 대해 살짝 설명을 드렸었는데요,

 

궁금하신분들은 아래 포스팅을 확인해주세요~

 

오라클(Oracle) Database 11g 다운로드 및 SQL Developer 설치

데이터베이스(Database)는 여러가지가 있지만 크게 Oracle, Mysql, Mssql 이 세가지를 많이 쓰는것 같습니다. 오늘은 그 중 하나인 오라클(Oracle) 데이터베이스를 설치해보겠습니다. https://www.oracle.com/ Ora..

newehblog.tistory.com

 

1. 테이블 생성

 

우선 테이블 생성에 대해 알아보겠습니다.

 

사용자(User)테이블을 만든다고 가정하고 생성하겠습니다.

 

CREATE TABLE [사용할 테이블명](

    user_idx number primary key,

    id varchar2(20) not null,

    name varchar2(20) not null,

    password varchar2(20) not null,

    email varchar2(50),

    address varchar2(200),

);

 

명령어를 실행하니 테이블이 생성되었습니다.

 

USER_IDX는 PRIMARY KEY값으로 사용할 예정이니 여기에 사용할 시퀀스를 생성해주겠습니다.

 

CREATE SEQUENCE USER_SEQ;

방금 만든 테이블의 컬럼들을 확인해보겠습니다.

 

DESC [생성한 테이블명]

 

만 입력해주시면 됩니다.

 

2. INSERT문

 

테이블을 생성했으니 데이터를 몇개 집어넣어 보겠습니다.

 

그러려면 데이터를 추가하는 쿼리문을 알아야겠죠?

 

INSERT INTO [테이블명](column1, column2, ...) VALUES(data1, data2, ...)

 

기본 INSERT 쿼리문입니다.

데이터가 삽입되었습니다.

 

commit은 데이터를 삽입, 수정, 삭제같은 트랜잭션 처리의 내용 업데이트를 한 후,

 

처리가 완료되었다고 확정을 지어주는 개념의 명령어입니다.

 

반대로 rollback은 작업 단위 또는 세이브포인트 내에서 작성된 테이터베이스 변경사항을 취소하는 데 사용됩니다.

 

2. select문

 

데이터베이스를 다루는데 가장 많이 쓰인다고 볼 수 있는 select(조회)문입니다.

 

일단 방금 생성한 테이블을 조회해보겠습니다.

 

SELECT * FROM TBL_USER;

샘플 데이터를 3개정도 집어넣고 조회를 해보았습니다.

 

데이터가 여기저기 드래곤볼처럼 널부러져있는 느낌이니 저번포스팅에서 설치한 sql developer를 이용해보겠습니다.

 

데이터가 잘 나오네요. 패스워드는 원래 저렇게 뜨면 안되지만 지금은 sql연습중이기 때문에

 

암호화에 대한 부분은 나중에 기회가 되면 다뤄보겠습니다.

 

이렇게 모든 데이터를 뽑아오는 쿼리문은 아주 간단하지만

 

우리는 좀 더 세부적으로, 원하는 데이터만 골라서 가져오는 능력이 있어야 합니다.

 

기본적으로 

 

SELECT [컬럼명] 

FROM [테이블명]

WHERE [조건]

ORDER BY [컬럼];

 

이런 포맷을 가지고 있다고 보면 되겠습니다.

 

우리가 원하는 데이터를 가지고 오려면 WHERE절의 조건을 잘 활용해야 합니다.

 

아래는 TBL_USER라는 테이블에서 ID가 tistory인 사람의 이름과 주소를 가지고 오는 쿼리문입니다.

SELECT NAME, ADDRESS

FROM TBL_USER

WHERE ID = 'tistory' 

ORDER BY USER_IDX ASC;

다음은 id에 webjang이 들어가는 유저들을 조회하는 쿼리문입니다.

 

SELECT * FROM TBL_USER WHERE ID LIKE '%web%';

위의 LIKE절의 %web%은 id에 web이라는 문자열이 포함되는 유저들을 골라오라는 조건입니다.

 

%의 위치에 따라 web으로 시작하거나(web%), web으로 끝나는(%web) 조건을 붙여줄 수 있습니다.  

 

지금은 테이블이 간단해서 쿼리문이 아주 짧게 끝나지만

 

데이터가 복잡해지고, 조건을 어떻게 설정하느냐에 따라 어마어마하게 길어지는 쿼리문을 볼 수도 있습니다.

 

 

3. update문

 

다음은 데이터를 수정할 수 있는 update문입니다.

 

UPDATE [테이블명] 

SET 

    컬럼1='값1',

    컬럼2='값2' 

WHERE 조건

 

update문에서 가장 중요한 점은 where절이라고 할 수 있는데,

 

where절 조건을 주지 않는다면 테이블의 모든 행의 데이터가 다 수정됩니다.

 

방금 조회한 홍길동의 주소를 바꿔보겠습니다.

 

NAME이 홍길동이고 ID가 TISTORY인 유저의 주소를 전라남도 순천시 매산동을 바꿔주는 쿼리문입니다.

 

UPDATE TBL_USER
SET
    ADDRESS = '전라남도 순천시 매산동'
WHERE 
    USER_IDX = (
        SELECT USER_IDX 
        FROM TBL_USER 
        WHERE 
            NAME='홍길동' AND 
            ID='tistory'
        );

 

WHERE절의 ()안의 SELECT문은 서브쿼리라고 하는데, 조건절에서 SELECT문을 넣어줘서 값을 가지고 오는 것입니다.

 

서브쿼리에 대해서는 나중에 자세하게 다뤄보겠습니다.

 

일단 쿼리문을 실행시켜줍니다.

쿼리를 실행시키니 성공적으로 UPDATE가 완료되었습니다.

 

완료되었으니 COMMIT을 해주고 다시 조회를 해보겠습니다.

데이터가 성공적으로 수정되었습니다.

 

4. delete문

 

다음은 데이터를 삭제할 수 있는 delete문 입니다.

 

사실 실무에서는 웬만하면 delete를 하지 않고 데이터를 보존하기 위해 데이터베이스에는 존재하지만

 

사용자 눈에 보이지 않게 update를 해서 삭제를 한 척(?)하는 방법을 이용합니다.

 

DELETE FROM [테이블명] WHERE 조건

 

기본 쿼리문입니다. 아까 만들어둔 홍길동이라는 유저를 삭제해보겠습니다.

 

DELETE FROM TBL_USER WHERE NAME='홍길동';

삭제를 하고 커밋을 한 뒤 조회를 해보겠습니다.

 

홍길동이라는 유저가 사라졌습니다. 역시 동에번쩍 서에번쩍 나타났다 사라졌다 신출귀몰한 유저였네요.

 

여기까지 오라클 쿼리문에 대해서 포스팅을 해보았습니다.

 

오늘은 아주 간단한 쿼리문에 대해서만 다뤄봤는데, 나중에 복잡한 쿼리문이 필요하게 되면

 

더 자세하게 글을 쓰는 시간을 가져보도록 하겠습니다.

 

중간중간 쓸데없는 잡담이 조금 있는 것 같은 기분이 있기도 하지만 

 

지금까지 부족한 포스팅 읽어주셔서 감사합니다. 더 좋은 글로 찾아오겠습니다.

 

 

 

Comments