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


[SQL 문법]

ORDER BY절을 추가하여 컬럼에 따라 데이터를 정렬할 수 있다.(asc 오름차순, desc 내림차순)
여러 칼럼에 대해서 정렬할 수도 있다.
먼저 작성된 칼럼에 대해 정렬하고, 다음 칼럼에 대해 정렬이 순서대로 진행된다.

SELECT ename, sal
  FROM emp
  ORDER BY sal asc

[예시]

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

# SQL 문법
cursor.execute("""
SELECT ename, sal
  FROM emp
  ORDER BY sal asc
""")

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

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

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

[결과]

     ENAME     SAL
0    SMITH   800.0
1    JAMES   950.0
2    ADAMS  1100.0
3     WARD  1250.0
4   MARTIN  1250.0
5   MILLER  1300.0
6   TURNER  1500.0
7    ALLEN  1600.0
8    CLARK  2450.0
9    BLAKE  2850.0
10   JONES  2975.0
11    FORD  3000.0
12   SCOTT  3000.0
13    KING  5000.0

[복습] 2023-02-01

실행순서 = FROM > SELECT > ORDER BY
마지막에 실행되기 때문에 별칭 사용 가능
열마다 정렬방법 다르게 가능

SELECT ename, deptno, sal
  FROM emp
  ORDER BY deptno asc, sal desc

[결과]

     ENAME  DEPTNO     SAL
0     KING    10.0  5000.0
1    CLARK    10.0  2450.0
2   MILLER    10.0  1300.0
3     FORD    20.0  3000.0
4    JONES    20.0  2975.0
5    ADAMS    20.0  1100.0
6    SMITH    20.0   800.0
7    BLAKE    30.0  2850.0
8    ALLEN    30.0  1600.0

Leave a comment