JavaRush /Blog Java /Random-MS /Kami menganalisis pangkalan data dan bahasa SQL. (Bahagia...

Kami menganalisis pangkalan data dan bahasa SQL. (Bahagian 2) - "Projek Java dari A hingga Z"

Diterbitkan dalam kumpulan
Artikel daripada siri tentang mencipta projek Java (pautan ke bahan lain ada di penghujung). Matlamatnya adalah untuk menganalisis teknologi utama, hasilnya menulis bot telegram. "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 1Kesihatan yang baik, pembaca yang budiman. Hari ini kita akan bercakap sedikit dan menulis lebih banyak, kerana tangan kita lebih mengingati daripada mata kita. Anda mungkin tertanya-tanya: mengapa kami menggunakan MySQL? Terdapat, sebagai contoh, PostgreSQL yang sama dan penyelesaian lain. Semuanya mudah di sini. Pertama sekali, ia percuma. Kedua, ia mempunyai antara muka UI yang mudah (kita akan membincangkannya dalam artikel berasingan). Ketiga, dia biasa dan menyenangkan saya. Sebagai tambahan kepada semua perkara di atas, MySQL juga sangat biasa.

Menyemak kerja rumah

Kali terakhir saya memberikan tugas - pasang MySQL pada mesin saya dan log masuk ke dalamnya. Melalui konsol, atau dengan cara lain. Adakah semuanya sudah selesai? "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 2Syabas kepada mereka yang melakukannya! Tidak kira tahap mana anda berada dalam JavaRush, adalah penting untuk dapat memasang dan mengkonfigurasi alatan yang diperlukan untuk bekerja mengikut manual. Dan saya memberi jaminan kepada anda, akan ada banyak daripada mereka. Mereka yang mencuba, tetapi tidak berjaya, juga tidak takut. Ini tidak selalu berlaku pada kali pertama: kadangkala anda perlu berehat dan cuba lagi dengan kekuatan yang baru. Siapa yang memasang MySQL sendiri - tulis "+" dalam ulasan supaya saya tahu bahawa seseorang melakukannya. Saya akan melakukan ini sendiri juga. Oleh kerana saya tidak lagi mempunyai komputer riba Windows, saya akan menunjukkannya pada MacBook. Saya tidak fikir proses pemasangan akan jauh berbeza. Bagi mereka yang ingin memasangnya sendiri menggunakan manual Bahasa Inggeris, sila klik di sini .

Memasang MySQL pada MacOS

Pertama sekali, pergi ke pautan berikut , pilih sistem pengendalian, sama ada Windows, Ubuntu atau MacOS, seperti yang ditunjukkan di bawah: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 3Muat turun dan lancarkan. Walau bagaimanapun, semuanya tidak berjalan lancar untuk saya serta-merta. Ternyata Apple tidak membenarkan pemasangan versi terkini: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 4Anda boleh, tentu saja, melumpuhkan ini, tetapi MacBook berfungsi, dan saya tidak akan mengacaukan tetapannya. Oleh itu, melalui percubaan dan ralat, saya menemui versi yang boleh dipasang - ini ialah 5.7.21 . Untuk mencari versi lain, pergi ke tab Arkib dan pilih versi yang diingini: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 5Seterusnya, jalankan fail yang dimuat turun. Klik seterusnya, seterusnya, seterusnya, tetapi pada akhirnya, berhati-hati! Akan ada nama pengguna dan kata laluan untuk log masuk ke pangkalan data. Bagi saya ia kelihatan seperti ini: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 6Ia mengatakan di sini bahawa akan ada pengguna dengan akar nama dan kata laluan Vac/zto=.24q . Ini melengkapkan pemasangan.

Log masuk ke baris arahan MySQL

Untuk log masuk, anda perlu memastikan pelayan MySQL dihidupkan. Untuk melakukan ini, pergi ke Keutamaan Sistem , cari ikon MySQL di sana: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 7Kami pergi ke dalamnya dan lihat bahawa pelayan mesti dihidupkan terlebih dahulu. Untuk melakukan ini, hanya klik Mulakan Pelayan MySQL dan itu sahaja. Ya, anda juga boleh menandai kotak supaya pelayan bermula di latar belakang setiap kali mesin dimulakan. "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 8Adalah penting untuk ambil perhatian bahawa saya akan memulakan semua permintaan dalam terminal dengan simbol $ untuk menjelaskannya. Seterusnya, anda perlu menyambung terus ke pelayan MySQL melalui baris arahan. Untuk melakukan ini, buka terminal dan tulis: $ mysql Dan terdapat dua pilihan:
  1. Jika jawapannya ialah "ERROR 1045 (28000): Akses ditolak untuk pengguna 'roman_beskrovnyi'@'localhost' (menggunakan kata laluan: NO" , maka ini bermakna pelayan dipasang dan sedang dipanggil semula. Anda hanya perlu menghantar arahan yang betul kepadanya.
  2. Jika jawapannya arahan tidak dijumpai: mysql , tidak mengapa - hanya tiada pautan ke pelayan. Untuk melakukan ini, anda perlu membuat alias dengan pembolehubah mysql, jadi kami menulis baris berikut:

    $ alias mysql=/usr/local/mysql/bin/mysql

    Ini hanya akan membantu untuk sesi terminal ini. Tetapi kami tidak memerlukan apa-apa lagi - kami pasti tidak akan berfungsi melalui terminal sepanjang masa.

  3. MySQL tidak dipasang, jangan menipu komputer anda.
Seterusnya, kami menggunakan nama dan kata laluan yang disediakan semasa pemasangan dan tulis: $ mysql --user=root -p"Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 9 Di sana kami menulis kata laluan, dan kami akan gembira dalam borang ini: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 10Hanya baris terakhir mengatakan bahawa kami log masuk ke MySQL pelayan terminal. Tetapi kata laluan untuk root ini ternyata menjadi kata laluan sekali, dan ia perlu ditukar kepada yang lain. Atas sebab keselamatan, sudah tentu. Jika kami tidak mengubahnya dan cuba mencipta pangkalan data baharu pada pelayan, kami akan menerima respons berikut: ERROR 1820 (HY000): Anda mesti menetapkan semula kata laluan anda menggunakan pernyataan ALTER USER sebelum melaksanakan pernyataan ini . "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 11Mereka dipaksa, kononnya. Baiklah, adakah ia sukar untuk kita? Mari buat kata laluan lebih mudah (ini hanya untuk kerja tempatan; untuk kerja sebenar, kata laluan mesti rumit, sudah tentu). Katakan root∫ , seperti nama pengguna. Untuk menukar kata laluan, anda perlu memasukkan baris: ALTER USER 'root'@'localhost' DIKENALPASTI OLEH 'root'; Dan jawapannya ialah ini: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 12Untuk memastikan semuanya berfungsi dengan betul, mari cuba buat pangkalan data baharu menggunakan sintaks berikut : $ CREATE DATABASE test_db; Untuk memastikan pangkalan data sedemikian telah dibuat pada pelayan, tulis arahan: $ SHOW DATABASES; Dan sebagai hasilnya kita mendapat yang berikut: "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 13Itu sahaja :) Tidak mustahil untuk mengatakan bahawa ia adalah mudah dan pantas. Oleh itu, sesiapa yang melakukannya sendiri - penghormatan khusus. Bagi mereka yang belum melakukannya, jangan risau, terdapat manual untuk semua jenis pemasangan: Segala-galanya diterangkan di sana dengan cukup waras. Satu-satunya perkara ialah semuanya dalam bahasa Inggeris. Sekarang kita menulis baris pertama kita dalam SQL.

Menulis baris pertama kami dalam SQL

Seperti yang mungkin anda perhatikan di atas, kami mengetahui dua arahan:
  1. CREATE DATABASE - mencipta pangkalan data pada pelayan;
  2. SHOW DATABASES - Menunjukkan semua pangkalan data yang dicipta dan tersedia pada pelayan.
Saya perhatikan bahawa SQL tidak peduli bagaimana kita menulis arahan mereka - sama ada semuanya dalam huruf besar atau tidak. Walau bagaimanapun, adalah dianggap adab untuk menulis arahan dengan huruf besar. Seterusnya, untuk memadam pangkalan data, anda perlu menulis arahan DROP DATABASE database_name ; di mana database_name ialah nama pangkalan data yang ingin kita padamkan. Kami telah pun mencipta pangkalan data ujian yang dipanggil test_db , jadi mari padamkannya. Untuk melakukan ini, kami menulis: $ DROP DATABASE ujian; Perlu diingat bahawa respons OK, 0 baris yang terjejas (0.02 saat) Pertanyaan adalah sangat penting, kerana ia mengesahkan bahawa permintaan itu berjaya. Selain itu, ia memberitahu anda berapa banyak baris dalam jadual pertanyaan ini berubah dan pada masa berapa. "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 15Secara umum, perkataan DROP bertanggungjawab untuk mengalih keluar sesuatu. Dalam kes ini, kami memadamkan pangkalan data. Tetapi ini juga boleh digunakan untuk tujuan lain (contohnya, menjatuhkan jadual). Dan sekarang, untuk mempercayai saya , semak hasilnya, mari lihat berapa banyak pangkalan data yang tinggal: $ TUNJUKKAN PANGKALAN DATA; "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 16Seperti yang kita lihat, tiada pangkalan data bernama test_db. CHTD :D

Buat pangkalan data dan jadual anda sendiri

Cipta pangkalan data bandar: $ CIPTA PANGKALAN DATA bandar; Untuk bekerja dalam pangkalan data tertentu, anda perlu log masuk kepadanya. Untuk melakukan ini, gunakan perintah USE database_name , selepas itu semua arahan untuk bekerja dengan jadual akan dijalankan dalam pangkalan data ini. $ GUNAKAN bandar; Seperti yang dapat dilihat daripada respons - Pangkalan data berubah , peralihan kepada pangkalan data ini berjaya. "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 17Langkah seterusnya ialah membuat jadual. yang mana? Baiklah, mula-mula, mari buat jadual dengan negara. Kenapa begitu? Kerana bandar memerlukan kunci asing kepada negara di mana ia berada. Dan ia boleh diperolehi selepas negara-negara ini secara amnya mula berada dalam pangkalan data (selepas ini - disingkatkan daripada pangkalan data). Seperti yang kita ingat daripada artikel sebelumnya , dalam jadual di mana negara diterangkan, kita mempunyai dua medan - ID dan nama, dengan ID ialah pengecam unik dan nama ialah nama negara. Oleh itu, mencipta pangkalan data sebegitu mudah seperti membedil pear. Kami menulis: $ CREATE TABLE negara (id INT, nama VARCHAR(30)); "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 18Seperti yang anda lihat, semuanya berjalan lancar. Dengan analogi dengan SHOW DATABASES, kita boleh melihat senarai jadual: $ SHOW TABLES; "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 19Ini dia, meja kami. Sekarang mari belajar cara memadam jadual. Untuk melakukan ini, kami menulis: $ DROP TABLE negara; "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 20Adalah penting untuk ambil perhatian bahawa sebaik sahaja jadual atau pangkalan data dipadamkan, ia tidak boleh dipulihkan!

Bekerja dengan meja

Mari kita pulihkan jadual yang kita buat. Untuk melakukan ini, anda hanya perlu mengulangi apa yang telah anda lakukan. Untuk melihat struktur jadual, anda perlu menggunakan arahan berikut - DESC table_name : $ DESC country; "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 21Seperti yang anda lihat, semua maklumat tentang jadual direkodkan di sini. Untuk menambah sesuatu pada jadual, anda perlu menggunakan perintah INSERT INTO table_name VALUES() . Mari tambah tiga rekod untuk tiga negara: $ MASUKKAN KE DALAM NILAI negara (1, 'Ukraine'); $ MASUKKAN KE DALAM NILAI negara (2, 'Rusia'); $ MASUKKAN KE DALAM NILAI negara (3, 'Belorus'); "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 22Untuk melihat apa yang disimpan dalam pangkalan data, kami akan menggunakan permintaan mudah untuk mendapatkan data. Untuk melakukan ini, kami ingin mendapatkan data semua medan daripada jadual negara. Ingat ayat sebelumnya dengan teliti kerana pertanyaan sql akan menjadi seperti ini: $ SELECT * FROM country; Di mana * bermakna anda perlu mengambil semua medan. "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 23Ini adalah betapa cantiknya kami. Jika kami hanya ingin mendapatkan medan tertentu, itu bukan masalah: bukannya bintang, kami menulis nama medan yang harus dipisahkan dengan koma. Cuba sendiri ;) Kami telah mencipta jadual, tetapi entah bagaimana kami tidak mempunyai maklumat yang mencukupi mengenainya. Saiz populasi pastinya tidak menyakitkan, bukan? Dan bagaimana untuk melakukannya?
  1. Tambahkan medan baharu pada skema jadual - populasi.
  2. Kemas kini entri sedia ada.
Untuk yang pertama, kami akan menggunakan arahan ALTER TABLE table_name ADD COLUMN . Secara umum, ALTER TABLE ialah satu set arahan untuk operasi DDL (ingat apa ini? Ia adalah dalam artikel sebelumnya). By the way, SELECT merujuk kepada operasi DML. Mari kita tulis yang berikut: $ ALTER TABLE negara TAMBAH LAjur populasi INT; $ DESC negara; "Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 24Seperti yang anda boleh lihat daripada rajah, kami telah berjaya menambah medan baharu pada jadual dan menyemak dengan arahan kedua bahawa medan itu berada dalam skema. Langkah kedua ialah mengemas kini entri dalam jadual dan menetapkan nilai. Mari kita ambil nombor dari Wikipedia. Bukan saya mempercayai mereka, tetapi bagaimanapun, ini adalah cara terpantas dan paling mudah. Untuk melakukan ini, gunakan arahan DML yang lain. Tetapi pertama-tama, katakan apa yang ingin kami lakukan: kami ingin mengemas kini jadual negara, jadikan medan populasi sama dengan 41806221 dalam rekod di mana id = 1. Dan inilah rupa pembinaan ini: KEMASKINI table_name SET table_row1 = nilai WHERE table_row2 = nilai2; Berdasarkannya, kami menulis: $ KEMASKINI SET negara populasi = 41806221 DI MANA id = 1; Di sini kami menggunakan kata kunci WHERE"Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 25 buat kali pertama . Ia diperlukan untuk menambah nilai untuk penapisan. Sebagai contoh, kali ini kami mengatakan bahawa perlu mengemas kini hanya untuk medan (medan) yang idnya sama dengan satu (sehingga kami memberitahu sql bahawa ini adalah kunci utama - mungkin terdapat beberapa daripadanya). Kami juga boleh menentukan syarat seperti WHERE id > 2. Jika kami tidak menentukan penapisan sama sekali, nilai ini akan ditulis pada semua rekod jadual. Untuk Rusia, Belarus dan negara lain, kemas kini diri anda ;) Sekarang mari cuba dapatkan data daripada jadual untuk medan nama dan populasi, dengan syarat id lebih besar daripada 1. $ PILIH nama, populasi DARI negara WHERE id >1; Oleh itu, kami hanya menerima bidang yang kami sendiri inginkan. Menggunakan INSERT INTO kita boleh menentukan medan yang ingin kita tambah dan yang mana yang ingin kita biarkan kosong. Untuk melakukan ini, kami menulis: $ INSERT INTO country (nama, populasi) VALUES('Georgia', 1234566); Untuk menyemak perkara yang berlaku, mari lihat senarai semua medan: $ SELECT * FROM country; Tanpa id, entri itu buruk, dan populasi, tentu saja, diambil dari kepala, jadi anda perlu memadamkannya. Gunakan perintah DELETE FROM table_name : $ DELETE FROM country WHERE name = 'Georgia'; Dengan cara ini kami belajar cara memadam medan daripada jadual."Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 26"Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 27"Projek Java dari A hingga Z": kami menganalisis pangkalan data dan bahasa SQL.  Bahagian 2 - 28

