안녕하세요.
지난번에 로또 데이터를 받아서 아주 간단한 테이블 정의서를 만들어 봤는데요.
오늘은 실제 테이블을 만들고 데이터를 올려보았습니다.
2022.03.24 - [SW교육/DB] - [DB활용]로또 데이터를 이용한 오라클 테이블 만들기
2022.03.23 - [SW교육/DB] - dbeaver 설치 및 Oracle 21c XE 연결
저는 우선 오라클 21 XE 버전인데 SYSTEM 계정으로 로그인을 했습니다.
간단히 아래와 같이 테이블을 만들고 엑셀 데이터를 올리려고 했죠.
참고로 아래 박스처럼 Auto 로 해 놓으면 자동 커밋이 됩니다.
![](https://blog.kakaocdn.net/dn/cfNXDZ/btryU2jbICr/IgNYpO1YD4SFdbwIvOkoa1/img.png)
그런데 쿼리문을 실행 시키려고 하니 실행 메뉴가 어디있는지, 디폴트 단축키가 무엇인지 생각이 안나더군요. 그래서 윈도우>설정>User Inteface>키 로 들어가 확인해 보았습니다.
실행이 Ctrl+Enter 이더군요. 바인딩을 수정하면 다른 키로 변경이 가능합니다. ( 예를들어 F5 )
단, 다른 기능과 중복 되지 않는 것이 중요합니다.
![](https://blog.kakaocdn.net/dn/EScaZ/btryVaVx5jM/VldDxSJriYOtPykFG1KHk1/img.png)
그리고 나서 select 문을 생행 시켜 보았습니다. 당연히 아무 데이터도 없게 실행이 됩니다.
![](https://blog.kakaocdn.net/dn/bqmq2z/btryRtWAM7t/v8JdUKK5sB6L7Z3ouNOVOK/img.png)
하고 나니 실행 메뉴가 눈에 보이는군요. 아래 그림 왼쪽에 주황색 버튼이 쿼리 실행 버튼입니다.
![](https://blog.kakaocdn.net/dn/c4fZfI/btryUghHYha/Gd2wF1KXCsaYw7W7MPJkg0/img.png)
그리고 엑셀 데이터를 해당 테이블에 업로드(import) 하려고 보니 기능을 도저히 못찾겠더군요. 그래서 여기저기 찾아보고 스키마를 생성해야 할것 같다는 생각이 들었습니다.
우선 만든 테이블을 다시 없앴습니다.
DROP TABLE LOTTO_DATE ;
그리고 설정을 변경 하였는데요. 이렇게 하지 않으면 스키마명에 C## 을 붙여야 한다고 하더군요.
ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE ;
다음으로 스키마를 만들고 권한을 부여 하였습니다. 저는 JUNG 으로 만들었습니다. 대소문자는 상관없습니다.
CREATE USER jung IDENTIFIED BY 1234 ;
GRANT CONNECT, RESOURCE , DBA TO JUNG ;
그리고 다시 스키마명을 붙여서 테이블을 만들었죠.
CREATE TABLE JUNG.LOTTO_DATE (
LOTTO_NO DECIMAL(7,0) PRIMARY KEY
, LOTTO_DATE DATE
)
그리고 나니 Dbeaver Database Navigator 에 해당 스키마 하위에 만든 테이블을 찾을수 있었습니다.
![](https://blog.kakaocdn.net/dn/b3wBZ1/btryYmIGXEV/OYjNnBxkQlGnITRFQiOUkK/img.png)
그 다음은 테이블명에 커서를 두고 마우스 오른쪽 버튼을 눌러 데이터 가져오기를 선택합니다.
엑셀은 안되고 cvs 형식의 파일이 가능하군요.
아래처럼 첫번째 행에 컬럼명을 동일하게 적고 로또회차.cvs 라는 파일을 만들어 선택하였습니다.
![](https://blog.kakaocdn.net/dn/GnCK7/btryU2Yv8lv/fagMsABEk97jdW3WnksaN1/img.png)
몇차례 다음>다음 했더니 데이터가 테이블에 잘 import 되었습니다.
![](https://blog.kakaocdn.net/dn/qc920/btryTNGECgq/Da4RaokGHWC79CQOddO420/img.png)
![](https://blog.kakaocdn.net/dn/dDD4bh/btryRSieKe5/kpXYssqH3f031og1j4PZm1/img.png)
INSERT 문을 사용해서 데이터를 몇개 더 넣어 보았습니다.
이렇게 데이터를 직접 넣어서 한번 실행
INSERT INTO JUNG.LOTTO_DATE VALUES (1008,'2022-03-26') ;
다음 쿼리로 두번 실행하였는데 pk는 1을 증가시키고 날짜는 일주일을 증가시켰습니다.
INSERT INTO JUNG.LOTTO_DATE ( SELECT MAX(LOTTO_NO) + 1, MAX(LOTTO_DATE) + 7 DAYS
FROM JUNG.LOTTO_DATE )
최종데이터는 어떻게 되었을까요?
![](https://blog.kakaocdn.net/dn/bN63M2/btrySNOxO1m/dfVV53IDVXyB4ORir5TXF1/img.png)
3건이 잘 들어갔습니다.
이런식으로 테이블 및 데이터 업로드를 몇건 더 하면 간단한 쿼리 실습을 할 수 있겠군요.
'SW교육 > DB' 카테고리의 다른 글
[Oracle]select , order by, fetch first rows only, rownum 에 대해서 알아 보자. (0) | 2022.04.12 |
---|---|
[Oracle]오라클 pk 2개 이상 컬럼으로 지정하기(복합키) (0) | 2022.04.11 |
[Oracle]DB연결 안될 때 제일 먼저 확인하고 조치할 것은? (0) | 2022.04.09 |
[DB활용]로또 데이터를 이용한 오라클 테이블 만들기 (0) | 2022.03.24 |
dbeaver 설치 및 Oracle 21c XE 연결 (1) | 2022.03.23 |