[Reference] 초보자를 위한 SQL 200제


[SQL 문법]

서로 다른 테이블의 있는 컬럼들을 하나의 결과로 출력할 수 있다.
이를 EQUI JOIN이라고 한다.

SELECT empno, loc
  FROM emp, dept
  WHERE emp.deptno = dept.deptno

[예시]

# 오라클 연동 및 접속
import pandas as pd
import cx_Oracle
dsn=cx_Oracle.makedsn('localhost',1521,'orcl')
db=cx_Oracle.connect('scott','tiger')
cursor=db.cursor()

# SQL 문법
# emp와 dept 테이블의 부서번호가 동일한 값들로부터 empno와 loc를 출력하는 문이다.
cursor.execute("""
SELECT empno, loc
  FROM emp, dept
  WHERE emp.deptno = dept.deptno
"""
)

row=cursor.fetchall()
colname=cursor.description
col=[]

for i in colname:
    col.append(i[0])

# pandas를 사용한 데이터 프레임 형식으로 변환
emp=pd.DataFrame(row,columns=col)
print(emp)

[결과]

    EMPNO       LOC
0    7839  NEW YORK
1    7698   CHICAGO
2    7782  NEW YORK
3    7566    DALLAS
4    7654   CHICAGO
5    7499   CHICAGO
6    7844   CHICAGO
7    7900   CHICAGO
8    7521   CHICAGO
9    7902    DALLAS
10   7369    DALLAS
11   7788    DALLAS
12   7876    DALLAS
13   7934  NEW YORK

Leave a comment