오라클 1일차

0

오라클 PDB 서버에 접속하기


  • PDB :
  • CDB :

MEMBER Table 생성하기

  • DDL
    • CREATE(정의) / ALTER(수정) / DROP(삭제)
  • DML
    -INSERT / SELECT / UPDATE / DELETE
  • DCL
    - GRANT / REVOKE

오라클 SQL 데이터 형식(문자열 형식)

  • Oracle SQL Data Types
    • Character 문자
    • Numeric 숫자
    • Date 날짜
    • TIMESTAMP 날짜+시/분/초

<Character 형식>

  • CHAR[(size[BYTE|CHAR])]

    • 고정길이 데이터
    • 데이터의 길이가 고정되어있을 경우 쓴다.
    • 검색속도가 빠르다.
  • VARCHAR2(size[BYTE|CHAR])

    • 가변길이 데이터
    • ID같이 데이터의 길이가 가변적인 경우에 쓴다.
    • 검색속도가 느리다.
  • NCHAR[(size)]

  • NVARCHAR2(size)

    • 영어나 숫자가 아닌 다른 나라의 문자를 삽입할 때는 NCHAR, NVARCHAR2 형식을 쓰는 것이 바람직하다.
  • 영어는 한 문자당 1BYTE를 사용하지만 한글은 3BYTE를 사용하기에 만약 사람이라는 단어를 저장하려면 6BYTE의 사이즈가 필요하다.

  • LONG : 2GB까지 표시

  • CLOB : 대용량 텍스트 데이터 타입(최대 4GB)

  • NCLOB : 대용량 텍스트 유니코드 데이터 타입(최대 4GB)

오라클 SQL 데이터 형식(숫자/날짜 형식)

<Numeric 형식>

  • NUMBER [(P [,S])]

    1~22 BYTES 필요 / p : 1~38 / s : -84~127

- NUMBER(4) :최대 4자로 이루어진 숫자
- NUMBER(6, 2) :소수점 2자리를 포함하는 최대 6자리(소수점 둘째 자리에서 반올림)
- NUMBER(6, -2) :소수점 -2자리에서 반올림하는 최대 6자리의 숫자
- NUMBER : NUMBER(38,*)
- NUMBER(*, 5) : NUMBER(38,5)

<Date 형식>

  • DATE : 연-월-일
  • TIMESTAPE : 연-월-일-시-분-초

테이블 수정하기

  • ALTER TABLE (테이블 이름) MODLFY/DROP/ADD (수정사항)
ALTER TABLE MEMBER MODIFY ID NVARCHAR2(50); -- 수정
ALTER TABLE MEMBER DROP COLUMN AGE; -- 삭제
ALTER TABLE MEMBER ADD EMAIL VARCHAR2(200); -- 추가

데이터 조작하기 DML

  1. INSERT
    INSERT INTO <테이블> VALUES <값목록>
  • 원하는 필드만, 원하는 순서대로 입력하기
    INSERT INTO MEMBER(ID, PWD) VALUES('TT', '111);
  • 값을 넣지않는 공간에는 NULL값이 들어감
INSERT INTO MEMBER(ID, PWD) VALUES('newlec', '111');
INSERT INTO MEMBER(ID, PWD) VALUES('dragon', '112');

SELECT ID AS USER_ID, PWD FROM MEMBER
-- ID를 USER_ID로서 표시된다.
-- AS는 생략해도 된다.
  1. UPDATE
    UPDATE <테이블> SET <수정사항> WHERE <조건>

트랜잭션 처리를 위한 commit/rollback

<트랜잭션>

  • 업무의 실행단위 ex) 계좌이체, 이벤트 게시글 등록
  • 원자성, 일관성, 격리성, 영속성

LOCK -- 그동안 다른 세션이 건드리지 못하도록 LOCK
update -- 현재 세션을 위한 임시저장소에서 테스트
update
UNLOCK

commit

  • 보류중인 모든 데이터 변경사항을 영구적으로 적용, 현재 트랙잭션 종료

rollback

  • 보류중인 모든 데이터 변경사항을 폐기. 현재 트랜잭션 종료, 직전 커밋 직후의 단계로 회귀

연산을 통한 데이터 조회

<산술 연산자>
+, -, *, /
SELECT 1+'3' FROM DUAL;

  • 오라클에서는 '3'은 숫자로 변환되어 4가 된다.
  • 오라클에서의 산술연산자는 무조건 숫자만 연산이 된다.

문자열 더하기 연산자 : ||
ex) 모든 회원의 이름을 조회하시오. 단 이름은 ID를 붙여서 나타내시오
SELECT NAME || '('||ID||')' NAME FROM MEMBER;

<비교 연산자>
=, !=,^=, <>(같지않다), >, <, >=, <=, IS NULL, IS NOT NULL

SELECT * FROM NOTICE WHERE WRITER_ID = 'new';
SELECT * FROM NOTICE WHERE HIT > 3;
SELECT * FROM NOTICE WHERE CCONTENT IS NULL;

<관계 연산자>
NOT , AND, OR, BETWEEN, IN

-- 아래 세줄은 모두 같은 쿼리
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;
  • 연속되지 않은 조건을 가질 때 --> IN연산자 사용
SELECT * FROM NOTICE WHERE HIT=0 OR HIT=1 OR HIT=2;

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

<패턴 연산자>
LIKE, %, _(자리수 한정)

-- 회원 중에서 '박'씨 성을 조회하시오.
SELECT * FROM MEMBER WHERE NAME LIKE '박%';
-- 회원 중에서 '박'씨이고 이름이 외자인 회원을 조회하시오.
SELECT * FROM MEMBER WHERE NAME LIKE '박_';
-- 회원 중에서 '박'씨 성을 제외한 회원을 조회하시오.
SELECT * FROM MEMBER WHERE NAME NOT LIKE '박%';
-- 회원 중에서 이름에 '도'자가 들어간 회원을 조회하시오.
SELECT * FROM MEMBER WHERE NAME LIKE '%도%';

정규식을 이용한 패턴 연산

0개의 댓글