Hướng dẫn python built-in database - cơ sở dữ liệu tích hợp sẵn python

Một hướng dẫn đơn giản để sqlite trong Python.

Hình ảnh qua Shutterstock theo giấy phép cho Frank Andrade

Dù bạn có tin hay không, thời điểm bạn đã cài đặt Python trên máy tính của mình, bạn cũng đã cài đặt các công cụ tuyệt vời khác. Một trong số đó là sqlite.

SQLite là một hệ thống quản lý cơ sở dữ liệu quan hệ dựa trên tệp (RDBMS) được nhúng trong tệp (RDBMS) có thể được sử dụng trong các ứng dụng Python của chúng tôi mà không phải cài đặt bất kỳ phần mềm bổ sung nào. Thay vào đó, chúng tôi chỉ cần nhập thư viện Python tích hợp

c = conn.cursor()
3 để sử dụng cơ sở dữ liệu này.

Trong hướng dẫn này, chúng tôi sẽ thấy cách kết nối với cơ sở dữ liệu, tạo bảng, chèn dữ liệu vào bảng và cách tích hợp nó với gấu trúc.

Nếu bạn không cảm thấy như đọc, bạn có thể xem video YouTube của tôi!

Hãy chắc chắn đăng ký tại đây để nhận bảng gian lận SQL mà tôi sử dụng trong tất cả các hướng dẫn của tôi (PDF miễn phí)subscribe here to get my SQL Cheat Sheet I use in all my tutorials (Free PDF)

Tạo kết nối với cơ sở dữ liệu

Điều đầu tiên chúng ta phải làm là tạo kết nối với cơ sở dữ liệu. Để làm như vậy, chúng tôi chỉ cần nhập SQLite3 và sử dụng phương thức

c = conn.cursor()
4. Bên trong ngoặc đơn, chúng tôi viết tên của cơ sở dữ liệu chúng tôi muốn tạo. Trong trường hợp của tôi, tôi sẽ đặt tên cho nó là sinh viên.

import sqlite3

# create a connection
conn = sqlite3.connect('students.db')

Nếu bạn chạy mã ở trên, một tệp mới có tên là Sinh viên.DB, sẽ được tạo trong thư mục làm việc của bạn.

Hình ảnh của tác giả

Bây giờ chúng ta có thể tạo một bảng và đặt dữ liệu vào đó.

Tạo một bảng

Trước khi tạo một bảng, chúng ta cần tạo một con trỏ. Con trỏ là một đối tượng được sử dụng để tạo kết nối để thực hiện các truy vấn SQL. Chúng tôi sẽ sử dụng con trỏ để tạo bảng, chèn dữ liệu và hơn thế nữa.

Để tạo một con trỏ, chúng tôi chỉ cần sử dụng kết nối mà chúng tôi đã tạo và phương thức

c = conn.cursor()
5.

c = conn.cursor()

Sau đó, chúng tôi sử dụng phương thức

c = conn.cursor()
6 để tạo một bảng mới trong cơ sở dữ liệu của chúng tôi. Báo giá bên trong, chúng tôi viết cú pháp SQL trung bình được sử dụng để tạo một bảng trong hầu hết các RDBM. Trong trường hợp này, chúng tôi sử dụng câu lệnh
c = conn.cursor()
7.

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")

Như bạn có thể thấy, chúng ta cần xác định kiểu dữ liệu khi chúng ta tạo các cột của bảng. Không giống như hầu hết các RDBM có hàng tá loại dữ liệu, SQLite chỉ có 5 loại dữ liệu:

  • Null: một giá trị bị thiếu
  • Số nguyên: Số không có điểm thập phân (ví dụ: 1, 2, 3, 4)
  • Thực: Số có điểm thập phân (ví dụ: 6.2, 7.6, 11.2)
  • Văn bản: mọi dữ liệu ký tự
  • Blob: Bộ sưu tập dữ liệu nhị phân được lưu trữ dưới dạng giá trị trong cơ sở dữ liệu. Nó cho phép chúng tôi lưu trữ tài liệu, hình ảnh và các tệp đa phương tiện khác trong cơ sở dữ liệu.

Cuối cùng, chúng tôi phải cam kết và đóng kết nối. Đây là cách mà mã trông cho đến nay.

Tuyệt quá! Chúng tôi đã tạo ra bảng đầu tiên của mình, nhưng nó trống rỗng, vì vậy, hãy để một số dữ liệu vào đó.

Chèn dữ liệu vào bảng

Hãy để bắt đầu bằng cách thêm một hàng vào bảng sinh viên của chúng tôi. Để làm như vậy, chúng tôi sử dụng lại

c = conn.cursor()
6, nhưng bây giờ chúng tôi sử dụng câu lệnh
c = conn.cursor()
9.

Dưới đây tôi thêm dữ liệu về một học sinh, Mark Mark, người 20 tuổi và là 1,9 mét.

c.execute("INSERT INTO students VALUES ('mark', 20, 1.9)")

Lưu ý rằng trước khi chạy mã ở trên, bạn cần nhận xét câu lệnh

