오라클 - 사용자 생성부터 CRUD까지 - 1
카테고리: Oracle
⭐ 사용자 생성하기
먼저 SQL Plus에서 Administrator로 접속한다.
sys AS SYSDBA
그 후 사용자를 생성한다.
CREATE USER junyihong IDENTIFIED BY 0000;
// 오류 발생 : 아이디 앞에 c##을 붙이도록 네이밍 규칙이 바뀌었다.
오라클 12C버전부터 등장하는 CDB, PDB 개념 때문.
C##을 붙이고 싶지 않다면 다음 명령어를 입력한다.
alter session set "_ORACLE_SCRIPT" = true;
이후 SQL Plus 종료후 재진입.
junyihong, 0000 으로 로그인해본다.
//오류발생 : CREATE SESSION 권한을 갖고있지 않음. 권한부여를 해줘야 함!
CMD로 진입 후 권한부여 명령어 입력.
GRANT DBA TO junyihong;
// junyihong 계정에 최고 권한인 Data Base Administrator 권한을 부여한다.
이후 SQL Plus로 진입해서 junyihong으로 접속해보면 오류가 발생하지않고 접속 성공.
⭐ Table 만들기
DBA권한을 받은 계정으로 로그인해서 표를 만들어보자.
표의 이름은 topic이며, id, title, description, created를 목차로 갖는다.
SQL Plus에서 다음 명령어를 입력
CREATE TABLE topic (
ID NUMBER NOT NULL,
TITLE VARCHAR2(50) NOT NULL,
DESCRIPTION VARCHAR2(2000),
CREATED DATE NOT NULL
);
- ID는 숫자(NUMBER) 이며, 비울 수 없다. (NOT NULL)
- TITLE은 문자형(VARCHAR2)이며, 50글자 이내이고 비울 수 없다. (NOT NULL)
- DESCRIPTION은 문자형(VARCHAR2)이며, 2000글자 이내이다.
- CREATE는 날짜형(DATE)이며, 비울 수 없다. (NOT NULL)
오류가 발생하지 않는다면 테이블이 생성되었다는 문구가 출력된다.
⚠️이후 커밋을 해야한다
commit;
⭐ 만든 테이블 조회하기
SELECT table_name FROM all_tables WHERE OWNER = 'JUNYIHONG';
⚠️ 아이디를 소문자로 써서 오류발생… ‘JUNYIHONG이 오너인 테이블들에서 테이블네임을 가져와라’라는 의미
⭐ 테이블에 CRUD (create, read, update, delete) 하기
1. 행 추가하기
INSERT INTO topic
(id, title, description, created)
VALUES
(1, 'ORACLE', 'ORACLE is ...', SYSDATE);
INSERT INTO topic
(id, title, description, created)
VALUES
(2, 'MySQL', 'MySQL is ...', SYSDATE);
INSERT INTO topic
(id, title, description, created)
VALUES
(3, 'SQL Server', 'SQL Server is ...', SYSDATE);
commit;
⚠️SYSDATE를 ‘SYSDATE’라고 적어서 오류발생…
📰 결과물의 모습
id | title | description | created |
---|---|---|---|
1 | ORACLE | ORACLE is … | 2023-04-21 |
2 | My SQL | MySQL is … | 2023-04-21 |
3 | SQL Server | SQL Server is … | 2023-04-21 |
2. 행 읽기
SELECT * FROM topic;
// topic 테이블의 모든 행렬을 가져온다.
SELECT id, title, created FROM topic;
// topic 테이블의 아이디, 타이틀, 만든날짜를 선택해서 가져온다.
SELECT * FROM topic WHERE id > 1;
// 아이디가 1인 행 만을 가져온다.
SELECT * FROM topic WHERE id > 1;
// 아이디가 1보다 큰 행만을 가져온다.
SELECT id, title, created FROM topic WHERE id = 1;
// 아이디가 1인 행에서 아이디, 타이틀, 만든날짜를 가져온다.
3. 정렬하기
SELECT * FROM topic ORDER BY id DESC;
// 내림차순 / Descent 하강
SELECT * FROM topic ORDER BY id ASC;
// 오름차순 / Ascent 상승
SELECT * FROM topic OFFSET 1 ROWS;
// OFFSET 1은 0번째 이후에 있는 행들만 가져온다는 뜻. // === 첫번째 이후에 있는 행들만 가져온다.
SELECT * FROM topic OFFSET 1 ROWS FETCH NEXT 2 ROWS ONLY;
// OFFSET 0 은 다 가져오겠다는 의미이고 OFFSET 1은 첫번째 이후의 행들을 가져온다는 뜻.
// FETCH NEXT 2 ROWS ONLY 은 OFFSET 1 이후에서 오직 두개의 행만을 가져온다는 뜻.
4. 업데이트하기 (수정하기)
UPDATE topic
SET
title = 'MSSQL',
description = 'MSSQL is ...'
WHERE
id = 3;
commit;
⚠️ UPDATE문과 DELETE문은 WHERE문이 없다면 이상한거라고 생각하기 / 없으면 전체적용됨!!!
5. 삭제하기
DELETE FROM topic WHERE id = 3;
// id값이 3인 행을 삭제한다.
댓글 남기기