Làm cách nào để bạn tạo cơ sở dữ liệu người dùng trong python?
Tiêu chuẩn Python cho giao diện cơ sở dữ liệu là Python DB-API. Hầu hết các giao diện cơ sở dữ liệu Python đều tuân thủ tiêu chuẩn này Show
Bạn có thể chọn cơ sở dữ liệu phù hợp cho ứng dụng của mình. API cơ sở dữ liệu Python hỗ trợ nhiều loại máy chủ cơ sở dữ liệu như –
Dưới đây là danh sách các giao diện cơ sở dữ liệu Python có sẵn. Giao diện và API cơ sở dữ liệu Python. Bạn phải tải xuống mô-đun API DB riêng cho từng cơ sở dữ liệu bạn cần truy cập. Ví dụ: nếu bạn cần truy cập cơ sở dữ liệu Oracle cũng như cơ sở dữ liệu MySQL, bạn phải tải xuống cả mô-đun cơ sở dữ liệu Oracle và MySQL API DB cung cấp một tiêu chuẩn tối thiểu để làm việc với cơ sở dữ liệu bằng cấu trúc và cú pháp Python bất cứ khi nào có thể. API này bao gồm những điều sau đây -
Chúng ta sẽ tìm hiểu tất cả các khái niệm khi sử dụng MySQL, vì vậy hãy nói về mô-đun MySQLdb MySQLdb là gì?MySQLdb là giao diện để kết nối với máy chủ cơ sở dữ liệu MySQL từ Python. Nó triển khai API cơ sở dữ liệu Python v2. 0 và được xây dựng dựa trên MySQL C API Làm cách nào để cài đặt MySQLdb?Trước khi tiếp tục, bạn đảm bảo rằng bạn đã cài đặt MySQLdb trên máy của mình. Chỉ cần nhập nội dung sau vào tập lệnh Python của bạn và thực thi nó - #!/usr/bin/python import MySQLdb Nếu nó tạo ra kết quả như sau, thì điều đó có nghĩa là mô-đun MySQLdb chưa được cài đặt – Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb Để cài đặt mô-đun MySQLdb, hãy sử dụng lệnh sau - For Ubuntu, use the following command - $ sudo apt-get install python-pip python-dev libmysqlclient-dev For Fedora, use the following command - $ sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc For Python command prompt, use the following command - pip install MySQL-python Lưu ý - Đảm bảo rằng bạn có quyền root để cài đặt mô-đun trên kết nối cơ sở dữ liệuTrước khi kết nối với cơ sở dữ liệu MySQL, hãy đảm bảo những điều sau đây –
Ví dụSau đây là ví dụ kết nối với cơ sở dữ liệu MySQL "TESTDB" #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # execute SQL query using execute() method. cursor.execute("SELECT VERSION()") # Fetch a single row using fetchone() method. data = cursor.fetchone() print "Database version : %s " % data # disconnect from server db.close() Trong khi chạy tập lệnh này, nó tạo ra kết quả sau trong máy Linux của tôi Database version : 5.0.45 Nếu kết nối được thiết lập với nguồn dữ liệu, thì Đối tượng kết nối được trả về và lưu vào db để sử dụng tiếp, nếu không thì db được đặt thành Không có. Tiếp theo, đối tượng db được sử dụng để tạo đối tượng con trỏ, đối tượng này được sử dụng để thực hiện các truy vấn SQL. Cuối cùng, trước khi ra mắt, nó đảm bảo rằng kết nối cơ sở dữ liệu đã được đóng và tài nguyên được giải phóng Tạo bảng cơ sở dữ liệuKhi kết nối cơ sở dữ liệu được thiết lập, chúng tôi đã sẵn sàng để tạo bảng hoặc bản ghi vào bảng cơ sở dữ liệu bằng cách sử dụng phương thức thực thi của con trỏ đã tạo Ví dụHãy để chúng tôi tạo bảng Cơ sở dữ liệu NHÂN VIÊN - #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Drop table if it already exist using execute() method. cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # Create table as per requirement sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) # disconnect from server db.close() thao tác CHÈNNó được yêu cầu khi bạn muốn tạo các bản ghi của mình vào một bảng cơ sở dữ liệu Ví dụVí dụ sau, thực thi câu lệnh SQL INSERT để tạo một bản ghi trong bảng EMPLOYEE − #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Prepare SQL query to INSERT a record into the database. sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() # disconnect from server db.close() Ví dụ trên có thể được viết như sau để tạo các truy vấn SQL động - #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Prepare SQL query to INSERT a record into the database. sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \ LAST_NAME, AGE, SEX, INCOME) \ VALUES ('%s', '%s', '%d', '%c', '%d' )" % \ ('Mac', 'Mohan', 20, 'M', 2000) try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() # disconnect from server db.close() Ví dụĐoạn mã sau là một hình thức thực thi khác mà bạn có thể truyền tham số trực tiếp - ________số 8Thao tác ĐỌCThao tác READ trên bất kỳ cơ sở dữ liệu nào có nghĩa là lấy một số thông tin hữu ích từ cơ sở dữ liệu Khi kết nối cơ sở dữ liệu của chúng tôi được thiết lập, bạn đã sẵn sàng thực hiện truy vấn vào cơ sở dữ liệu này. Bạn có thể sử dụng phương thức fetchone() để tìm nạp một bản ghi hoặc phương thức fetchall() để tìm nạp nhiều giá trị từ một bảng cơ sở dữ liệu
Ví dụThủ tục sau đây truy vấn tất cả các bản ghi từ bảng EMPLOYEE có mức lương lớn hơn 1000 - #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() sql = "SELECT * FROM EMPLOYEE \ WHERE INCOME > '%d'" % (1000) try: # Execute the SQL command cursor.execute(sql) # Fetch all the rows in a list of lists. results = cursor.fetchall() for row in results: fname = row[0] lname = row[1] age = row[2] sex = row[3] income = row[4] # Now print fetched result print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \ (fname, lname, age, sex, income ) except: print "Error: unable to fecth data" # disconnect from server db.close() Điều này sẽ tạo ra kết quả sau - Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb0 Hoạt động cập nhậtCẬP NHẬT Thao tác trên bất kỳ cơ sở dữ liệu nào có nghĩa là cập nhật một hoặc nhiều bản ghi đã có sẵn trong cơ sở dữ liệu Quy trình sau đây cập nhật tất cả các bản ghi có SEX là 'M'. Ở đây, chúng tôi tăng TUỔI của tất cả nam giới thêm một năm Ví dụTraceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb1 Thao tác XÓAThao tác XÓA được yêu cầu khi bạn muốn xóa một số bản ghi khỏi cơ sở dữ liệu của mình. Sau đây là quy trình xóa tất cả các bản ghi khỏi EMPLOYEE trong đó TUỔI lớn hơn 20 − Ví dụTraceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb2 Thực hiện giao dịchGiao dịch là một cơ chế đảm bảo tính nhất quán của dữ liệu. Giao dịch có bốn thuộc tính sau -
API cơ sở dữ liệu Python 2. 0 cung cấp hai phương thức để cam kết hoặc khôi phục giao dịch Ví dụBạn đã biết cách thực hiện giao dịch. Đây lại là một ví dụ tương tự - Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb3 Hoạt động CAM KẾTCam kết là thao tác đưa ra tín hiệu xanh để cơ sở dữ liệu hoàn tất các thay đổi và sau thao tác này, không có thay đổi nào có thể được hoàn nguyên Đây là một ví dụ đơn giản để gọi phương thức cam kết Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb4 Thao tác QUAY LẠINếu bạn không hài lòng với một hoặc nhiều thay đổi và bạn muốn hoàn nguyên những thay đổi đó, hãy sử dụng phương thức rollback() Đây là một ví dụ đơn giản để gọi phương thức rollback() Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb5 Ngắt kết nối cơ sở dữ liệuĐể ngắt kết nối Cơ sở dữ liệu, hãy sử dụng phương thức close() Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb6 Nếu kết nối tới cơ sở dữ liệu bị đóng bởi người dùng bằng phương thức close(), mọi giao dịch chưa xử lý sẽ được DB khôi phục. Tuy nhiên, thay vì phụ thuộc vào bất kỳ chi tiết triển khai cấp thấp hơn nào của DB, ứng dụng của bạn sẽ tốt hơn nếu gọi cam kết hoặc khôi phục một cách rõ ràng Xử lý lỗiCó nhiều nguồn lỗi. Một vài ví dụ là lỗi cú pháp trong câu lệnh SQL được thực thi, lỗi kết nối hoặc gọi phương thức tìm nạp cho một xử lý câu lệnh đã bị hủy hoặc đã kết thúc API DB xác định một số lỗi phải tồn tại trong mỗi mô-đun cơ sở dữ liệu. Bảng sau đây liệt kê những ngoại lệ này Sr. Không. Ngoại lệ & Mô tả1Cảnh báo Được sử dụng cho các vấn đề không nghiêm trọng. Phải phân lớp StandardError 2Lỗi Lớp cơ sở cho các lỗi. Phải phân lớp StandardError 3Lỗi giao diện Được sử dụng cho các lỗi trong mô-đun cơ sở dữ liệu, không phải chính cơ sở dữ liệu. Phải phân lớp Lỗi 4cơ sở dữ liệulỗi Được sử dụng cho các lỗi trong cơ sở dữ liệu. Phải phân lớp Lỗi 5Lỗi dữ liệu Lớp con của DatabaseError đề cập đến lỗi trong dữ liệu 6lỗi hoạt động Lớp con của DatabaseError đề cập đến các lỗi như mất kết nối với cơ sở dữ liệu. Những lỗi này thường nằm ngoài tầm kiểm soát của Python scripter 7Tính toàn vẹnLỗi Lớp con của Lỗi cơ sở dữ liệu cho các tình huống có thể làm hỏng tính toàn vẹn của quan hệ, chẳng hạn như các ràng buộc về tính duy nhất hoặc khóa ngoại 8Lỗi bên trong Lớp con của DatabaseError đề cập đến các lỗi bên trong mô-đun cơ sở dữ liệu, chẳng hạn như con trỏ không còn hoạt động 9Lỗi lập trình Lớp con của DatabaseError đề cập đến các lỗi như tên bảng không hợp lệ và những thứ khác có thể đổ lỗi cho bạn một cách an toàn 10Không được hỗ trợLỗi Lớp con của DatabaseError đề cập đến việc cố gắng gọi chức năng không được hỗ trợ Các tập lệnh Python của bạn sẽ xử lý các lỗi này, nhưng trước khi sử dụng bất kỳ ngoại lệ nào ở trên, hãy đảm bảo rằng MySQLdb của bạn có hỗ trợ cho ngoại lệ đó. Bạn có thể biết thêm thông tin về chúng bằng cách đọc DB API 2. 0 đặc điểm kỹ thuật Bạn có thể tạo cơ sở dữ liệu bằng Python không?Giới thiệu. SQLAlchemy là một thư viện Python để triển khai cơ sở dữ liệu SQL mà không cần sử dụng chính ngôn ngữ SQL . Nói cách khác, tất cả những gì bạn cần làm là triển khai cơ sở dữ liệu của mình bằng ngôn ngữ Python.
Làm cách nào để tạo người dùng MySQL trong Python?Tạo người dùng MySQL từ chương trình Python bằng PyMySQL. Tạo đối tượng kết nối yêu cầu gọi phương thức connect() của mô-đun PyMySQL bằng cách chỉ định tên người dùng hiện có và thông tin đăng nhập của người dùng, bộ ký tự của cơ sở dữ liệu và loại con trỏ
Làm cách nào để tạo tệp cơ sở dữ liệu trong Python?Các bước tạo cơ sở dữ liệu trong Python bằng sqlite3 . Bước 1. Tạo cơ sở dữ liệu và bảng. Trong bước này, bạn sẽ thấy cách tạo. . Bước 2. Chèn giá trị vào bảng. Đối với bước này, hãy chèn dữ liệu sau vào bảng 'sản phẩm'. . Bước 3. Hiển thị kết quả Làm cách nào để sử dụng Python trong cơ sở dữ liệu?Quy trình chung của một chương trình Python tương tác với cơ sở dữ liệu dựa trên MySQL như sau. . Kết nối với máy chủ MySQL Tạo cơ sở dữ liệu mới Kết nối với cơ sở dữ liệu mới được tạo hoặc hiện có Thực thi truy vấn SQL và tìm nạp kết quả Thông báo cho cơ sở dữ liệu nếu có bất kỳ thay đổi nào đối với bảng |