c = conn.cursor()
7 vì bảng đã tồn tại.

Chúng tôi cũng có thể chèn nhiều hàng, nhưng trong trường hợp này, chúng tôi sử dụng ____21method. Thêm vào đó, chúng tôi sử dụng

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
2 làm người giữ chỗ. Điều này giúp chúng tôi thêm dữ liệu từ danh sách chúng tôi đặt tên
c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
3.

all_students = [
('john', 21, 1.8),
('david', 35, 1.7),
('michael', 19, 1.83),
]
c.executemany("INSERT INTO students VALUES (?, ?, ?)", all_students)

Chọn dữ liệu từ bảng A hiển thị dữ liệu

Cho đến nay, chúng tôi đã tạo ra một bảng và đặt dữ liệu vào đó, nhưng chúng tôi đã nhìn thấy bảng của chúng tôi. Để xem dữ liệu của chúng tôi, trước tiên chúng tôi cần chọn dữ liệu từ bảng của chúng tôi với

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
4Statement và sau đó hiển thị nó với
c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
5.

c.execute("SELECT * FROM students")
print(c.fetchall())

Đầu ra được in phải là:

[(‘mark’, 20, 1.9), (‘john’, 21, 1.8), (‘david’, 35, 1.7), (‘michael’, 19, 1.83)]

Trong trường hợp bạn không muốn lặp lại các bước này mỗi khi bạn muốn xem dữ liệu trong bảng, bạn có thể sử dụng sqliteviewer. Ở đó bạn chỉ cần kéo tệp .db của mình để xem nội dung của nó.

Hình ảnh của tác giả

Ở đây, tất cả mọi thứ chúng tôi đã làm cho đến nay

Đó là nền tảng của SQLite trong Python. Những thứ như cập nhật hàng, xóa hàng, sắp xếp dữ liệu và bảng thả cũng có thể có trong sqlite. Bạn chỉ cần sử dụng kiến ​​thức SQL của mình để thực hiện chúng.

Làm việc với gấu trúc và sqlite

SQLite có thể tích hợp với DataFrames trong gấu trúc. Ví dụ, chúng tôi sẽ làm việc với một tệp CSV có tên

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
6 mà bạn có thể tải xuống tại đây.

import pandas as pd
df = pd.read_csv("population_total.csv")

Ở đây, cách mà DataFrame trông như thế nào:

>>> df             country year    population0             China  2020.0  1.439324e+09
1 China 2019.0 1.433784e+09
2 China 2018.0 1.427648e+09
3 China 2017.0 1.421022e+09
4 China 2016.0 1.414049e+09
... ... ... ...
4180 United States 1965.0 1.997337e+08
4181 United States 1960.0 1.867206e+08
4182 United States 1955.0 1.716853e+08
4183 India 1960.0 4.505477e+08
4184 India 1955.0 4.098806e+08

Bây giờ, hãy để tạo ra một cơ sở dữ liệu SQLite trong bộ nhớ. Để làm như vậy, trước tiên, chúng ta cần cài đặt sqlalchemy:

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
7

Sau đó, chúng ta cần tạo một động cơ.

from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)

Bây giờ, hãy để đính kèm DataFrame vào một bảng trong cơ sở dữ liệu của chúng tôi (bảng không cần phải được tạo trước). Trong trường hợp này, tôi sẽ đính kèm

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
8 vào một bảng, tôi đã đặt tên cho dân số.

c = conn.cursor()
0

Để xem bảng của chúng tôi, chúng tôi chạy mã bên dưới.

c = conn.cursor()
1

Lưu ý: Nếu bạn muốn tạo một tệp SQLite (thay vì cơ sở dữ liệu trong bộ nhớ), bạn nên tạo một công cụ với cơ sở dữ liệu tệp.

Hãy cùng tạo ra một tệp

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
9 và sau đó đính kèm DataFrame
c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
8 vào bảng dân số trên mạng.

c = conn.cursor()
2

Một lần nữa, bạn có thể sử dụng

c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")
5 để xem bảng hoặc sử dụng trình xem SQLite.

Xin chúc mừng!Bây giờ bạn đã biết cách làm việc với SQLite trong Python và thậm chí tích hợp nó với DataFrames trong Pandas.

Tìm hiểu SQL-Kỹ năng theo yêu cầu nhiều nhất cho các chuyên gia dữ liệu.Nhận bảng cheat SQL miễn phí của tôi bằng cách tham gia danh sách email của tôi với 20K+ người.Get my FREE SQL Cheat Sheet by joining my email list with 20k+ people.

Nếu bạn thích đọc những câu chuyện như thế này và muốn hỗ trợ tôi như một nhà văn, hãy cân nhắc đăng ký để trở thành một thành viên trung bình.Nó có giá 5 đô la một tháng, cho phép bạn truy cập không giới hạn vào hàng ngàn hướng dẫn Python và các bài báo khoa học dữ liệu.Nếu bạn đăng ký bằng cách sử dụng liên kết của tôi, tôi sẽ kiếm được một khoản hoa hồng nhỏ mà không có thêm chi phí cho bạn.