Roel Notebook

[Oracle] SQL 명령어 정리 (1)

by Roel Downey

DB

728x90
반응형

Oracle Data Types

character 형식 :  ' 작은 따옴표 (single quotation) ' 를 사용한다. 

numeric 형식 :  38

data 형식  :  Date '2020-02-09'   

                    Timestamp '2020-02-09 10.38.29.00000'  시 분 초

 

LOB 형식 : Large Object 타입

 

character 형식

 

 

char(3)   -- 문자 3바이트 저장하겠다.

SELECT LENGTH('A') FROM DUAL;  -- 1 글자 갯수 
SELECT LENGTH('하') FROM DUAL;  -- 1 

SELECT LENGTHB('하') FROM DUAL; -- 3 글자 사이즈 
SELECT LENGTHB('A') FROM DUAL;  -- 1

 

기본은 바이트로 저장이 되고

char(3 char)  -- 3개의 문자를 저장하겠다. 

 

char   : 고정길이 : 예) 주민번호 , 장점: 빠르다. 단점: 메모리 낭비가 된다.

varchar2 : 가변길이 : 예) 주소 , 장점 : 메모리 낭비가 없다. 단점 : 느리다.

 

nchar : 다국어를 활용한 고정 문자

nvarchar2 : 다국어를 활용한 가변 문자

 

LONG  : 가변길이의 문자열을 저장 , 최대 2기가 까지 , 한 테이블에 하나만 사용 할 수 있다.

CLOB : 대용량 테스트 데이터 타입 , 한 테이블에 여러개가 올수 있다. , 최대 4기가 

NCLOB : 대용량 텍스트 유니코드 데이터 타입 , 최대 4기가

 

numeric 형식

NUMBER(4) : 최대 4자리 숫자

NUMBER(6,2) : 소수점 2자리를 포함한 최대 6자리의 숫자. (소수점 둘째 자리에서 반올림)

 

INSERT INTO MEMBER(AGE) VALUES(123234.36); -- 불가능 , 소수점은 반올림을 하지만 앞에 숫자는 버릴수가 없기때문에 안된다.

INSERT INTO MEMBER(AGE) VALUES(1234.36); -- 가능

INSERT INTO MEMBER(AGE) VALUES(1234.362); -- 가능

INSERT INTO MEMBER(AGE) VALUES(1234.36555); -- 가능

 

DATE 형식

DATE  : 날짜

TIMESTAMP :  기준의 나라가 어디인가에 따라서 시간이 다르다. 

 

주석

한 줄 주석은 : --

여러 줄 주석은 : /* */

테이블 생성하기 : create

create table 테이블이름

(

    칼럼명 자료형

};

 

예약어를 테이블 명으로 작성하고 싶다면 큰 따옴표 (Double quotation) 를 붙여준다.

 - 예 ) COMMENT 예약어를 사용하려면 create table "comment" ( );

 

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 
); 

 

테이블 수정

ALTER TABLE MEMBER MODIFY ID NVARCHAR2(50); 

: 테이블명이 MEMBER ID를 NVARCHAR2(50)으로 수정하겠다.

 

ALTER TABLE MEMBER DROP COLUMN AGE;

: 테이블명이 MEMBER 칼럼 나이를 삭제하겠다.

 

ALTER TABLE MEMBER ADD EMAIL VARCHAR2(1000);

: 테이블명이 MEMVER 이메일 칼럼을 VARCHAR2(1000)으로 추가하겠다.

 

테이블 삭제

DROP TABLE MEMBER;

 

 

데이터 삽입 : INSERT

INSERT INTO <테이블명> VALUES <값목록>

 

모든 필드 값을 입력하기

INSERT INTO 테이블명 VALUES(순서대로 빠짐없이 값을 적어준다);

 

원하는 컬럼만, 원하는 순서대로 입력하기

INSERT INTO 테이블명(컬럼,컬럼1) VALUES(컬럼값,컬럼1의값);

 

INSERT INTO MEMBER(ID,PWD) VALUES('ROEL',5555);
-- 삽입은 되었지만 적용은 안되었다. 
-- INSERT , UPDATE , DELETE 는 COMMIT 을 해야지 적용이 된다. 
COMMIT;
-- 실수로 입력을 했을때 , COMMIT 하고 싶지 않을때
ROLLBACK;


처리해주지 않아도 자동으로 COMMIT, ROLLBACK 되는 경우


-- 자동 COMMIT : CREATE , ALTER, DROP , GRANT, REVOKE
-- 자동 ROLLBACK : 비정상적인 종료, SYSTEM FAILURE 

 

데이터 조회 : select

SELECT * FROM MEMBER;


원하는 컬럼만 원하는 순서대로 조회하기 : EX ID,NAME,PWD

SELECT ID,NAME,PWD FROM MEMBER;


원하는 컬럼을 원하는 별칭으로 조회하기

SELECT ID AS USER_ID,NAME,PWD AS PASSWORD FROM MEMBER;



원하는 컬럼을 원하는 별칭으로 조회하기 (as를 빼도 된다.)

SELECT ID USER_ID,NAME,PWD PASSWORD FROM MEMBER;

 

 

 

 

728x90
반응형

'DB' 카테고리의 다른 글

[Oracle] SQL 명령어 정리 (3)  (0) 2020.04.23
[Oracle] SQL 명령어 정리 (2)  (0) 2020.04.23
[MySQL] 집계함수 정리  (0) 2020.04.06
[DB] SQL 이론 정리  (0) 2020.04.06
[SQL] H2 Database 설정 이름 삭제후 초기 상태로 되돌리기  (1) 2020.03.24

블로그의 정보

What doing?

Roel Downey

활동하기