1. 가격 정책
- Express (무료. 본 강의에서 사용함) > Personal > Standard(Named User plus / Processor) > Enterprise(Named User plus / Processor)
2. 설치
3. '나 이거 할 줄 알아'를 외치는 최소 단위
- SETUP > CRUD > GROUP > RUN
4. 사용자와 스키마
- 표에 정보를 기록하고 읽는것이 첫째 목적이다. 표가 많아지면 연관된 표를 그룹핑하기 위한 체계가 필요한데 그것을 스키마라고 함.
- 여러 컴퓨터들이 네트워크로 오라클에 접속해 관리. 스키마를 생성하면 사용자가 사용. 사용자가 스키마를 관리.
- 사용자 추가
Microsoft Windows [Version 10.0.19041.746]
(c) 2020 Microsoft Corporation. All rights reserved.
C:\Users\뭉주>sqlplus
SQL*Plus: Release 18.0.0.0.0 - Production on 목 1월 21 08:52:02 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
사용자명 입력: sys AS SYSDBA
비밀번호 입력:
다음에 접속됨:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> CREATE USER mungdo IDENTIFIED BY 비밀번호;
CREATE USER mungdo IDENTIFIED BY 비밀번호
*
1행에 오류:
ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.
SQL> ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;
세션이 변경되었습니다.
SQL> CREATE USER mungdo IDENTIFIED BY 비밀번호;
사용자가 생성되었습니다.
SQL> exit
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0에서 분리되었습니다.
C:\Users\뭉주>sqlplus
SQL*Plus: Release 18.0.0.0.0 - Production on 목 1월 21 08:57:48 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
사용자명 입력: mungdo
비밀번호 입력:
ERROR:
ORA-01045: 사용자 MUNGDO는 CREATE SESSION 권한을 가지고있지 않음; 로그온이
거절되었습니다
사용자명 입력: sys AS SYSDBA
비밀번호 입력:
다음에 접속됨:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> GRANT DBA TO mungdo;
권한이 부여되었습니다.
SQL> exit
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0에서 분리되었습니다.
C:\Users\뭉주>sqlplus
SQL*Plus: Release 18.0.0.0.0 - Production on 목 1월 21 09:03:58 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
사용자명 입력: mungdo
비밀번호 입력:
다음에 접속됨:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
5. 테이블
- 테이블 생성
SQL> CREATE TABLE mungdo.topic(
id NUMBER NOT NULL,
title VARCHAR2(50) NOT NULL,
description VARCHAR2(4000) NOT NULL,
created DATE NOT NULL
);
SQL> SELECT table_name FROM all_tables WHERE OWNER = 'MUNGDO';
TABLE_NAME
--------------------------------------------------------------------------------
TOPIC
* 왜 OWNER 이름은 대문자로 써야할까..?
6. 행추가
SQL> INSERT INTO topic(id, title, description, created)
2 VALUES
3 (1,'ORACLE','ORACLE is ...', SYSDATE);
1 개의 행이 만들어졌습니다.
SQL> INSERT INTO topic(id, title, description, created)
2 VALUES (2,'MySQL','MySQL is ...', SYSDATE);
1 개의 행이 만들어졌습니다.
SQL>
SQL> INSERT INTO topic(id, title, description, created)
2 VALUES (3,'SQL Server','SQL Server is ...', SYSDATE);
1 개의 행이 만들어졌습니다.
SQL> commit;
커밋이 완료되었습니다.
#커밋을 해야 실제 데이터에 반영됨. 트랜젝션이랑 관련있다고 하는데.. 아직 설명 X
7. SQL이란?
- 엑셀 행 추가에 한계가 있음. SQL은 방대한 데이터 저장 가능.
- 명령어를 통해 데이터베이스를 제어할 수 있음.
- 성능이 뛰어남. 명령어로 자동화 할 수 있음.
8. 행 읽기
- topic 테이블 읽기
SQL> SELECT * FROM topic;
ID
----------
TITLE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
CREATED
--------
1
ORACLE
ORACLE is ...
21/01/21
ID
----------
TITLE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
CREATED
--------
2
MySQL
MySQL is ...
21/01/21
ID
----------
TITLE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
CREATED
--------
3
SQL Server
SQL Server is ...
21/01/21
- 보고싶은 것만 보기 (id, title, created)
SQL> SELECT id, title, created FROM topic;
- 보고싶은 것만 보기 (id, title, created) + id가 1번인 행만 보기
SQL> SELECT id, title, created FROM topic WHERE id = 1;
- 정렬 (ORDER BY, DESC, ASC)
SQL> SELECT * FROM topic ORDER BY id DESC;
ID
----------
TITLE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
CREATED
--------
3
SQL Server
SQL Server is ...
21/01/21
ID
----------
TITLE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
CREATED
--------
2
MySQL
MySQL is ...
21/01/21
ID
----------
TITLE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
CREATED
--------
1
ORACLE
ORACLE is ...
21/01/21
- 페이징
SELECT * FROM topic
OFFSET 1 ROWS
FETCH NEXT 2 ROWS ONLY;
> OFFSET n ROWS : n부터 가져오기(0부터 시작)
> FETCH NEXT n ROWS ONLY : n 개 가져오기
>> 1부터 가져와서 2개의 열을 출력
728x90
'코딩 어쩌구 > Data' 카테고리의 다른 글
[edwith] 파이썬을 이용한 웹 스크래핑 (1) (0) | 2021.05.03 |
---|---|
[생활코딩] Oracle (2) (0) | 2021.01.21 |
[생활코딩] MySQL (3) (0) | 2021.01.20 |
[생활코딩] MySQL (2) (0) | 2021.01.19 |
[생활코딩] MySQL (1) (0) | 2021.01.18 |