JavaRush /Blog Java /Random-MS /Kami menganalisis pangkalan data dan bahasa SQL - "Projek...

Kami menganalisis pangkalan data dan bahasa SQL - "Projek Java dari A hingga Z"

Diterbitkan dalam kumpulan
Artikel daripada siri tentang mencipta projek Java. Matlamatnya adalah untuk menganalisis teknologi utama, hasilnya menulis bot telegram. Bahagian pengenalan ada di sini . Aloha, jurutera perisian. Hari ini kita bercakap tentang pangkalan data dan bahasa SQL. "Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 1Untuk siapa artikel ini dimaksudkan? Ya kepada semua yang berminat. Ada yang boleh memulakan perjalanan mereka dengan artikel ini, yang lain akan dapat menyegarkan ingatan mereka tentang fakta menarik. Bahagian ini akan menjadi teori semata-mata. Sebelum kami memberitahu anda apakah pangkalan data dan sintaks SQL, kami perlu memahami dan menentukan sebab kami akan mengkajinya. Pada peringkat ini, kami akan bercakap SAHAJA tentang pangkalan data SQL: Kami tidak akan mempertimbangkan NoSQL dalam siri artikel ini.

Pangkalan data: apa itu

"Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 2Pangkalan data (selepas ini dirujuk sebagai DB) ialah tempat di mana data berstruktur disimpan , yang boleh diperoleh menggunakan bahasa pertanyaan. Pangkalan data bukan sahaja boleh menyimpan, tetapi juga memproses dan menukar maklumat dalam jumlah yang besar. Sebagai nota: cuba tukar set nilai dalam Excel dengan cepat berdasarkan beberapa kriteria. Pada dasarnya, tidak ada yang rumit. Tidak seperti dalam dunia sebenar kita yang tidak berdigit. Contohnya, menamakan semula lorong, jalan, bandar. Jika semuanya maya dan dimasukkan ke dalam pangkalan data, ia akan dinormalisasi, ia akan menjadi beberapa perkara kecil. Oleh itu, banyak media storan menderita kerana ia tidak boleh berubah secara automatik. Dalam konteks ini, SQL untuk pangkalan data ialah bahasa yang difahami oleh pangkalan data dan bertindak balas dengan sewajarnya. Katakan, menamakan semula bandar tidak sukar; menamakan semula Dnepropetrovsk kepada Dnipro akan kelihatan seperti ini:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Semua permintaan seterusnya kepada sistem akan menghasilkan nama yang kami perlukan.

Mengapa pangkalan data diperlukan?

Seperti yang telah saya katakan, menggunakan pangkalan data anda boleh menyimpan data. Tetapi apakah data ini? Untuk memahami menggunakan contoh kehidupan sebenar, kita boleh bercakap tentang beberapa aplikasi. Contohnya, mengenai bot telegram yang sama. Kami ingin tahu berapa ramai orang yang menggunakan bot. Bagaimana ini boleh dilaksanakan? Dalam aplikasi Java biasa, anda boleh mencipta banyak elemen unik - Set, yang akan menyimpan nama panggilan atau ID sembang pengguna. Adakah ini akan berkesan? akan. Tepat sehingga aplikasi Java dihentikan, dan sebaik sahaja ia dimulakan semula, set elemen unik akan kosong. Iaitu, data yang disimpan dalam aplikasi yang sedang berjalan hilang begitu sahaja. Apa yang boleh anda lakukan mengenainya? Anda boleh mengalihkan storan keadaan sistem (data) daripada aplikasi Java ke tempat lain. Anda boleh menyimpan ini dalam format CSV dalam fail biasa pada komputer anda. Anda boleh melakukannya dalam satu baris dalam fail berasingan. Anda boleh melakukan ini dan kemudian menulis ganti data ini sebelum aplikasi Java berhenti. Walaupun jaminan bahawa rakaman akan berjaya adalah jauh dari hampir 100%, kerana anda hanya boleh mengeluarkan kord kuasa pelayan dan rakaman tidak akan berlaku. Pendekatan ini mempunyai kelemahan yang ketara: tiada kefungsian untuk mendapatkan, mengagregat dan mencari maklumat pada peringkat fail. Ya, sudah tentu, anda boleh membaca fail dan mencipta objek untuknya, tetapi anda perlu mengepam semua data ke dalam aplikasi SETIAP kali. Dan mungkin terdapat banyak daripada mereka, sebagai contoh, beberapa gigabait. Ini boleh dielakkan dengan menyimpan data dalam pangkalan data. Bagaimana? Melalui jadual dan hubungan antara mereka. Ini adalah asas semua pangkalan data hubungan.

