DB2020. 10. 10. 13:48

1. 사용자 생성 및 권한 부여

-- 1.  사용자 생성
CREATE USER asl IDENTIFIED BY [비밀번호]
DEFAULT tablespace USERS
TEMPORARY tablespace TEMP;

-- 2. 권한부여
GRANT RESOURCE, CONNECT TO asl

 

2.1. 경기결과 테이블 생성

-- ASL."RESULT" definition

CREATE TABLE "RESULT" 
   ("SEASON" NUMBER NOT NULL ENABLE, 
"ROUND" NUMBER NOT NULL ENABLE, 
"GAME" NUMBER(1,0) NOT NULL ENABLE, 
"PLAYER_1_ID" VARCHAR2(100) NOT NULL ENABLE, 
"PLAYER_1_NAME" VARCHAR2(100), 
"PLAYER_2_ID" VARCHAR2(100) NOT NULL ENABLE, 
"PLAYER_2_NAME" VARCHAR2(100), 
"WINNER_ID" VARCHAR2(100), 
"DATE" DATE, 
"UPPER_SRG" VARCHAR2(100), 
 CONSTRAINT "RESULT_PK" PRIMARY KEY ("SEASON", "ROUND", "GAME")
   );

   COMMENT ON COLUMN "RESULT"."SEASON" IS '시즌';
   COMMENT ON COLUMN "RESULT"."ROUND" IS '강';
   COMMENT ON COLUMN "RESULT"."GAME" IS '경기';
   COMMENT ON COLUMN "RESULT"."PLAYER_1_ID" IS '선수1 아이디';
   COMMENT ON COLUMN "RESULT"."PLAYER_1_NAME" IS '선수1 이름';
   COMMENT ON COLUMN "RESULT"."PLAYER_2_ID" IS '선수2 아이디';
   COMMENT ON COLUMN "RESULT"."PLAYER_2_NAME" IS '선수2 이름';
   COMMENT ON COLUMN "RESULT"."WINNER_ID" IS '승자 아이디';
   COMMENT ON COLUMN "RESULT"."DATE" IS '경기 날짜';
   COMMENT ON COLUMN "RESULT"."UPPER_SRG" IS '상위_게임유일값(SEASON_ROURND_GAME)';
   COMMENT ON TABLE "RESULT"  IS '경기결과';

 

2.2. 경기결과 데이터 INSERT(8강, 4강, 결승)

INSERT INTO "RESULT" (SEASON, ROUND, GAME, PLAYER_1_ID, PLAYER_1_NAME, PLAYER_2_ID, PLAYER_2_NAME, WINNER_ID, "DATE", UPPER_SRG) VALUES(9, 8, 1, 'FlaSh', '이영호', 'Action', '김성대', 'FlaSh', TIMESTAMP '2020-03-29 00:00:00.000000', '941');
INSERT INTO "RESULT" (SEASON, ROUND, GAME, PLAYER_1_ID, PLAYER_1_NAME, PLAYER_2_ID, PLAYER_2_NAME, WINNER_ID, "DATE", UPPER_SRG) VALUES(9, 8, 2, 'Queen', '김명운', 'Larva', '임홍규', 'Queen', TIMESTAMP '2020-03-31 00:00:00.000000', '941');
INSERT INTO "RESULT" (SEASON, ROUND, GAME, PLAYER_1_ID, PLAYER_1_NAME, PLAYER_2_ID, PLAYER_2_NAME, WINNER_ID, "DATE", UPPER_SRG) VALUES(9, 8, 3, 'Stork', '송병구', 'Light', '이재호', 'Light', TIMESTAMP '2020-04-05 00:00:00.000000', '942');
INSERT INTO "RESULT" (SEASON, ROUND, GAME, PLAYER_1_ID, PLAYER_1_NAME, PLAYER_2_ID, PLAYER_2_NAME, WINNER_ID, "DATE", UPPER_SRG) VALUES(9, 8, 4, 'ChosimZerg', '박상현', 'Bisu', '김택용', 'ChosimZerg', TIMESTAMP '2020-04-07 00:00:00.000000', '942');
INSERT INTO "RESULT" (SEASON, ROUND, GAME, PLAYER_1_ID, PLAYER_1_NAME, PLAYER_2_ID, PLAYER_2_NAME, WINNER_ID, "DATE", UPPER_SRG) VALUES(9, 4, 1, 'FlaSh', '이영호', 'Queen', '김명운', 'Queen', TIMESTAMP '2020-04-12 00:00:00.000000', '921');
INSERT INTO "RESULT" (SEASON, ROUND, GAME, PLAYER_1_ID, PLAYER_1_NAME, PLAYER_2_ID, PLAYER_2_NAME, WINNER_ID, "DATE", UPPER_SRG) VALUES(9, 4, 2, 'Light', '이재호', 'ChosimZerg', '박상현', 'Light', TIMESTAMP '2020-04-14 00:00:00.000000', '921');
INSERT INTO "RESULT" (SEASON, ROUND, GAME, PLAYER_1_ID, PLAYER_1_NAME, PLAYER_2_ID, PLAYER_2_NAME, WINNER_ID, "DATE", UPPER_SRG) VALUES(9, 2, 1, 'Queen', '김명운', 'Light', '이재호', 'Queen', TIMESTAMP '2020-04-26 00:00:00.000000', NULL);

 

