Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách chèn hàng vào bảng trong cơ sở dữ liệu SQLite từ chương trình Python bằng mô-đun sqlite3
Để chèn hàng vào bảng trong cơ sở dữ liệu SQLite, bạn làm theo các bước sau
- Đầu tiên, kết nối với cơ sở dữ liệu SQLite bằng cách tạo một đối tượng Kết nối
- Thứ hai, tạo một đối tượng
Cursor
bằng cách gọi phương thức con trỏ của đối tượng
0
Code language: Python [python]def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
- Thứ ba, thực hiện một câu lệnh INSERT. Nếu bạn muốn chuyển đối số cho câu lệnh
1, bạn sử dụng dấu chấm hỏi [?] làm phần giữ chỗ cho mỗi đối số
Code language: Python [python]def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
SQLite Python – chèn hàng ví dụ
Hãy chèn một dự án mới vào bảng
2 và một số nhiệm vụ vào bảngCode language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
3 mà chúng ta đã tạo trong phần tạo bảng từ hướng dẫn chương trình PythonCode language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Đầu tiên, tạo một chức năng mới để thiết lập kết nối cơ sở dữ liệu với cơ sở dữ liệu SQLitte được chỉ định bởi tệp cơ sở dữ liệu
Code language: Python [python]
def create_connection[db_file]: """ create a database connection to the SQLite database specified by db_file :param db_file: database file :return: Connection object or None """ conn = None try: conn = sqlite3.connect[db_file] except Error as e: print[e] return conn
Tiếp theo, phát triển một chức năng để chèn một dự án mới vào bảng
2
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Code language: Python [python]
Code language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Trong hàm này, chúng ta đã sử dụng thuộc tính
5 của đối tượngCode language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Cursor
để lấy lại id đã tạoSau đó, phát triển một chức năng khác để chèn hàng vào bảng
3Code language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Code language: Python [python]
def create_task[conn, task]: """ Create a new task :param conn: :param task: :return: """ sql = ''' INSERT INTO tasks[name,priority,status_id,project_id,begin_date,end_date] VALUES[?,?,?,?,?,?] ''' cur = conn.cursor[] cur.execute[sql, task] conn.commit[] return cur.lastrowid
Sau đó, phát triển hàm
8 để tạo một dự án mới và hai nhiệm vụ liên quan đến dự ánCode language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
def main[]: database = r"C:\sqlite\db\pythonsqlite.db" # create a database connection conn = create_connection[database] with conn: # create a new project project = ['Cool App with SQLite & Python', '2015-01-01', '2015-01-30']; project_id = create_project[conn, project] # tasks task_1 = ['Analyze the requirements of the app', 1, 1, project_id, '2015-01-01', '2015-01-02'] task_2 = ['Confirm with user about the top requirements', 1, 1, project_id, '2015-01-03', '2015-01-05'] # create tasks create_task[conn, task_1] create_task[conn, task_2]
Code language: Python [python]
Và gọi hàm
8Code language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Code language: Python [python]
if __name__ == '__main__': main[]
Đây là chương trình đầy đủ
Code language: Python [python]
import sqlite3 from sqlite3 import Error def create_connection[db_file]: """ create a database connection to the SQLite database specified by db_file :param db_file: database file :return: Connection object or None """ conn = None try: conn = sqlite3.connect[db_file] except Error as e: print[e] return conn def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid def create_task[conn, task]: """ Create a new task :param conn: :param task: :return: """ sql = ''' INSERT INTO tasks[name,priority,status_id,project_id,begin_date,end_date] VALUES[?,?,?,?,?,?] ''' cur = conn.cursor[] cur.execute[sql, task] conn.commit[] return cur.lastrowid def main[]: database = r"C:\sqlite\db\pythonsqlite.db" # create a database connection conn = create_connection[database] with conn: # create a new project project = ['Cool App with SQLite & Python', '2015-01-01', '2015-01-30']; project_id = create_project[conn, project] # tasks task_1 = ['Analyze the requirements of the app', 1, 1, project_id, '2015-01-01', '2015-01-02'] task_2 = ['Confirm with user about the top requirements', 1, 1, project_id, '2015-01-03', '2015-01-05'] # create tasks create_task[conn, task_1] create_task[conn, task_2] if __name__ == '__main__': main[]
Cuối cùng, kết nối với cơ sở dữ liệu thông qua shell sqlite3 và truy vấn dữ liệu từ bảng
2 vàCode language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
3 để kiểm tra xem dữ liệu đã được chèn thành công hay chưaCode language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Sử dụng các lệnh này để định dạng đầu ra
sqlite> .header on sqlite> .mode column
Code language: Shell Session [shell]
Và sử dụng câu lệnh
2 này để truy vấn dữ liệu từ bảngCode language: Python [python]
def create_task[conn, task]: """ Create a new task :param conn: :param task: :return: """ sql = ''' INSERT INTO tasks[name,priority,status_id,project_id,begin_date,end_date] VALUES[?,?,?,?,?,?] ''' cur = conn.cursor[] cur.execute[sql, task] conn.commit[] return cur.lastrowid
2Code language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Code language: Shell Session [shell]
SELECT * FROM projects;
Và sử dụng câu lệnh
4 sau đây để truy vấn dữ liệu từ bảngCode language: Python [python]
def create_task[conn, task]: """ Create a new task :param conn: :param task: :return: """ sql = ''' INSERT INTO tasks[name,priority,status_id,project_id,begin_date,end_date] VALUES[?,?,?,?,?,?] ''' cur = conn.cursor[] cur.execute[sql, task] conn.commit[] return cur.lastrowid
3.Code language: Python [python]
def create_project[conn, project]: """ Create a new project into the projects table :param conn: :param project: :return: project id """ sql = ''' INSERT INTO projects[name,begin_date,end_date] VALUES[?,?,?] ''' cur = conn.cursor[] cur.execute[sql, project] conn.commit[] return cur.lastrowid
Code language: SQL [Structured Query Language] [sql]
SELECT * FROM tasks;
Trong hướng dẫn này, bạn đã học cách chèn hàng vào bảng trong cơ sở dữ liệu SQLite từ chương trình Python.