Giới thiệu về truy vấn SQL

Nhập môn Cơ sở dữ liệu với Python

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Câu lệnh SQL

  • Select, insert, update, và delete dữ liệu
  • Tạo và sửa đổi dữ liệu
Nhập môn Cơ sở dữ liệu với Python

Truy vấn SQL cơ bản

SELECT column_name FROM table_name

  • SELECT pop2008 FROM People
  • SELECT * FROM People
Nhập môn Cơ sở dữ liệu với Python

Truy vấn SQL cơ bản

from sqlalchemy import create_engine

engine = create_engine('sqlite:///census_nyc.sqlite')
connection = engine.connect()
stmt = 'SELECT * FROM people'
result_proxy = connection.execute(stmt)
results = result_proxy.fetchall()
Nhập môn Cơ sở dữ liệu với Python

ResultProxy vs ResultSet

result_proxy = connection.execute(stmt)

results = result_proxy.fetchall()
  • result_proxyResultProxy
  • resultsResultSet
Nhập môn Cơ sở dữ liệu với Python

Làm việc với ResultSet

first_row = results[0]
print(first_row)
('Illinois', 'M', 0, 89600, 95012)
print(first_row.keys())
['state', 'sex', 'age', 'pop2000', 'pop2008']
print(first_row.state)
'Illinois'
Nhập môn Cơ sở dữ liệu với Python

SQLAlchemy để xây dựng truy vấn

  • Cung cấp cách Pythonic để tạo câu lệnh SQL
  • Ẩn khác biệt giữa các hệ CSDL nền
Nhập môn Cơ sở dữ liệu với Python

Truy vấn với SQLAlchemy

from sqlalchemy import Table, MetaData
metadata = MetaData()

census = Table('census', metadata, autoload=True, autoload_with=engine)
stmt = select([census])
results = connection.execute(stmt).fetchall()
Nhập môn Cơ sở dữ liệu với Python

Câu lệnh select của SQLAlchemy

  • Yêu cầu danh sách một hoặc nhiều Table/Column
  • Dùng cả bảng sẽ chọn mọi cột trong bảng đó
stmt = select([census])

print(stmt)
'SELECT * from CENSUS'
Nhập môn Cơ sở dữ liệu với Python

Ayo berlatih!

Nhập môn Cơ sở dữ liệu với Python

Preparing Video For Download...