2.3. 경기 결과 테이블 데이터 입력 사항 조회

SELECT *
FROM RESULT
ORDER BY SEASON, ROUND, GAME

 

3. 계층형 쿼리 사용하여 조회

/*
 * 1. WITH절에서 경기별 고유값을 지정 
 */
WITH BASE AS (
SELECT SEASON,							-- 시즌(9)
       ROUND,                           -- 라운드(8강, 4강, 결승)
       SEASON || ROUND || GAME AS SRG,  -- 경기별 고유값(시즌 + 라운드 + 경기 )
       UPPER_SRG,                       -- 상위 경기 고유값
       GAME,
       NVL2(UPPER_SRG,
        ROUND || '강 ' || GAME || '경기 - ' || PLAYER_1_NAME || ' VS ' || PLAYER_2_NAME,
        '결승 - ' || PLAYER_1_NAME || ' VS ' || PLAYER_2_NAME 
       ) AS TITLE,
       PLAYER_1_NAME,
       PLAYER_2_NAME
FROM RESULT
)
/*
 * 2.경기별 고유값(SRG)와 상위 경기고유값(UPPER_SRG)으로 게층 구현
 */
SELECT SEASON,
       ROUND,
       SRG,
       UPPER_SRG,
       GAME,
       LPAD(' ', 2*(LEVEL-1)) || TITLE AS LPAD_TITLE, --레벨별 들여쓰기
       LEVEL
FROM BASE
START WITH UPPER_SRG IS NULL		-- 결승은 상위 경기고유값이 NULL
CONNECT BY PRIOR SRG = UPPER_SRG    -- 경기별 고유값과 상위 경기고유값으로 연결
ORDER BY GAME

참조
namu.wiki/w/%EC%95%84%ED%94%84%EB%A6%AC%EC%B9%B4TV%20%EC%8A%A4%ED%83%80%EB%A6%AC%EA%B7%B8%20%EC%8B%9C%EC%A6%8C9?from=ASL%20%EC%8B%9C%EC%A6%8C9#s-6

https://dreamstorage.tistory.com/169
https://coding-factory.tistory.com/461

 

 

Posted by 이야봉
DB2020. 10. 1. 16:53

 

연습용 테이블 ERD

 

O 업무 프로세스 
 - 고객은 주문을 할 수 있다.

 - 하나의 주문에 여러 개의 아이템을 동시에 주문할 수 있다.

 - 고객은 아이템에 좋고 나쁨을 평가 할 수 있다.

 - 아이템 단가는 이력을 이용해 관리하고 있다.

 

책 링크
SQL BOOSTER
 

SQL BOOSTER

