Python, pengantar database

Basis data


Halo, di sini dan sekarang saya ingin memberi tahu Anda apa itu database, mengapa dibutuhkan, dll; untuk bekerja dengan mereka, kita akan menggunakan python dan library sqlite3-nya.


Database - satu set data yang disimpan sesuai dengan skema data, dimanipulasi sesuai dengan aturan alat pemodelan data


Inilah yang dikatakan Yandex kepada kita, tetapi dengan kata-kata sederhana, tanpa mempelajari semua konsep ini, maka:


Databases (DB) - perpustakaan yang menyimpan data dalam satu bentuk atau lainnya.


Yaitu, bagaimana kita bisa datang ke perpustakaan dan mengambil buku "War and Peace", mengetahui bahwa itu akan terletak di bagian novel, dengan huruf "B", dan dari database kita dapat mengambil catatan untuk argumen tertentu, dalam hal ini genre.


Dan di sini muncul pertanyaan.


Bagaimana cara melakukannya?

Dan untuk menjawab pertanyaan ini, kita perlu tahu sesuatu.


Bagaimana data disimpan dalam basis data


Pertama, Anda perlu memahami bahwa basis data dibagi menjadi:


  • Relasional
  • Jaringan
  • Hierarkis

Database jaringan dan hierarkis:

Database seperti itu adalah grafik dan menyimpan informasi di dalamnya.


  • Hierarkis - grafik pohon
  • Jaringan - Hitungan Lengkap

Kami tidak akan mempertimbangkan data basis data di sini. Jadi mari kita beralih ke database relasional.


Database relasional

Database relasional - database di mana data disimpan dalam bentuk tabel, misalnya, Exel.


SQL adalah database relasional, dan semua data di dalamnya disimpan dalam sebuah tabel. Sebagai contoh, ini:





Saya pikir kita menjawab pertanyaan itu, dan kita bisa melangkah lebih jauh.


Mengapa kita membutuhkan basis data?


Sepanjang hidup, umat manusia telah mengumpulkan sejumlah besar informasi, dan basis data, seperti yang kita ketahui, mengumpulkan dan mengurutkan informasi ini ke dalam tabel (dalam kasus kami) . Dan basis data membantu menavigasi dengan tenang semua tumpukan informasi ini, menambahkannya di sana, mengubahnya, dll.


Dari teori ke praktik


Sekarang kita akan berlatih, tetapi sebelum itu saya ingin mengklarifikasi sesuatu. Di atas, saya menulis baris ini:


SQL adalah database relasional, dan semua data di dalamnya disimpan dalam sebuah tabel.

Dan seperti yang Anda tahu, ini tidak benar.
SQL adalah bahasa permintaan terstruktur. Secara kasar, ini adalah bahasa pemrograman yang memungkinkan Anda untuk mengelola basis data, tabel di dalamnya, dll.



Tungkai saya terkoreksi, mari kita pergi berlatih!


Instal sqlite3


Ya, ini konyol, tetapi Anda tidak pernah tahu apakah ada yang perlu


Saya tidak akan menjelaskan algoritma pemasangan, karena sudah lama saya lakukan, jika Anda perlu menginstal modul ini, silakan buka di sini.


Pembuatan basis data pertama


import sqlite3 as sql con = sql.connect('test.db') with con: cur = con.cursor() cur.execute("CREATE TABLE IF NOT EXISTS `test` (id INTEGER)") con.commit() 

Impor pertama, lalu "con =".
Saya jelaskan, sql.connect ("test.db") - membuat file bernama "test.db" jika diluncurkan untuk pertama kali. Yaitu, ia menerima jalur ke file dengan ekstensi .db


cur = con.cursor - memungkinkan kita untuk melakukan operasi dengan database, sisanya tidak penting.


cur.execute (...) - membuat tabel dengan uji nama dan hanya 1 kolom id, di mana semua data berupa angka


commit () - secara kasar, menyimpan basis data


Dan mari kita buat program yang menanyakan nama dan nama keluarga, dan menuliskannya ke basis data, lalu memilih angka atau menulisnya lagi dengan memilih angka.


 import sqlite3 as sql print("1 - \n2 - ") choice = int(input("> ")) con = sql.connect('test.db') with con: cur = con.cursor() cur.execute("CREATE TABLE IF NOT EXISTS `test` (`name` STRING, `surname` STRING)") if choice == 1: name = input("Name\n> ") surname = input("Surname\n> ") cur.execute(f"INSERT INTO `test` VALUES ('{name}', '{surname}')") elif choice == 2: cur.execute("SELECT * FROM `test`") rows = cur.fetchall() for row in rows: print(row[0], row[1]) else: print(" ") con.commit() cur.close() 

Kami akan melewatkan momen standar.


cur.execute ("INS ...") - Menambahkan data


cur.execute ("SeL ...") - Menerima data. Dan karena array diberikan di sana, maka kita beralih di atasnya, dan setelah itu kita juga mengambil data dari tuple.


SELECT, INSERT, DROP, dll. Apakah semua SQL.


cur.fetchall () adalah segala sesuatu yang berasal dari DB akan ditulis ke variabel.


Kesimpulan


Database adalah hal yang penting dan sangat diperlukan. Di sini kita telah menyentuh sebagian kecil dari itu sehingga sudah konyol. Oleh karena itu, agar benar-benar mengetahui cara kerjanya, saya menyarankan Anda untuk membaca semuanya di Internet, karena ada banyak informasi. Semoga beruntung

Source: https://habr.com/ru/post/id481084/


All Articles