2 분 소요

⛅ 시작하기 앞서

◾ 사용자와 스키마 생성

cmdsqlplus 입력 후 엔터 sys AS SYSDBA로 접속

CREATE USER ann IDENTIFIED 111111;

◾ 사용자에게 권한 부여

sys AS SYSDBA로 접속

GRANT DBA TO ann;

exit 후 ann(password: 111111)으로 로그인 가능

⛅ Oracle 기본 문법

◾ table 생성하기

CREATE TABLE topic (
	id NUMBER NOT NULL,
	title VARCHAR2(50) NOT NULL,
	description VARCHAR2(4000),
	created DATE NOT NULL
);

◾ table 조회하기

CREATE TABLE topic (
	id NUMBER NOT NULL,
	title VARCHAR2(50) NOT NULL,
	description VARCHAR2(4000),
	created DATE NOT NULL
);

◾ 데이터를 insert 하기

INSERT INTO topic
	(id,title,description,created)
	VALUES
	(1,'ORACLE','ORACLE is ...',SYSDATE);

◾ commit 하기

무엇인가를 수정했다면 반드시 커밋하기!

commit;

◾ table 조회하기

◽ 모든 row와 column을 가져오기

SELECT * FROM topic;
);

◽ 특정 column만 가져오기

CREATE TABLE topic (
SELECT id,title,created FROM topic;
);

◽ 특정 row만 가져오기

SELECT * FROM topic WHERE id = 1;
SELECT * FROM topic WHERE id > 1;

◽ 특정 row와 column만 가져오기

SELECT id,title,created FROM topic WHERE id = 1;

◽ 정렬하기

SELECT * FROM topic ORDER BY id DESC;
SELECT * FROM topic ORDER BY title ASC;

DESC: Descend (큰 수가 먼저) ASC: Ascend (작은 수가 먼저)

◾ update 하기

UPDATE topic
	SET
	  title = 'MSSQL',
	  description = 'MSSQL is ...'
	WHERE
	  id = 3;

◽ date의 입력포멧 지정해서 update (24시간 형식/12시간 형식)

UPDATE animal_ins
    SET
        datetime = TO_DATE('2018-01-22 14:32:00', 'YYYY-MM-DD HH24:MI:SS' )
    WHERE
        name = 'Sugar';
UPDATE animal_ins
    SET
        datetime = TO_DATE('2017-03-06 03:01:00', 'YYYY-MM-DD HH:MI:SS' )
    WHERE
        animal_id = 'A30375';

◾ delete 하기

◽ 특정 행 삭제하기

DELETE FROM topic WHERE id = 3;

◽ 모든 행 삭제하기

DELETE FROM topic;

◽ 표 자체를 삭제하기

DROP TABLE topic;

⛅ Primary Key와 시퀀스

◾ Primary Key

Primary key를 추가하면 ID 값이 table 안에서 유일무의한 값일때만 INSERT 명령을 실행할 수 있다. <hr> (Primary key는 table을 create 할 때 추가하는게 좋음)

CREATE TABLE topic (
	id NUMBER NOT NULL,
	title VARCHAR2(50) NOT NULL,
	description VARCHAR2(4000),
	created DATE NOT NULL,
	CONSTRAINT PK_TOPIC PRIMARY KEY(id)
);

(CONSTRAINT PK_TOPIC PRIMARY KEY(id,title)이라고 한다면 id와 title이 묶여서 primary key가 됨)

◾ 시퀀스

새로운 행을 생성할 때 가장 최근에 들어온 id를 확인하고 넣기는 너무 번거롭다.

◽ 시퀀스 생성하기

CREATE SEQUENCE SEQ_TOPIC;

◽ 시퀀스를 이용해 Primary Key값 생성하기

방금 생성한 시퀀스를 이용해 새로운 데이터를 CREATE 할 때, 자동으로 1씩 증가시키는 primary key값을 만들 수 있다.

INSERT INTO topic
	(id,title,description,created)
	VALUES
	(SEQ_TOPIC.NEXTVAL,'MongoDB Server','MongoDB Server is ...',SYSDATE);

◽ 현재 가지고 있는 시퀀스 값 확인

SELECT SEQ_TOPIC.CURRVAL FROM topic;
SELECT SEQ_TOPIC.CURRVAL FROM DUAL;

다음에 붙여질 번호는 현재 시퀀스값 + 1 이다.
DUAL이라는 가상의 특수한 table을 적으면 시퀀스 값이 한번만 나온다.

⛅ 마무리 하며

이 글은 sqlplus를 이용하며 작성했지만, sqlplus의 가독성이 좋지 않기 때문에 앞으로는 대체제인 SQL Developer를 사용할 예정이다.

⛅ 참고



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기