2021. 6. 28. 09:52ㆍ인공지능 수업(Python)
#인공지능
#파이썬
#Python
oracle sql 연동하는 법을 배웠습니다.
=========================
Oracle
=========================
# Oracle Tutorial
https://www.oracletutorial.com/
# Windows에서 Oracle 11g 삭제
https://gseducation.blog.me/20093778870
# Oracle Database Express Edition (XE) Release 18.4.0.0.0 (18c) 설치
https://appsnuri.tistory.com/497
-> 설치 뒤 -> 관련 서비스 수동 시작으로 설정 변경 -> 관리자 권한으로 명령 프롬프트 시작
C:\windows\system32> notepad xe_stop.bat
net stop OracleServiceXE
net stop OracleOraDB18Home1TNSListener
C:\windows\system32> notepad xe_start.bat
net start OracleOraDB18Home1TNSListener
net start OracleServiceXE
C:\windows\system32> xe_stop
C:\windows\system32> xe_start
# Connecting to a Pluggable Database (PDB)
참고.https://oracle-base.com/articles/12c/multitenant-connecting-to-cdb-and-pdb-12cr1#pdb
[1] 설치 뒤 SQL*Plus로 접속
C:\Users\COM> sqlplus / as sysdba <- CDB에 접속하는 것임
SQL> col name format a30
SQL> col pdb format a30
SQL> select name, pdb
from v$services
order by name;
NAME PDB
------------------------------ ------------------------------
SYS$BACKGROUND CDB$ROOT
SYS$USERS CDB$ROOT
xe CDB$ROOT <- CDB(Container Database)
xeXDB CDB$ROOT
xepdb1 XEPDB1 <- PDB(Pluggable Database), 우리가 사용할 DB
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> exit
C:\Users\COM> sqlplus system/wdft7240@localhost:1521/xepdb1 <- PDB에 관리자로 접속
SQL> show con_name
CON_NAME
------------------------------
XEPDB1
SQL> drop user ace cascade; -- ace 유저가 있다면 먼저 삭제!
SQL> create user ace -- ace 유저 생성
identified by me
quota unlimited on users
default tablespace users
temporary tablespace temp;
SQL> grant connect, resource
to ace;
SQL> exit
C:\Users\COM> sqlplus ace/me@localhost:1521/xepdb1
SQL> show con_name
CON_NAME
------------------------------
XEPDB1
SQL> show user
USER은 "ACE"입니다
[2] 설치 뒤 SQL Developer로 접속
다음과 같이 접속 새로 만들기
- 접속 이름 : ace@xepdb1
- 사용자 이름 : ace
- 비밀번호 : me
- 호스트 이름 : localhost
- 포트 : 1521
- 서비스 이름 : xepdb1
테스트
접속
쿼리 실행
select * from v$version;
[3] 실습용 Schema 생성
스크립트 파일 다운로드 및 실행
-> https://cafe.naver.com/n1books/11
=========================
Python + Oracle
=========================
# SQL Developer에서 ace 계정으로 접속
CREATE TABLE billing_headers(
billing_no NUMBER GENERATED BY DEFAULT AS IDENTITY,
billing_date DATE NOT NULL,
amount NUMBER(19,4) DEFAULT 0 NOT NULL,
customer_id NUMBER NOT NULL,
note VARCHAR2(100),
PRIMARY KEY(billing_no)
);
CREATE TABLE billing_items(
item_no NUMBER
GENERATED BY DEFAULT AS IDENTITY
START WITH 10
INCREMENT BY 10,
billing_no NUMBER NOT NULL,
product_id NUMBER NOT NULL,
price NUMBER(10,2) DEFAULT 0 NOT NULL,
PRIMARY KEY(item_no, billing_no),
FOREIGN KEY(billing_no)
REFERENCES billing_headers(billing_no)
);
# 명령 프롬프트에서 실행
pip install cx_Oracle
==================
Others
==================
# Oracle SQL
- https://www.oracletutorial.com/
-> Oracle 문법을 Python으로 구현해보기
https://cannonhiter.tistory.com/25
# Oracle PL/SQL
- https://www.oracletutorial.com/plsql-tutorial/
# Python + Oracle
- Oracle 18c XE 환경 설정
- Python Oracle
- https://www.oracletutorial.com/python-oracle/
- cx_Oracle - Python Interface for Oracle Database
- https://oracle.github.io/python-cx_Oracle/
- https://oracle.github.io/python-cx_Oracle/samples/tutorial/Python-and-Oracle-Database-Scripting-for-the-Future.html
- Perform Basic CRUD Operations Using cx_Oracle
- https://blogs.oracle.com/oraclemagazine/perform-basic-crud-operations-using-cx-oracle-part-1
- https://blogs.oracle.com/oraclemagazine/perform-basic-crud-operations-with-cx-oracle-part-2
- https://blogs.oracle.com/oraclemagazine/perform-basic-crud-operations-with-cx-oracle-part-3
- https://blogs.oracle.com/oraclemagazine/perform-basic-crud-operations-with-cx-oracle-part-4
- https://blogs.oracle.com/oraclemagazine/perform-plsql-operations-with-cx_oracle
# Flask + Oracle
- 참고
-> [002-2] Flask_서브노트.txt
-> https://www.javatpoint.com/flask-sqlite