Kerja rumah

Kerja rumah adalah seperti berikut:
  1. Anda perlu menambah kunci utama (KUNCI UTAMA) daripada medan ID kepada skema jadual negara.
  2. Tambah negara lain ke jadual negara - Moldova.
  3. Menurut skema artikel sebelumnya, buat bandar jadual, yang akan mengandungi semua medan yang diterangkan. Nama medan adalah seperti berikut: id, nama, country_id, populasi.
  4. Tambahkan kunci utama pada jadual bandar.
  5. Tambahkan kunci asing pada jadual bandar.
Tugas itu menarik, bagi mereka yang tahu, ia akan menjadi cepat dan tidak rumit. Bagi mereka yang belum, ia akan berfungsi sebagai pengukuhan bahan yang sangat baik dari artikel ini.

Mari kita ringkaskan

Kami melakukan banyak perkara dalam artikel ini. Mula-mula, kami memasang dan memulakan pelayan pangkalan data MySQL. Kedua, kami mempelajari senarai keseluruhan kata kunci dan pertanyaan, dengan bantuan yang kini kami boleh mencipta/memadam pangkalan data dan jadual. Kami belajar cara menambah data pada jadual, mengemas kini dan memadamkannya. Berikut ialah semua arahan yang kami gunakan, bersama dengan penerangannya:
  • CIPTA PANGKALAN DATA nama_pangkalan data; - buat pangkalan data baharu
  • TUNJUKKAN PANGKALAN DATA; — lihat senarai pangkalan data
  • DROP DATABASE nama_pangkalan data; - padam pangkalan data
  • GUNAKAN nama_pangkalan data; - bekerja dalam pangkalan data
  • CIPTA TABLE table_name (id INT, ....); - buat jadual
  • TUNJUKKAN JADUAL; — lihat senarai jadual
  • DESC TABLE nama_jadual; — lihat rajah jadual
  • DROP TABLE nama_jadual; - padam jadual
  • INSERT IN TO table_name NILAI (); - tambah medan pada jadual
  • SELECT * FROM table_name WHERE table_row = nilai; — dapatkan medan dalam jadual di bawah keadaan selepas WHERE
  • PILIH * DARI nama_jadual; - dapatkan semua medan dalam jadual
  • ALTER TABLE table_name TAMBAH COLUMN column_name COLUMN_TYPE; — tambah medan medan baharu pada skema jadual
  • KEMASKINI talbe_name SET talbe_row1 = nilai1 WHERE table_row2 = value2; — kemas kini rekod dalam jadual: tetapkan nilai satu medan tertakluk kepada syarat untuk medan lain
  • PADAM DARI nama_jadual WHERE table_row1 = nilai1; — alih keluar medan (atau medan) daripada jadual di bawah keadaan tertentu.
Saya rasa kami telah melakukan kerja yang sangat baik dengan anda. Saya menjemput semua orang yang menyukai kerja saya untuk melanggan akaun GitHub saya , di mana saya menyiarkan projek dan perkembangan menarik yang berlaku dalam kerjaya saya. Saya menjemput semua orang yang berminat untuk bekerja dalam sumber terbuka untuk mengambil bahagian dalam projek saya (repositori). Terima kasih atas perhatian anda semua. Nantikan artikel seterusnya mengenai pangkalan data akan datang tidak lama 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