SQL: bahasa yang difahami oleh pangkalan data

Terdapat Sistem Pengurusan Pangkalan Data (selepas ini dirujuk sebagai DBMS) dan bahasa yang mereka fahami ialah SQL. SQL ialah bahasa pengaturcaraan untuk memanipulasi dan mengurus pangkalan data. Untuk memahami cara ini berfungsi, mari lihat rajah: "Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 3Pengguna menghantar pertanyaan SQL ke DBMS, DBMS memahami perkara yang perlu dilakukan, melakukannya dan jika permintaan itu adalah untuk mendapatkan data, kemudian mengembalikannya. Oleh itu, sebagai pembangun, kita perlu menguasai bahasa pertanyaan SQL. Anda mungkin berfikir, "Oh, bahasa lain. Dengan bantuan Tuhan, saya hampir tidak memahami Java di sini, dan anda segera menawarkan saya bahasa lain." Ini tidak benar: SQL dicipta sebagai bahasa spesifikasi untuk DBMS supaya akauntan yang sangat jauh dari pangkalan data dan pengaturcaraan secara umum boleh menulis dalam bahasa ini. Ini bermakna bahawa mempelajarinya tidak akan begitu sukar. Perkara utama ialah AMALAN-AMALAN-AMALAN. Hari ini akan ada teori, tetapi artikel seterusnya adalah mengenai amalan. Memandangkan pangkalan data hubungan ialah satu set jadual tatasusunan dua dimensi dan hubungan antara mereka, kerja akan berfungsi di sekelilingnya. Jika kita bercakap tentang contoh, kita boleh menunjukkan dua jadual - "Negara" dan "Bandar" dan cara ia disambungkan. "Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 4Pada peringkat ini, adalah penting untuk kita memahami bahawa rekod dalam jadual adalah data tentang beberapa objek dari dunia Java. Sebagai contoh, kedua-dua jadual ini boleh diterangkan dalam Java seperti ini:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
Nah, bukankah ia cantik, ya? Pangkalan data boleh menyimpan sebarang bilangan jadual. Dalam kes kami terdapat dua daripadanya.

Struktur jadual

Saya berpendapat bahawa semua orang telah menemui jadual Excel dalam satu cara atau yang lain dan anda memahami istilah baris dan lajur . Dalam konteks pangkalan data, kita bercakap lebih lanjut mengenai rekod dan medan: "Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 5Oleh itu, ternyata setiap objek kelas City adalah rekod dalam jadual dalam pangkalan data.

Kunci utama

"Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 6Ia sering berlaku bahawa medan dalam pangkalan data mempunyai nilai yang sama. Sebagai contoh, rangkaian sosial, di mana lebih daripada satu orang boleh ditemui dengan nama, nama keluarga dan juga patronimik. Dan pangkalan data hubungan memerlukan medan unik yang boleh digunakan untuk mengakses rekod. Ini dipanggil kunci pertama atau Kunci Utama. Biasanya, medan ID(id) digunakan sebagai kunci sedemikian - ini adalah singkatan untuk pengecam. Inilah sebabnya anda perlu menambah medan ID pada setiap jadual ."Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 7

Kunci luaran

