Làm cách nào để xem bảng trong sqlite3 trong python?

Đồng thời xem Cách liệt kê các bảng cơ sở dữ liệu SQLite3 trên dòng lệnh

Bạn có thể sử dụng đoạn mã này để liệt kê tất cả các bảng SQL trong SQLite 3 của mình. cơ sở dữ liệu x trong Python

def tables_in_sqlite_db[conn]:
    cursor = conn.execute["SELECT name FROM sqlite_master WHERE type='table';"]
    tables = [
        v[0] for v in cursor.fetchall[]
        if v[0] != "sqlite_sequence"
    ]
    cursor.close[]
    return tables

ví dụ sử dụng

#!/usr/bin/env python3
import sqlite3
# Open database
conn = sqlite3.connect['/usr/share/command-not-found/commands.db']
# List tables
tables = tables_in_sqlite_db[conn]

# Your code goes here!
# Example:
print[tables] # prints ['commands', 'packages']

Trước khi chạy truy vấn trên một bảng, bạn có thể kiểm tra xem bảng có trong cơ sở dữ liệu sqlite3 hay không

Để kiểm tra xem một bảng có tồn tại trong cơ sở dữ liệu Python sqlite3 hay không, bạn có thể truy vấn bảng

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
9 để biết tên bảng khớp với tên bảng của bạn

Truy vấn SQL

Truy vấn sql để kiểm tra xem bảng có tên đã cho có trong cơ sở dữ liệu hay không, được đưa ra dưới đây

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';

trong đó

import sqlite3

conn = sqlite3.connect['mysqlite.db']
c = conn.cursor[]
			
#get the count of tables with the name
c.execute[''' SELECT count[name] FROM sqlite_master WHERE type='table' AND name='students' ''']

#if the count is 1, then table exists
if c.fetchone[][0]==1 : {
	print['Table exists.']
}
			
#commit the changes to db			
conn.commit[]
#close the connection
conn.close[]
0 trong mệnh đề where nên được thay thế bằng tên bảng của bạn

Từ kết quả của truy vấn này, bạn có thể kiểm tra xem có bất kỳ hàng nào có trong kết quả không. Nếu có một hàng trong kết quả, thì bảng tồn tại

ví dụ 1. Kiểm tra xem Bảng có tồn tại trong sqlite3 không

Trong bài viết tạo bảng trong python sqlite3 trước chúng ta đã tạo một bảng có tên là student. Bây giờ, trong ví dụ này, chúng tôi sẽ kiểm tra xem bảng có tồn tại theo chương trình không

Chương trình Python

import sqlite3

conn = sqlite3.connect['mysqlite.db']
c = conn.cursor[]
			
#get the count of tables with the name
c.execute[''' SELECT count[name] FROM sqlite_master WHERE type='table' AND name='students' ''']

#if the count is 1, then table exists
if c.fetchone[][0]==1 : {
	print['Table exists.']
}
			
#commit the changes to db			
conn.commit[]
#close the connection
conn.close[]

đầu ra

Table exists.

ví dụ 2. Kiểm tra xem Bảng có tồn tại trong Cơ sở dữ liệu sqlite3 [Kịch bản tiêu cực]

Trong ví dụ này, chúng tôi sẽ kiểm tra một kịch bản tiêu cực, trong đó bảng có tên

import sqlite3

conn = sqlite3.connect['mysqlite.db']
c = conn.cursor[]
			
#get the count of tables with the name
c.execute[''' SELECT count[name] FROM sqlite_master WHERE type='table' AND name='students' ''']

#if the count is 1, then table exists
if c.fetchone[][0]==1 : {
	print['Table exists.']
}
			
#commit the changes to db			
conn.commit[]
#close the connection
conn.close[]
1 không có trong cơ sở dữ liệu sqlite3 và chúng tôi sẽ xác minh nó theo chương trình

Chương trình Python

import sqlite3

conn = sqlite3.connect['mysqlite.db']
c = conn.cursor[]
			
#get the count of tables with the name
c.execute[''' SELECT count[name] FROM sqlite_master WHERE type='table' AND name='students1' ''']

#if the count is 1, then table exists
if c.fetchone[][0]==1 : 
	print['Table exists.']
else :
	print['Table does not exist.']
			
#commit the changes to db			
conn.commit[]
#close the connection
conn.close[]

đầu ra

Table does not exist.

Kiểm tra xem bảng có tồn tại trong bộ nhớ [RAM] không

Nếu bạn đang kiểm tra sự tồn tại của bảng trong bộ nhớ [RAM], thì trong truy vấn, hãy sử dụng sqlite_temp_master thay vì sqlite_master. Một truy vấn mẫu được đưa ra dưới đây

SELECT name FROM sqlite_temp_master WHERE type='table' AND name='table_name';

Bản tóm tắt

Trong hướng dẫn về Ví dụ Python này, chúng ta đã học cách kiểm tra xem một bảng đã cho có tồn tại trong cơ sở dữ liệu sqlite3 hay không

Bài học này trình bày cách thực thi SQLite SELECT Query từ Python để truy xuất các hàng từ bảng SQLite bằng cách sử dụng mô-đun tích hợp sẵn sqlite3

Mục tiêu của bài học này

  • Tìm nạp tất cả các hàng bằng cách sử dụng
    import sqlite3
    
    conn = sqlite3.connect['mysqlite.db']
    c = conn.cursor[]
    			
    #get the count of tables with the name
    c.execute[''' SELECT count[name] FROM sqlite_master WHERE type='table' AND name='students' ''']
    
    #if the count is 1, then table exists
    if c.fetchone[][0]==1 : {
    	print['Table exists.']
    }
    			
    #commit the changes to db			
    conn.commit[]
    #close the connection
    conn.close[]
    2
  • Sử dụng 
    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    0 để tìm nạp các hàng giới hạn và chỉ tìm nạp một hàng duy nhất bằng cách sử dụng
    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    1
  • Sử dụng các biến Python trong truy vấn SQLite Select để chuyển các giá trị động

cũng đọc

  • Giải bài tập Python SQLite
  • Đọc Hướng dẫn Python SQLite [Hướng dẫn đầy đủ]

Mục lục

  • Điều kiện tiên quyết
  • Các bước để chọn hàng từ bảng SQLite
    • Ví dụ để đọc tất cả các hàng từ bảng SQLite
  • Sử dụng các biến Python làm tham số trong SQLite Select Query
  • Chọn các hàng giới hạn từ bảng SQLite bằng con trỏ. tìm nạp []
  • Chọn một hàng từ bảng SQLite
  • Bước tiếp theo

Điều kiện tiên quyết

Trước khi thực hiện chương trình sau, vui lòng đảm bảo rằng bạn biết tên bảng SQLite và chi tiết cột của nó

Đối với bài học này, tôi đang sử dụng bảng ‘SqliteDb_developers’ có trong cơ sở dữ liệu SQLite của tôi

bảng sqlitedb_developers có dữ liệu

Nếu một bảng không có trong cơ sở dữ liệu SQLite của bạn, vui lòng tham khảo các bài viết sau. –

  • Tạo bảng SQLite từ Python
  • Chèn dữ liệu vào Bảng SQLite từ Python

Các bước để chọn hàng từ bảng SQLite

Cách chọn từ bảng SQLite bằng Python

  1. Kết nối với SQLite từ Python

    Tham khảo Kết nối cơ sở dữ liệu Python SQLite để kết nối với cơ sở dữ liệu SQLite

  2. Xác định Truy vấn CHỌN SQLite

    Tiếp theo, hãy chuẩn bị một truy vấn SQLite SELECT để tìm nạp các hàng từ một bảng. Bạn có thể chọn tất cả hoặc các hàng giới hạn dựa trên yêu cầu của bạn.
    Ví dụ:

    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    2

  3. Nhận đối tượng con trỏ từ kết nối

    Tiếp theo, sử dụng phương thức

    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    3 để tạo đối tượng con trỏ. Phương thức này trả về một đối tượng con trỏ. Đối tượng Con trỏ được yêu cầu để thực hiện truy vấn

  4. Thực hiện truy vấn CHỌN

    Thực hiện truy vấn chọn bằng phương pháp

    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    4

  5. Trích xuất tất cả các hàng từ một kết quả

    Sau khi thực hiện thành công thao tác chọn, hãy sử dụng phương thức

    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    5 của đối tượng con trỏ để lấy tất cả các hàng từ kết quả truy vấn. nó trả về một danh sách các hàng

  6. Lặp lại từng hàng

    Lặp lại danh sách hàng bằng vòng lặp for và truy cập từng hàng riêng lẻ [Truy cập dữ liệu cột của từng hàng bằng tên cột hoặc số chỉ mục. ]

  7. Đóng đối tượng con trỏ và đối tượng kết nối cơ sở dữ liệu

    sử dụng phương pháp

    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    6 và
    Connected to SQLite
    Total rows are:   6
    
    Printing each row
    Id:  1
    Name:  James
    Email:  james@pynative.com
    JoiningDate:  2019-03-17
    Salary:  8000.0
    
    Id:  2
    Name:  Joe
    Email:  joe@pynative.com
    JoiningDate:  2019-05-19
    Salary:  9000.0
    
    Id:  3
    Name:  Ben
    Email:  ben@pynative.com
    JoiningDate:  2019-02-23
    Salary:  9500.0
    
    Id:  4
    Name:  Jos
    Email:  jos@gmail.com
    JoiningDate:  2019-01-14
    Salary:  9500.0
    
    Id:  5
    Name:  Chris
    Email:  chris@gmail.com
    JoiningDate:  2019-05-15
    Salary:  7600.0
    
    Id:  6
    Name:  Jonny
    Email:  jonny@gmail.com
    JoiningDate:  2019-03-27
    Salary:  8400.0
    
    The SQLite connection is closed
    7 để đóng kết nối SQLite sau khi công việc của bạn hoàn thành