SQL BOOSTER는 프로젝트 성공을 위한 SQL 필독서다. 이 책은 마치 프로젝트를 진행하는 순서처럼 구성되어 있다. 프로젝트 투입을 위해 필요한 SQL 기술을 설명하고, 성능 테스트를 위해 필요한 기술

www.yes24.com

 

 

Posted by 이야봉
DB2020. 9. 30. 16:19

1. 테이블 스페이스 생성할 폴더 생성 및 권한 부여

# mkdir /usr/ts           // root사용자로 테이블스페이스가 위치할 디렉터리 생성

# chown oracle /usr/ts    // oracle사용자로 소유권 변경

 

2. 테이블스페이스 생성

CREATE TABLESPACE ORA_SQL_TEST_TS DATAFILE '/usr/ts/ORA_SQL_TEST.DBA' SIZE 10G 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

 

참고
https://codechacha.com/ko/linux-chown/
SQL BOOSTER 프로젝트 성공을 위한 SQL 필독서 유일환 저 | 디비안(DBian)

 

 

https://codechacha.com/ko/linux-chown/

 

Linux - chown 명령어로 소유자 변경하는 방법

chown 명령어는 파일의 Owner 또는 Group을 변경하는 명령어입니다. 재귀적으로(Resursive) 하위 폴더 소유자 모두 변경하려면 chown 명령어에 -R 옵션을 주면 됩니다. 예제를 통해 사용방법을 자세히 알��

codechacha.com

 

 

www.yes24.com/Product/Goods/82818767

 

SQL BOOSTER

SQL BOOSTER는 프로젝트 성공을 위한 SQL 필독서다. 이 책은 마치 프로젝트를 진행하는 순서처럼 구성되어 있다. 프로젝트 투입을 위해 필요한 SQL 기술을 설명하고, 성능 테스트를 위해 필요한 기술�

www.yes24.com

 

Posted by 이야봉
Env2020. 9. 30. 14:13

아래 링크 참조하여, Step 03까지 진행

davidghedini.com/pg/entry/install_oracle_11g_xe_on_centos/

 

 

1. root 유저로 접속

$ su

 

2. rpm으로 설치

# rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm

 

※ 아래 에러 발생시, Swap 용량 늘리고 진행

This system does not meet the minim
um requirements for swap space. Based on the amount of physical memory available on the system, Oracle Database 11g Express Edition requires 962 MB of swap space. This system has 0 MB of swap space. Configure more swap space on the system and retry the installation.

# 1024MB = 1024 * 1024
dd if=/dev/zero of=/var/swapfile bs=1024 count=1048576

 

3. SQL PLUS로 접속 테스트

$ sqlplus /nolog  ↵

SQL> connect sys/password as sysdba ↵

 

 

 

참조사이트

davidghedini.com/pg/entry/install_oracle_11g_xe_on_centos/

 

Install Oracle 11g Express (XE) on CentOS – David Ghedini

This post will cover basic installation and configuration of Oracle 11g Express Edition (XE) on CentOS. We will also take a quick look at configuring Application Express (APEX) for 11g XE. Basic installation is straight forward. If you just want to get up

davidghedini.com

https://www.airix.net/en/projects/19-vps/9-swap-file-on-aws-lightsail-ubuntu

 

AIRIX.NET - Enable Swap File on AWS Lightsail Ubuntu Instance

Wednesday 30 September 2020

www.airix.net

https://klero.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-swap-%EC%9A%A9%EB%9F%89-%EB%8A%98%EC%9D%B4%EB%8A%94-%EB%B0%A9%EB%B2%95-%EB%B0%8F-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

리눅스 swap 용량 늘이는 방법 및 제거하는 방법

swap 용량 늘이는 방법 1. 2G로 설정한 swap용량에 추가로 swap 용량 2G (2048M)를 늘리고 싶다면 파일크기는 2048 X 1024 = 2097152가 된다. 2. 스왑 파일을 저장할 디렉토리를 만든다 # mkdir /swap 3. dd 명..

klero.tistory.com

 

 

Posted by 이야봉