Page 25 -
P. 25

cur.execute('select * from balance’)

                      row = cur.fetchone()
                      print(row)


                    cur.execute에 전달되는 SQL, 'select * from balance'에서 ‘select’는 조회하겠다는 것이고,
                    ‘*’는 해당 테이블에 있는 모든 행(rows)의 모든 열(columns)을 조회하겠다는 것입니다. 반대로 ‘*’
                    를 사용하지 않고 필요한 열만 조회하고 싶으면 열 이름을 입력합니다. 예를 들어 ‘select code,                        5
                    created_at from balance’라고 SQL을 작성하면 모든 행에서 code와 created_at이라는 열 두               프로젝트

                    개만 조회하겠다는 것입니다. 이 부분은 뒤에서 조회 결과를 살펴보며 다시 설명하겠습니다. 그다
                    음 from은 어느 테이블에서 데이터를 얻어 올지 나타내기에 이 다음에는 데이터베이스에 있는 테
                    이블 이름이 와야 합니다. balance 테이블은 데이터베이스에 미리 생성해 둔 테이블이니 이 SQL

                    을 실행하면 정상적으로 조회 결과가 나옵니다. 하지만 from 다음에 존재하지 않는 테이블을 사용
                    하면 에러가 발생합니다.
                    이어서 다음을 살펴보면 row = cur.fetchone()이라는 코드가 등장합니다. SQL을 실행할 때 cur

                    객체의 execute 함수로 cur.execute(SQL)처럼 사용했습니다. 이후 SQL 실행 결과는 마찬가지로
                    cur 객체로 확인할 수 있습니다. 여기서 fetchone이라는 함수는 첫 번째 행 데이터 하나만(one) 가
                    져오겠다는(fetch) 의미입니다. 실행 결과를 확인해 보면 다음과 같습니다.

                      ('005930', 70000, 10, '20201222', 'today')


                    이 결과를 살펴보면 fetchone 함수를 사용했기 때문에 하나의 행만 조회되었으며, 모든 열이 조회
                    되는 이유는 'select * from balance'에서 설명한 것처럼 모든 열을 의미하는 *를 사용했기 때문
                    입니다. 이와 다르게 code, created_at 열 두 개만 조회하려고 SQL을 다음과 같이 바꾸면 실행 결

                    과가 다르게 나옵니다.

                     db_helper.py
                      (...)
                      cur.execute('select code, created_at from balance')

                      row = cur.fetchone()
                      print(row)


                    이 코드의 실행 결과는 다음과 같습니다.

                      ('005930', '20201222')

                                                                                                  313





     주식매매_05.indd   313                                                                      2021-09-30   오후 3:20:45
   20   21   22   23   24   25