Ví dụ để đọc tất cả các hàng từ bảng SQLite

#!/usr/bin/env python3
import sqlite3
# Open database
conn = sqlite3.connect['/usr/share/command-not-found/commands.db']
# List tables
tables = tables_in_sqlite_db[conn]

# Your code goes here!
# Example:
print[tables] # prints ['commands', 'packages']
6

đầu ra

________số 8

Ghi chú. Tôi đang trực tiếp hiển thị từng hàng và các giá trị cột của nó. Nếu bạn muốn sử dụng các giá trị cột trong chương trình của mình, bạn có thể sao chép chúng vào biến python để sử dụng. Ví dụ,

Connected to SQLite
Total rows are:   6

Printing each row
Id:  1
Name:  James
Email:  james@pynative.com
JoiningDate:  2019-03-17
Salary:  8000.0

Id:  2
Name:  Joe
Email:  joe@pynative.com
JoiningDate:  2019-05-19
Salary:  9000.0

Id:  3
Name:  Ben
Email:  ben@pynative.com
JoiningDate:  2019-02-23
Salary:  9500.0

Id:  4
Name:  Jos
Email:  jos@gmail.com
JoiningDate:  2019-01-14
Salary:  9500.0

Id:  5
Name:  Chris
Email:  chris@gmail.com
JoiningDate:  2019-05-15
Salary:  7600.0

Id:  6
Name:  Jonny
Email:  jonny@gmail.com
JoiningDate:  2019-03-27
Salary:  8400.0

The SQLite connection is closed
8

Sử dụng các biến Python làm tham số trong SQLite Select Query

Chúng ta thường cần chuyển một biến cho truy vấn chọn SQLite trong mệnh đề where để kiểm tra một số điều kiện

Giả sử ứng dụng muốn tìm nạp thông tin chi tiết về người bằng cách cung cấp bất kỳ id nào khi chạy. Để xử lý yêu cầu như vậy, chúng ta cần sử dụng truy vấn được tham số hóa

Truy vấn được tham số hóa là một truy vấn trong đó các phần giữ chỗ [_______89] được sử dụng cho các tham số và các giá trị tham số được cung cấp tại thời điểm thực hiện

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
0

Thí dụ

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
1

đầu ra

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
2

Chọn các hàng giới hạn từ bảng SQLite bằng con trỏ. tìm nạp []

Trong một số trường hợp, việc tìm nạp tất cả các hàng dữ liệu từ một bảng là một nhiệm vụ tốn thời gian nếu một bảng chứa hàng nghìn hàng

Để tìm nạp tất cả các hàng, chúng tôi phải sử dụng nhiều tài nguyên hơn, vì vậy chúng tôi cần nhiều không gian và thời gian xử lý hơn. Để nâng cao hiệu suất, hãy sử dụng phương thức

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
00 của lớp con trỏ để tìm nạp ít hàng hơn

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
4

đầu ra

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
5

Ghi chú. Trong chương trình trên, kích thước được chỉ định là 2 để tìm nạp hai bản ghi. Nếu bảng SQLite chứa các hàng nhỏ hơn kích thước đã chỉ định thì sẽ trả về ít hàng hơn

Chọn một hàng từ bảng SQLite

Khi bạn chỉ muốn đọc một hàng từ bảng SQLite, thì bạn nên sử dụng phương thức fetchone[] của lớp con trỏ. Bạn cũng có thể sử dụng phương pháp này trong các trường hợp khi bạn biết truy vấn sẽ chỉ trả về một hàng

Phương thức

Connected to SQLite
Total rows are:   6

Printing each row
Id:  1
Name:  James
Email:  james@pynative.com
JoiningDate:  2019-03-17
Salary:  8000.0

Id:  2
Name:  Joe
Email:  joe@pynative.com
JoiningDate:  2019-05-19
Salary:  9000.0

Id:  3
Name:  Ben
Email:  ben@pynative.com
JoiningDate:  2019-02-23
Salary:  9500.0

Id:  4
Name:  Jos
Email:  jos@gmail.com
JoiningDate:  2019-01-14
Salary:  9500.0

Id:  5
Name:  Chris
Email:  chris@gmail.com
JoiningDate:  2019-05-15
Salary:  7600.0

Id:  6
Name:  Jonny
Email:  jonny@gmail.com
JoiningDate:  2019-03-27
Salary:  8400.0

The SQLite connection is closed
1 lấy hàng tiếp theo từ tập kết quả

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
7

đầu ra

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
8

Bước tiếp theo

Để thực hành những gì bạn đã học trong bài viết này, Vui lòng giải một project Bài tập Cơ sở dữ liệu Python để Thực hành và thành thạo các thao tác Cơ sở dữ liệu Python

Chủ Đề