Sử dụng cơ sở dữ liệu để lưu trữ dữ liệu nghe có vẻ phức tạp hơn nhiều so với thực tế. Trong bài viết này, chúng tôi sẽ đề cập đến cách sử dụng cơ sở dữ liệu để lưu trữ các loại dữ liệu khác nhau. Chúng tôi sẽ nhanh chóng xem xét cách bạn có thể tìm kiếm các tham số cụ thể và cách nhận được chính xác những gì bạn muốn Show
Trong các bài viết trước, chúng ta đã thấy cách lưu trữ dữ liệu vào các tệp văn bản thuần túy, đây không gì khác hơn là một cách cụ thể để sắp xếp các đối tượng của chúng ta. Trong lần phát hành thứ hai, chúng ta đã thấy cách tuần tự hóa các đối tượng phức tạp bằng cách sử dụng các công cụ tích hợp sẵn của Python để lưu chúng dưới dạng tệp nhị phân. Trong bài viết này, chúng ta sẽ khám phá một mô-đun rất hữu ích khác có tên là SQLite, mô-đun này sẽ cho phép chúng ta lưu trữ dữ liệu trong cơ sở dữ liệu cơ sở dữ liệuRất có thể bạn đã nghe nói về cơ sở dữ liệu trong ngữ cảnh của các trang web. Đó là nơi lưu trữ tên người dùng, email và mật khẩu của bạn. Đó là nơi chính phủ lưu tất cả thông tin họ có về bạn. Tuy nhiên, cơ sở dữ liệu cũng có thể được sử dụng cho các dự án quy mô nhỏ hơn, chẳng hạn như phần mềm điều khiển thiết bị trong phòng thí nghiệm hoặc phân tích dữ liệu Dạng cơ sở dữ liệu đơn giản nhất có thể được coi là một bảng với các cột và hàng. Nếu bạn đã từng sử dụng một bảng tính, thì nó trông giống hệt như vậy. Khung dữ liệu của Pandas có cùng định dạng. Các bảng có tiêu đề cho mỗi cột và một mục nhập khác nhau trên mỗi hàng. Điều này thực sự buộc bạn phải có hệ thống theo cách bạn lưu trữ thông tin của mình Tương tác với cơ sở dữ liệu là một chủ đề phức tạp vì nó thường liên quan đến việc học một ngôn ngữ kịch bản mới để lưu trữ và truy xuất thông tin. Trong hướng dẫn này, bạn sẽ học những điều cơ bản của một trong những ngôn ngữ này được gọi là SQL. Chỉ với những điều cơ bản, có rất nhiều thứ bạn có thể đạt được Một điều quan trọng cần chỉ ra là thông thường bạn cần cài đặt thêm phần mềm để sử dụng cơ sở dữ liệu. Nếu bạn đã từng nghe nói về MySQL hoặc Postgres, bạn có thể biết rằng đó là những thư viện lớn cần có một khóa học toàn bộ về chính họ. Tuy nhiên, Python gói SQLite, một cơ sở dữ liệu tệp đơn, rất đơn giản. Không cần phần mềm bổ sung để chạy các ví dụ ở đây Tạo bảngHãy bắt đầu nhanh chóng với SQLite. Điều đầu tiên bạn cần làm để làm việc với cơ sở dữ liệu là tự tạo cơ sở dữ liệu. Trong trường hợp của SQLite, đây sẽ là một tệp. nó là dễ dàng như thế này
Khi bạn sử dụng 5, SQLite sẽ cố mở tệp mà bạn đang chỉ định và nếu nó không tồn tại, nó sẽ tạo một tệp mới. Khi bạn có cơ sở dữ liệu, bạn cần tạo một bảng trong đó. Đây là nơi ngôn ngữ SQL mà tôi đã đề cập trước đây phát huy tác dụng. Giả sử bạn muốn tạo một bảng lưu trữ hai biến, mô tả về thử nghiệm và tên của người thực hiện thử nghiệm. Bạn sẽ làm như sau
Sau khi mở (hoặc tạo) cơ sở dữ liệu, chúng ta phải tạo một con trỏ. Con trỏ sẽ cho phép bạn thực thi mã SQL. Để tạo một bảng, chúng ta cần sử dụng lệnh sau
Nó khá mô tả. bạn đang tạo một bảng có tên là thử nghiệm với hai cột. 6 và 7. Mỗi một trong những cột đó sẽ thuộc loại 8. Đừng lo lắng quá nhiều về nó ngay bây giờ. Lệnh 9 lưu các thay đổi vào cơ sở dữ liệu và sau đó bạn đóng kết nối. Xin chúc mừng, bạn đã tạo bảng đầu tiên của mìnhVấn đề hiện tại là không có phản hồi về những gì bạn đã làm. Ví dụ: nếu bạn đang sử dụng PyCharm, thì nó đi kèm với triển khai SQLite tích hợp. Do đó, bạn có thể chỉ cần nhấp vào tệp và bạn sẽ có thể điều hướng qua nội dung của cơ sở dữ liệu. Bạn cũng có thể thử một ứng dụng như trình duyệt SQLite để trực quan hóa các tệp. Ngoài ra còn có một Tiện ích bổ sung của Firefox lưu ý Phần mở rộng. sqlite không bắt buộc. Nếu bạn sử dụng nó, nhiều chương trình cấp cao hơn sẽ xác định nó là cơ sở dữ liệu và có thể mở nó bằng một cú nhấp đúp. Bạn cũng có thể sử dụng. db, phổ biến hơn nếu làm theo hướng dẫn Flask hoặc Django Thêm dữ liệu vào cơ sở dữ liệuBây giờ bạn đã có một cơ sở dữ liệu, đã đến lúc lưu trữ một số dữ liệu vào đó. Tất cả các ví dụ luôn bắt đầu bằng cách tạo một kết nối và một con trỏ, từ giờ trở đi chúng ta sẽ bỏ qua phần này, nhưng bạn nên đưa vào mã của mình. Thêm thông tin vào cơ sở dữ liệu cũng liên quan đến việc sử dụng SQL. Bạn sẽ cần phải làm như sau ________số 8_______Bạn có thể chạy lệnh này bao nhiêu lần tùy ý và nếu bạn đang kiểm tra cơ sở dữ liệu của mình bằng một công cụ bên ngoài, bạn sẽ thấy rằng bạn tiếp tục thêm hàng vào bảng. Như bạn thấy ở trên, mã SQL có thể phát sinh vấn đề nếu bạn đang sử dụng các biến thay vì văn bản thuần túy Hãy tưởng tượng rằng bạn cố gắng lưu một chuỗi bao gồm ký tự 0. SQL sẽ nghĩ rằng 0 từ biến của bạn thực sự đang đóng đối số và nó sẽ báo lỗi. Tệ hơn nữa, nếu đó là một biến do người khác gửi, điều này có thể dẫn đến một thứ gọi là SQL injection. Theo cách tương tự, trong đó Pickle có thể được sử dụng để chạy mã tùy ý, SQL có thể bị lừa để thực hiện các thao tác không mong muốn. Chẳng mấy chốc bạn sẽ có thể hiểu được trò đùa SQL injection của XKCDMột cách thích hợp để thêm các giá trị mới vào một bảng là
Giả sử rằng quyền truy cập vào cơ sở dữ liệu chỉ là của bạn, tôi. e. bạn sẽ không lấy các biến từ công chúng, bạn không nên lo lắng quá nhiều về sự an toàn. Trong mọi trường hợp, điều quan trọng là phải nhận thức được Truy xuất dữ liệuBây giờ bạn đã có một số dữ liệu được lưu trữ trong cơ sở dữ liệu, chúng tôi cần truy xuất dữ liệu đó. Bạn có thể làm như sau
Dòng đầu tiên yêu cầu tất cả các cột từ thử nghiệm. Đó là ý nghĩa của 2. Dòng thứ hai thực sự nhận được các giá trị. Chúng tôi đã sử dụng 3, nhưng bạn cũng có thể sử dụng 4 để lấy chỉ một phần tửCho đến nay, không có gì đặc biệt. Hãy tưởng tượng rằng bạn chỉ muốn nhận các mục có liên quan đến một người dùng cụ thể. Bạn có thể làm như sau
lưu ý SQL không phân biệt chữ hoa chữ thường đối với các lệnh của nó. CHỌN hoặc chọn hoặc Chọn có nghĩa giống nhau. Tuy nhiên, nếu bạn thay Aquiles cho aquiles, kết quả sẽ khác Tất nhiên, cũng có thể xảy ra trường hợp không có mục nhập nào phù hợp với tiêu chí của bạn và do đó, kết quả sẽ là một danh sách trống. Một lần nữa, hãy nhớ rằng những gì chúng ta đang tìm kiếm, 5 có thể là một biến, và một lần nữa bạn có thể gặp lỗi SQL nếu bạn có các ký tự đặc biệtTại thời điểm này, có hai mối quan tâm có thể xuất hiện trong đầu bạn. Một mặt, không có cách nào để tham khảo các mục cụ thể trong cơ sở dữ liệu. Hai bài viết khác nhau, cùng một nội dung thì không thể phân biệt được với nhau Khác là nhiều hơn một yêu cầu tính năng. Hãy tưởng tượng rằng bạn muốn lưu trữ thêm thông tin về người dùng, không chỉ tên. Sẽ không hợp lý khi thêm các cột bổ sung vào cơ sở dữ liệu thử nghiệm vì chúng tôi sẽ sao chép rất nhiều thông tin. Lý tưởng nhất là chúng tôi sẽ bắt đầu một bảng mới, chỉ để đăng ký người dùng và thông tin của họ Thêm khóa chínhNếu bạn đã từng xem bất kỳ chương trình bảng tính nào hoặc thậm chí là Khung dữ liệu Pandas, bạn có thể nhận thấy rằng mỗi hàng được xác định bằng một số. Điều này rất tiện lợi vì khi bạn biết rằng thông tin quan trọng nằm ở dòng N, bạn chỉ cần nhớ số đó và truy xuất dữ liệu một cách cụ thể Bảng mà chúng tôi đã tạo không bao gồm cách đánh số này, còn được gọi là khóa chính. Thêm một cột mới thường không phải là vấn đề, nhưng vì chúng tôi đang xử lý khóa chính, SQLite không cho phép chúng tôi thực hiện điều đó trong một bước. Chúng ta nên tạo một bảng mới, sao chép nội dung của bảng cũ, v.v. Vì chúng tôi chỉ có dữ liệu về đồ chơi nên chúng tôi có thể bắt đầu lại từ đầu Đầu tiên, chúng tôi sẽ xóa bảng khỏi cơ sở dữ liệu, làm mất tất cả nội dung của nó. Sau đó, chúng tôi sẽ tạo một bảng mới, với khóa chính của nó và chúng tôi sẽ thêm một số nội dung vào đó. Chúng ta có thể làm mọi thứ với một lệnh SQL rất dài thay vì chạy nhiều 6. Đối với điều đó, chúng tôi sử dụng ký hiệu trích dẫn ba lần của Python
Phần quan trọng ở đây là lệnh SQL. Đầu tiên, chúng tôi loại bỏ bảng nếu nó tồn tại, điều đó có nghĩa là chúng tôi sẽ xóa nó và mất tất cả nội dung của nó. Sau đó, chúng tôi tạo lại bảng thử nghiệm, nhưng lần này chúng tôi thêm một cột mới có tên là 7, thuộc loại số nguyên. Ở cuối câu lệnh, chúng tôi xác định 7 là khóa chính. Sau đó, chúng tôi thêm hai mục vào bảng để làm ví dụNếu bạn chạy lại mã truy xuất, bạn sẽ nhận thấy rằng mỗi phần tử có một số duy nhất xác định nó. Nếu chúng tôi muốn tìm nạp cái đầu tiên (hoặc cái thứ hai, v.v. ), chúng ta chỉ cần làm như sau
Lưu ý rằng chúng tôi đang sử dụng 9 thay vì 0 vì chúng tôi biết rằng đầu ra chỉ nên là một phần tử. Kiểm tra sự khác biệt nếu bạn sử dụng một hoặc lệnh khác trong dữ liệu mà bạn nhận được từ cơ sở dữ liệuViệc thêm khóa chính là điều cơ bản để giảm thời gian tìm nạp dữ liệu mà bạn đang tìm kiếm. Không chỉ vì nó cho phép bạn tham khảo các mục nhập cụ thể mà còn vì cách cơ sở dữ liệu hoạt động, việc giải quyết dữ liệu theo khóa của chúng nhanh hơn nhiều Giá trị mặc định cho các trườngCho đến nay chúng tôi chỉ sử dụng hai loại biến. 8 và 2. Varchar đã được sử dụng cho tên của người thực hiện thí nghiệm và mô tả của nó, trong khi số nguyên chỉ được sử dụng cho số 7. Tuy nhiên, chúng ta có thể phát triển các bảng phức tạp hơn nhiều. Ví dụ: chúng ta có thể chỉ định không chỉ loại mà còn giới hạn độ dài. Chúng ta cũng có thể chỉ định các giá trị mặc định, đơn giản hóa các thao tác khi lưu trữ các mục mới vào bảng. Một trong những lợi thế của việc này là dữ liệu của chúng tôi sẽ rất nhất quánHãy tưởng tượng rằng bạn cũng muốn lưu trữ ngày chạy thử nghiệm, bạn có thể thêm một trường bổ sung và mỗi khi bạn tạo một thử nghiệm mới, bạn cũng thêm một trường có ngày hoặc bạn hướng dẫn cơ sở dữ liệu tự động thêm ngày. Tại thời điểm tạo bảng, bạn nên làm như sau
Lưu ý trường mới có tên là 4, sử dụng loại 5 và cũng chỉ định giá trị 6. Nếu bạn kiểm tra hai thử nghiệm đã chèn (bạn có thể sử dụng mã của ví dụ trước), bạn sẽ thấy có một trường mới với ngày và giờ hiện tại. Bạn cũng có thể thêm các giá trị mặc định cho các trường khác, chẳng hạn 0Lần tới khi bạn thêm thử nghiệm mới, nếu bạn không chỉ định người dùng đã thực hiện thử nghiệm đó, thử nghiệm sẽ mặc định là 5 (tên tôi). Chỉ định giá trị mặc định là một cách rất hữu ích để tránh thiếu thông tin. Ví dụ: 4 sẽ luôn được thêm vào. Điều này đảm bảo rằng ngay cả khi ai đó quên tuyên bố rõ ràng thời gian của một thử nghiệm, thì ít nhất một giả định rất hợp lý đã được đưa raCác kiểu dữ liệu SQLiteSQLite khác với các trình quản lý cơ sở dữ liệu khác, chẳng hạn như MySQL hoặc Postgres vì tính linh hoạt của nó đối với các loại dữ liệu và độ dài. SQLite chỉ định nghĩa 4 loại trường
Và sau đó, nó xác định một thứ gọi là mối quan hệ, chỉ định loại dữ liệu ưa thích sẽ được lưu trữ trong một cột. Điều này rất hữu ích để duy trì khả năng tương thích với các nguồn cơ sở dữ liệu khác và có thể gây ra một số vấn đề đau đầu nếu bạn đang làm theo hướng dẫn được thiết kế cho các loại cơ sở dữ liệu khác. Loại chúng tôi đã sử dụng, 8 không phải là một trong những kiểu dữ liệu được chỉ định, nhưng nó được hỗ trợ thông qua các mối quan hệ. Nó sẽ được coi là trường 0Cách SQLite quản lý các loại dữ liệu, nếu bạn chưa quen với cơ sở dữ liệu, không quan trọng. Nếu bạn chưa quen với cơ sở dữ liệu, bạn chắc chắn nên xem tài liệu chính thức để hiểu sự khác biệt và tận dụng tốt nhất các khả năng Cơ sở dữ liệu quan hệCó lẽ bạn đã nghe nói về cơ sở dữ liệu quan hệ. Cho đến nay, theo cách chúng tôi đã sử dụng SQLite, thật khó để thấy những lợi thế so với các tệp CSV đơn giản, chẳng hạn. Nếu bạn chỉ đang lưu trữ một bảng, thì bạn hoàn toàn có thể làm điều tương tự với bảng tính hoặc Khung dữ liệu Pandas. Sức mạnh của cơ sở dữ liệu đáng chú ý hơn nhiều khi bạn bắt đầu tạo mối quan hệ giữa các trường Trong các ví dụ mà chúng ta đã thảo luận trước đó, bạn đã thấy rằng khi chạy thử nghiệm, bạn muốn lưu trữ ai là người dùng thực hiện phép đo. Số lượng người dùng rất có thể sẽ bị hạn chế và có lẽ bạn muốn theo dõi một số thông tin, chẳng hạn như tên, email và số điện thoại Cách tổ chức tất cả thông tin này là tạo một bảng trong đó bạn lưu trữ người dùng. Mỗi mục nhập sẽ có một khóa chính. Từ bảng các thí nghiệm, thay vì lưu tên người dùng, bạn lưu khóa của người dùng. Ngoài ra, bạn có thể chỉ định rằng, khi tạo thử nghiệm mới, người dùng được liên kết với thử nghiệm đã tồn tại. Tất cả điều này đạt được thông qua việc sử dụng khóa ngoại, như thế này 1cảnh báo tùy thuộc vào cài đặt SQLite của bạn, bạn có thể cần thêm hỗ trợ cho các khóa ngoại. Chạy lệnh sau khi tạo cơ sở dữ liệu để chắc chắn. 1Trước tiên, bạn cần tạo một người dùng mới, ví dụ 2Và sau đó bạn có thể tạo một thử nghiệm mới 3Lưu ý rằng nếu bạn cố thêm thử nghiệm với user_id không tồn tại, bạn sẽ gặp lỗi 4Khi bạn chạy đoạn mã trên bằng Python, bạn sẽ nhận được thông báo sau 5Đó là chính xác những gì chúng tôi đã mong đợi. Tuy nhiên, hãy lưu ý rằng nếu bạn bỏ đi phần 2, tôi. e. , nếu bạn không chỉ định giá trị, giá trị này sẽ mặc định là 3, giá trị này hợp lệ (thử nghiệm không có người dùng). Nếu bạn muốn ngăn chặn hành vi này, bạn sẽ cần chỉ định nó một cách rõ ràng 6Bây giờ chúng tôi đã xác định rằng 2 là 5. Nếu chúng ta cố chạy đoạn mã sau 7Nó sẽ báo lỗi sau 8Lưu trữ mảng Numpy vào cơ sở dữ liệuLưu trữ dữ liệu phức tạp vào cơ sở dữ liệu không phải là một nhiệm vụ tầm thường. Cơ sở dữ liệu chỉ xác định một số kiểu dữ liệu và các mảng có nhiều mảng không nằm giữa chúng. Điều này có nghĩa là chúng ta phải chuyển đổi các mảng thành thứ có thể được lưu trữ trong cơ sở dữ liệu. Vì SQLite chỉ chỉ định 4 loại dữ liệu chính, nên chúng ta nên chọn một trong số chúng. Trong bài viết trước chúng ta đã thảo luận rất nhiều về tuần tự hóa. Những ý tưởng tương tự có thể được sử dụng để lưu trữ một mảng trong cơ sở dữ liệu Ví dụ: bạn có thể sử dụng Pickle để chuyển đổi dữ liệu của mình thành byte và lưu trữ chúng bằng cách sử dụng base64 làm trường 0. Bạn cũng có thể lưu trực tiếp đối tượng Pickle vào một trường 7. Bạn có thể chuyển đổi mảng của mình thành một danh sách và phân tách các giá trị của nó bằng 8 hoặc sử dụng một ký hiệu cụ thể để phân tách các hàng và cột, v.v. Tuy nhiên, SQLite cũng cung cấp khả năng đăng ký các loại dữ liệu mới. Như đã giải thích trong câu trả lời này trên Stack Overflow, chúng tôi cần tạo bộ điều hợp và bộ chuyển đổi 9Những gì chúng tôi đang làm trong đoạn mã trên là cho SQLite biết phải làm gì khi một trường loại 9 được khai báo. Khi chúng tôi đang lưu trữ trường, nó sẽ được chuyển đổi thành byte, có thể được lưu trữ dưới dạng BLOB trong cơ sở dữ liệu. Khi truy xuất dữ liệu, chúng ta sẽ đọc các byte và chuyển đổi chúng thành một mảng có nhiều mảng. Lưu ý rằng điều này là có thể bởi vì các phương thức 0 và 1 biết cách xử lý các byte khi lưu/tảiĐiều quan trọng cần lưu ý là không cần thiết phải đăng ký cả bộ điều hợp và bộ chuyển đổi. Cái đầu tiên chịu trách nhiệm chuyển đổi một kiểu dữ liệu cụ thể thành một đối tượng tương thích với SQLite. Bạn có thể làm điều này để tự động tuần tự hóa các lớp của riêng mình, v.v. Trình chuyển đổi chịu trách nhiệm chuyển đổi lại thành đối tượng của bạn. Bạn có thể chơi xung quanh và xem điều gì sẽ xảy ra khi bạn không đăng ký một trong hai Khi bạn xác định bảng của mình, bạn có thể sử dụng kiểu dữ liệu 'mảng' mới tạo của mình 0Điều quan trọng cần lưu ý là để đoạn mã trên hoạt động khi bạn bắt đầu kết nối với cơ sở dữ liệu, bạn nên thêm đoạn mã sau 1Tùy chọn 2 yêu cầu SQLite sử dụng bộ điều hợp và bộ chuyển đổi đã đăng ký. Nếu bạn không bao gồm tùy chọn đó, nó sẽ không sử dụng những gì bạn đã đăng ký và sẽ mặc định là các loại dữ liệu tiêu chuẩnĐể lưu trữ mảng, bạn có thể làm như sau 2Điều này sẽ chuyển đổi mảng của bạn thành byte và nó sẽ lưu trữ nó trong cơ sở dữ liệu. Khi bạn đọc lại, nó sẽ biến Byte trở lại thành một mảng Điều bạn phải ghi nhớ là khi bạn lưu trữ các mảng có nhiều mảng (hoặc bất kỳ đối tượng không chuẩn nào) vào cơ sở dữ liệu, bạn sẽ mất đi những lợi thế nội tại của cơ sở dữ liệu, tôi. e. khả năng hoạt động trên các phần tử. Điều tôi muốn nói là với SQL, rất dễ dàng thay thế một trường trong tất cả các mục phù hợp với một tiêu chí, chẳng hạn, nhưng bạn sẽ không thể làm điều đó đối với một mảng có nhiều mảng, ít nhất là với các lệnh SQL kết hợp thông tinCho đến nay, chúng ta đã thấy cách tạo một số bảng có giá trị và cách liên kết chúng thông qua việc sử dụng khóa chính và khóa ngoại. Tuy nhiên, SQL còn mạnh hơn thế rất nhiều, đặc biệt là khi truy xuất thông tin. Một trong những điều bạn có thể làm là nối thông tin từ các bảng khác nhau thành một bảng duy nhất. Hãy nhanh chóng xem những gì có thể được thực hiện. Đầu tiên, chúng ta sẽ tạo lại các bảng với các thử nghiệm và người dùng, như chúng ta đã thấy trước đây. Bạn có thể check code tại đây. Bạn nên có hai mục cho người dùng và hai mục cho thử nghiệm Bạn có thể chạy đoạn mã sau 3Những gì bạn sẽ thấy được in ra là id của người dùng, tên và mô tả về thử nghiệm. Điều này tiện lợi hơn nhiều so với việc chỉ nhìn thấy id của người dùng vì bạn sẽ thấy ngay thông tin mà mình cần. Hơn nữa, bạn có thể lọc kết quả dựa trên thuộc tính của một trong hai bảng. Hãy tưởng tượng bạn muốn nhận các thử nghiệm được thực hiện bởi 3, nhưng bạn không biết id người dùng của nó. Bạn có thể thay đổi lệnh trên thành như sau 4Và bạn sẽ thấy rằng chỉ có dữ liệu liên quan đến người dùng đó được truy xuất Các câu lệnh tham gia rất phức tạp và rất linh hoạt. Bạn có thể nhận thấy rằng chúng tôi đã sử dụng tùy chọn 4, nhưng đó không phải là khả năng duy nhất. Ví dụ: nếu bạn muốn kết hợp các bảng không liên quan thông qua khóa ngoại, bạn muốn kết hợp dữ liệu từ các nguồn khác nhau thuộc cùng một ngày, bạn có thể sử dụng các kiểu kết hợp khác. Sơ đồ trong trang web này rất rõ ràng, nhưng đi sâu vào các chi tiết vượt quá khả năng của một hướng dẫn giới thiệuCách sử dụng cơ sở dữ liệu trong các dự án khoa họcViệc tận dụng sức mạnh của cơ sở dữ liệu không rõ ràng đối với các nhà phát triển lần đầu, đặc biệt nếu bạn không thuộc lĩnh vực phát triển web. Một trong những ưu điểm chính của cơ sở dữ liệu là bạn không cần phải ghi nhớ toàn bộ cấu trúc. Ví dụ: Hãy tưởng tượng rằng bạn sẽ có một dự án rất lớn, với hàng triệu phép đo của hàng nghìn thử nghiệm với hàng trăm người dùng. Nhiều khả năng bạn không thể tải tất cả thông tin như trong các biến bộ nhớ Bằng cách sử dụng cơ sở dữ liệu, bạn sẽ có thể lọc các phép đo được thực hiện bởi một người dùng cụ thể trong một khung thời gian nhất định hoặc phù hợp với một mô tả cụ thể mà không thực sự tải mọi thứ vào bộ nhớ. Ngay cả khi đơn giản, ví dụ này đã cho bạn thấy một trường hợp sử dụng rất rõ ràng trong đó Khung dữ liệu hoặc mảng có nhiều mảng sẽ không thành công Cơ sở dữ liệu được sử dụng trong nhiều dự án khoa học quy mô lớn, chẳng hạn như quan sát thiên văn, mô phỏng, v.v. Bằng cách sử dụng cơ sở dữ liệu, các nhóm khác nhau có thể cấp cho người dùng quyền truy cập vào các khả năng lọc và kết hợp, lấy dữ liệu mong muốn chứ không phải toàn bộ bộ sưu tập. Tất nhiên, đối với các nhóm nhỏ, nó có thể giống như một sự vượt quá. Nhưng hãy tưởng tượng rằng bạn có thể lọc qua dữ liệu của mình, được thu thập trong nhiều năm, để tìm một phép đo cụ thể kết luậnMột trong những thách thức chính của việc sử dụng cơ sở dữ liệu là chúng yêu cầu học một ngôn ngữ mới gọi là SQL. Trong bài viết này, chúng tôi đã cố gắng chỉ ra những khái niệm cơ bản nhất, cho phép mọi người bắt đầu và xây dựng con đường của mình thông qua các tìm kiếm thông minh của Google Python có hỗ trợ tích hợp cho SQLite, một cơ sở dữ liệu dựa trên tệp rất lý tưởng để bắt đầu. Không cần thiết lập thêm nữa, mọi thứ đều hoạt động tốt và nhiều hướng dẫn có thể tìm thấy trực tuyến liên quan đến SQL cũng sẽ hoạt động với SQLite Việc sử dụng cơ sở dữ liệu cho các dự án chỉ thực hiện một lần có thể là quá mức cần thiết, nhưng đối với các chương trình chạy lâu dài, chẳng hạn như phần mềm để kiểm soát các thiết lập hoặc phân tích dữ liệu tùy chỉnh, nó có thể mở ra cơ hội cho các giải pháp rất sáng tạo. Việc kết hợp cơ sở dữ liệu cho siêu dữ liệu và tệp cho dữ liệu có thêm lợi thế về tính di động cao (chia sẻ dữ liệu chỉ là chia sẻ một tệp) và một cách dễ dàng để tìm kiếm thông qua bộ sưu tập siêu dữ liệu được lưu trữ trên cơ sở dữ liệu Làm cách nào để lưu trữ dữ liệu từ Python sang SQLite?SQLite Python. Chèn dữ liệu . Đầ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 Con trỏ bằng cách gọi phương thức con trỏ của đối tượng Kết nối Thứ ba, thực hiện một câu lệnh INSERT Làm cách nào để truy cập cơ sở dữ liệu SQLite bằng Python?Python và SQL . nhập sqlite3 # Tạo kết nối SQL tới cơ sở dữ liệu SQLite của chúng tôi con = sqlite3. . nhập sqlite3 # Tạo kết nối SQL tới cơ sở dữ liệu SQLite của chúng tôi con = sqlite3. . nhập gấu trúc dưới dạng pd nhập sqlite3 # Đọc kết quả truy vấn sqlite vào DataFrame của gấu trúc con = sqlite3 Làm cách nào để lưu trữ đối tượng lớp trong cơ sở dữ liệu Python?Bạn không thể lưu trữ đối tượng trong DB. Những gì bạn làm là lưu trữ dữ liệu từ đối tượng và xây dựng lại nó sau. Một cách hay là sử dụng thư viện SQLAlchemy xuất sắc. Nó cho phép bạn ánh xạ lớp đã xác định của mình tới một bảng trong cơ sở dữ liệu
Làm cách nào để viết truy vấn SQLite bằng Python?Ví dụ về Python để chèn một hàng vào bảng SQLite . Kết nối với SQLite từ Python. . Xác định truy vấn Chèn SQL. . Nhận đối tượng con trỏ từ kết nối. . Thực hiện truy vấn chèn bằng phương thức exec(). . Cam kết thay đổi của bạn. . Nhận số hàng bị ảnh hưởng. . Xác minh kết quả bằng truy vấn SQL SELECT |