Dalam contoh kami, medan sedemikian berada dalam jadual Bandar, yang menggunakan kunci daripada Negara. Dan ia berfungsi seperti ini: setiap bandar mengetahui pengecam maklumat unik untuk negaranya, dan jika kami mengambilnya dan membuat pertanyaan dalam pangkalan data, kami akan menerima maklumat komprehensif tentang negara itu. Seperti yang anda lihat dalam gambar, terdapat hubungan antara dua jadual: "Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 8Prinsip kunci asing ditunjukkan di sini.

Apakah bahagian yang terdapat dalam SQL?

By the way, semasa temu bual mereka sering ditanya apakah operasi dalam SQL:
  • DDL (Bahasa Definisi Data) ialah sekumpulan operator yang menukar/membuat jadual, strukturnya dan banyak lagi. Iaitu, mencipta jadual, memadamkannya, mencipta/memadam medan dalam jadual; mencipta kunci utama baharu dan sebagainya;
  • DML (Bahasa Manipulasi Data) ialah sekumpulan operator yang menguruskan pengubahsuaian data. Ini semua operasi yang menukar data dalam pangkalan data: menambah, mendapatkan, menukar dan memadam;
  • DCL (Bahasa Kawalan Data) ialah satu cara untuk mengesahkan hak pengguna untuk melakukan tindakan. Operasi untuk menyediakan akses dan hak kepada pengguna tertentu supaya dia boleh melakukan operasi DDL/DML.

Apakah jenis data yang terdapat dalam SQL

Jadual boleh menyimpan dan memproses jenis data tertentu. Segala-galanya di sini akan serupa dengan apa yang kami gunakan di Jawa. Mari kita bercakap tentang yang utama. Terdapat hanya tiga daripadanya, kami akan menambah yang lain mengikut keperluan dan/atau dikehendaki: "Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 9Seperti yang dapat dilihat daripada gambar, ini adalah:
  • INT - nilai integer. Digunakan untuk pengecam unik dan untuk integer mudah;
  • VARCHAR ialah Rentetan kami ;
  • DATE ialah LocalDate kami.
Setakat ini semuanya mudah, bukan? Jenis medan ditentukan semasa membuat jadual. Adalah jelas bahawa tidak mungkin untuk menulis nilai jenis yang berbeza ke dalam medan.

Apakah pengendali SQL

Operator ialah arahan berasingan yang melakukan beberapa tindakan. Operator terdiri daripada ayat, yang seterusnya terdiri daripada kata kunci yang digunakan dalam pertanyaan. Mari lihat contoh: "Projek Java dari A hingga Z": menganalisis pangkalan data dan bahasa SQL - 10Ia lebih menarik di sini, pertanyaan telah dibina di sini. Apa yang mereka lakukan di sana? Ia mudah, ia berkata: "Ambil tiga medan (Nama, Umur dan Tarikh Dicipta) daripada jadual Klien, pilih hanya rekod yang namanya sama dengan Roman."

Kesimpulan

Dalam artikel ini kami mula mengkaji pangkalan data. Kami memahami apa itu dan mengapa kami memerlukannya. Seterusnya, kami melihat tanda-tanda pertama SQL, yang akan kami bincangkan dengan lebih terperinci dalam artikel seterusnya. Seperti biasa, saya cadangkan mendaftar di GitHub dan mengikuti akaun saya untuk mengikuti siri ini dan projek saya yang lain yang saya kerjakan di sana.

Kerja rumah

Untuk menambah minat pada siri artikel tentang JRTB ini, akan ada tugasan kerja rumah dari semasa ke semasa. Sebagai contoh, tanpa tugasan hari ini, artikel seterusnya akan menjadi lebih sukar untuk difahami, kerana akan ada banyak latihan di sana. Oleh itu, tugasnya adalah untuk memasang MySQL DBMS pada komputer anda dan log masuk ke pangkalan data sama ada melalui konsol atau melalui penyelesaian lain. Terima kasih semua kerana membaca, jumpa lagi!

Senarai semua bahan dalam siri ini adalah pada permulaan artikel ini.

Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION