JavaRush /Java Blog /Random-ID /Kami menganalisis database dan bahasa SQL. (Bagian 2) - "...

Kami menganalisis database dan bahasa SQL. (Bagian 2) - "Proyek Java dari A sampai Z"

Dipublikasikan di grup Random-ID
Artikel dari seri tentang membuat proyek Java (tautan ke materi lain ada di akhir). Tujuannya adalah menganalisis teknologi utama, dan hasilnya adalah menulis bot telegram. "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 1Kesehatan yang baik, para pembaca yang budiman. Hari ini kita akan berbicara sedikit dan menulis lebih banyak, karena tangan kita mengingat lebih baik daripada mata kita. Anda mungkin bertanya-tanya: mengapa kami menggunakan MySQL? Misalnya, ada PostgreSQL yang sama dan solusi lainnya. Semuanya sederhana di sini. Pertama-tama, ini gratis. Kedua, ia memiliki antarmuka UI yang nyaman (kita akan membicarakannya di artikel terpisah). Ketiga, dia akrab dan menyenangkan bagi saya. Selain semua hal di atas, MySQL juga sangat umum.

Memeriksa pekerjaan rumah

Terakhir kali saya memberi tugas - instal MySQL di mesin saya dan masuk ke dalamnya. Melalui konsol, atau dengan cara lain. Apakah semuanya sudah selesai? "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 2Selamat bagi mereka yang melakukannya! Tidak peduli level apa pun yang Anda gunakan di JavaRush, penting untuk dapat menginstal dan mengonfigurasi alat yang diperlukan untuk bekerja sesuai dengan manual. Dan saya jamin, jumlahnya akan banyak. Mereka yang mencoba, tapi tidak berhasil, juga tidak takut. Hal ini tidak selalu terjadi pada kali pertama: terkadang Anda perlu istirahat dan mencoba lagi dengan kekuatan baru. Siapa yang menginstal MySQL sendiri - tulis "+" di komentar sehingga saya tahu ada yang melakukannya. Saya akan melakukannya sendiri juga. Karena saya tidak lagi memiliki laptop Windows, saya akan menampilkannya di MacBook. Saya rasa proses instalasinya tidak akan jauh berbeda. Bagi yang ingin menginstalnya sendiri menggunakan manual bahasa Inggris, silakan klik di sini .

Menginstal MySQL di MacOS

Pertama-tama, buka tautan berikut , pilih sistem operasi, baik itu Windows, Ubuntu atau MacOS, seperti gambar di bawah ini: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 3Unduh dan luncurkan. Namun, semuanya tidak berjalan baik bagi saya saat itu juga. Ternyata Apple tidak mengizinkan instalasi versi terbaru: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 4Anda tentu saja dapat menonaktifkan ini, tetapi MacBook berfungsi, dan saya tidak akan mengacaukan pengaturannya. Oleh karena itu, melalui trial and error, saya menemukan versi yang dapat diinstal - ini adalah 5.7.21 . Untuk menemukan versi lain, buka tab Arsip dan pilih versi yang diinginkan: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 5Selanjutnya, jalankan file yang diunduh. Klik berikutnya, berikutnya, berikutnya, tetapi pada akhirnya, berhati-hatilah! Akan ada username dan password untuk login ke database. Bagi saya tampilannya seperti ini: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 6Di ​​sini dikatakan bahwa akan ada pengguna dengan nama root dan kata sandi Vac/zto=.24q . Ini menyelesaikan instalasi.

Masuk ke baris perintah MySQL

Untuk masuk, Anda perlu memastikan bahwa server MySQL dihidupkan. Untuk melakukan ini, buka System Preferences , temukan ikon MySQL di sana: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 7Buka dan lihat bahwa server harus dihidupkan terlebih dahulu. Untuk melakukan ini, cukup klik Mulai Server MySQL dan selesai. Ya, Anda juga dapat mencentang kotak agar server dimulai di latar belakang setiap kali mesin dinyalakan. "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 8Penting untuk dicatat bahwa saya akan memulai semua permintaan di terminal dengan simbol $ untuk memperjelasnya. Selanjutnya, Anda perlu terhubung langsung ke server MySQL melalui baris perintah. Untuk melakukan ini, buka terminal dan tulis: $ mysql Dan ada dua opsi:
  1. Jika responsnya adalah “ERROR 1045 (28000): Akses ditolak untuk pengguna 'roman_beskrovnyi'@'localhost' (menggunakan kata sandi: NO" , maka ini berarti server telah diinstal dan dipanggil kembali. Anda hanya perlu memberikan perintah yang benar untuk itu.
  2. Jika jawabannya adalah perintah tidak ditemukan: mysql , tidak apa-apa - tidak ada tautan ke server. Untuk melakukan ini, Anda perlu membuat alias dengan variabel mysql, jadi kami menulis baris berikut:

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

    Ini hanya akan membantu untuk sesi terminal ini. Tapi kami tidak membutuhkannya lagi - kami pasti tidak akan bekerja melalui terminal sepanjang waktu.

  3. MySQL tidak diinstal, jangan menipu komputer Anda.
Selanjutnya, kita menggunakan nama dan kata sandi yang diberikan saat instalasi dan menulis: $ mysql --user=root -p"Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 9 Di sana kita menulis kata sandi, dan kita akan senang dalam bentuk ini: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 10Hanya baris terakhir yang mengatakan bahwa kita login ke MySQL server terminal. Tapi kata sandi untuk root ini ternyata hanya satu kali saja, dan perlu diubah ke kata sandi lain. Tentu saja demi alasan keamanan. Jika kami tidak mengubahnya dan mencoba membuat database baru di server, kami akan menerima respons berikut: ERROR 1820 (HY000): Anda harus mereset kata sandi Anda menggunakan pernyataan ALTER USER sebelum menjalankan pernyataan ini . "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 11Mereka dipaksa, boleh dikatakan begitu. Baiklah, apakah ini sulit bagi kita? Mari kita buat kata sandinya lebih sederhana (ini hanya untuk pekerjaan lokal; untuk pekerjaan nyata, kata sandinya harus rumit, tentunya). Katakanlah root∫ , seperti nama pengguna. Untuk mengubah kata sandi, Anda perlu memasukkan baris: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Dan jawabannya akan seperti ini: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 12Untuk memastikan semuanya bekerja dengan benar, mari kita coba membuat database baru menggunakan sintaks berikut : $ CREATE DATABASE test_db; Untuk memastikan bahwa database tersebut telah dibuat di server, tulis perintah: $ SHOW DATABASES; Dan sebagai hasilnya kita mendapatkan yang berikut: "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 13Itu saja :) Tidak mungkin untuk mengatakan bahwa itu sederhana dan cepat. Oleh karena itu, siapa pun yang melakukannya sendiri - rasa hormat khusus. Bagi yang belum melakukannya jangan khawatir, ada panduan untuk semua jenis instalasi: Semuanya dijelaskan di sana dengan cukup masuk akal. Satu-satunya hal adalah semuanya dalam bahasa Inggris. Sekarang kita menulis baris pertama kita dalam SQL.

Menulis baris pertama kami dalam SQL

Seperti yang mungkin Anda perhatikan di atas, kami mengetahui dua perintah:
  1. BUAT DATABASE - membuat database di server;
  2. TAMPILKAN DATABASES - Menampilkan semua database yang dibuat dan tersedia di server.
Saya perhatikan bahwa SQL tidak peduli bagaimana kita menulis perintahnya - baik semuanya dalam huruf kapital atau tidak. Namun, menulis perintah dengan huruf kapital dianggap sopan. Selanjutnya, untuk menghapus database, Anda perlu menulis perintah DROP DATABASE database_name ; dimana database_name adalah nama database yang ingin kita hapus. Kita telah membuat database pengujian bernama test_db , jadi mari kita hapus. Untuk melakukan ini kita menulis: tes $ DROP DATABASE; Perlu dicatat bahwa respons Kueri OK, 0 baris terpengaruh (0,02 detik) sangat penting, karena ini mengonfirmasi bahwa permintaan berhasil. Selain itu, ini memberi tahu Anda berapa banyak baris dalam tabel yang diubah kueri ini dan dalam jangka waktu berapa lama. "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 15Secara umum, kata DROP bertanggung jawab untuk menghilangkan sesuatu. Dalam hal ini, kami menghapus database. Namun ini juga bisa digunakan untuk keperluan lain (misalnya menjatuhkan meja). Dan sekarang, percayalah , periksa hasilnya, mari kita lihat berapa banyak database yang tersisa: $ SHOW DATABASES; "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 16Seperti yang bisa kita lihat, tidak ada database bernama test_db. CHTD :D

Buat database dan tabel Anda sendiri

Buat database kota: $ BUAT DATABASE kota; Untuk bekerja di database tertentu, Anda harus masuk ke database tersebut. Untuk melakukan ini, gunakan perintah USE database_name , setelah itu semua perintah untuk bekerja dengan tabel akan dijalankan di database ini. $ GUNAKAN kota; Seperti yang terlihat dari respon - Basis data berubah , transisi ke basis data ini berhasil. "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 17Langkah selanjutnya adalah membuat tabel. Yang? Pertama, mari kita buat tabel dengan negara. Mengapa demikian? Karena kota memerlukan kunci asing ke negara tempatnya berada. Dan itu bisa didapat setelah negara-negara tersebut secara umum mulai ada di database (selanjutnya – disingkat database). Seperti yang kita ingat dari artikel sebelumnya , dalam tabel yang menjelaskan negara, kita memiliki dua bidang - ID dan nama, di mana ID adalah pengidentifikasi unik, dan nama adalah nama negara. Oleh karena itu, membuat database seperti itu semudah mengupas buah pir. Kami menulis: $ CREATE TABLE negara (id INT, nama VARCHAR(30)); "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 18Seperti yang Anda lihat, semuanya berjalan dengan baik. Dengan analogi SHOW DATABASES, kita dapat melihat daftar tabel: $ SHOW TABLES; "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 19Ini dia, meja kami. Sekarang mari belajar cara menghapus tabel. Untuk melakukan ini kami menulis: $ DROP TABLE negara; "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 20Penting untuk diingat bahwa setelah tabel atau database dihapus, tabel atau database tersebut tidak dapat dipulihkan!

Bekerja dengan meja

Mari kita kembalikan tabel yang kita buat. Untuk melakukan ini, Anda hanya perlu mengulangi apa yang telah Anda lakukan. Untuk melihat struktur tabel, Anda perlu menggunakan perintah berikut - DESC table_name : $ DESC country; "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 21Seperti yang Anda lihat, semua informasi tentang tabel dicatat di sini. Untuk menambahkan sesuatu ke tabel, Anda perlu menggunakan perintah INSERT INTO table_name VALUES() . Mari kita tambahkan tiga catatan untuk tiga negara: $ INSERT INTO country VALUES (1, 'Ukraine'); $ MASUKKAN KE NILAI negara (2, 'Rusia'); $ MASUKKAN KE NILAI negara(3, 'Belorus'); "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 22Untuk melihat apa yang disimpan dalam database, kita akan menggunakan permintaan sederhana untuk mendapatkan data. Untuk melakukan ini, kami ingin mendapatkan data semua bidang dari tabel negara. Ingat kalimat sebelumnya baik-baik karena query sqlnya akan seperti ini: $ SELECT * FROM country; Dimana * berarti Anda harus mengambil semua bidang. "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 23Inilah betapa indahnya yang kami dapatkan. Jika kita hanya ingin mendapatkan bidang tertentu, itu tidak menjadi masalah: alih-alih bintang, kita menulis nama bidang yang harus dipisahkan dengan koma. Cobalah sendiri ;) Kita sudah membuat tabel, tapi entah kenapa kita tidak mempunyai cukup informasi mengenainya. Besarnya populasi tentu tidak akan merugikan, bukan? Dan bagaimana cara melakukannya?
  1. Tambahkan bidang baru ke skema tabel - populasi.
  2. Perbarui entri yang ada.
Untuk yang pertama, kita akan menggunakan perintah ALTER TABLE table_name ADD COLUMN . Secara umum ALTER TABLE adalah sekumpulan perintah untuk operasi DDL (ingat apa itu? Sudah ada di artikel sebelumnya). Omong-omong, SELECT merujuk pada operasi DML. Mari kita tuliskan yang berikut ini: $ ALTER TABLE country ADD COLUMN Population INT; $ DESC negara; "Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 24Seperti yang Anda lihat dari gambar, kami telah berhasil menambahkan bidang baru ke tabel dan memeriksa dengan perintah kedua bahwa bidang tersebut ada dalam skema. Langkah kedua adalah memperbarui entri dalam tabel dan menetapkan nilai. Mari kita ambil nomornya dari Wikipedia. Bukan berarti saya memercayai mereka, namun demikian, ini adalah cara tercepat dan termudah. Untuk melakukan ini, gunakan perintah DML lain. Tapi pertama-tama, katakanlah apa yang ingin kita lakukan: kita ingin memperbarui tabel negara, membuat bidang populasi sama dengan 41806221 dalam catatan di mana id = 1. Dan inilah tampilan konstruksinya: UPDATE table_name SET table_row1 = value WHERE table_row2 = nilai2; Berdasarkan hal tersebut, kita menulis: $ UPDATE negara SET populasi = 41806221 WHERE id = 1; Di sini kami menggunakan kata kunci WHERE"Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 25 untuk pertama kalinya . Diperlukan penambahan nilai untuk pemfilteran. Misalnya, kali ini kami mengatakan bahwa perlu memperbarui hanya untuk bidang (bidang) yang idnya sama dengan satu (sampai kami memberi tahu sql bahwa ini adalah kunci utama - mungkin ada beberapa). Kita juga bisa menentukan kondisi seperti WHERE id > 2. Jika kita tidak menentukan pemfilteran sama sekali, nilai ini akan ditulis ke semua catatan tabel. Untuk Rusia, Belarusia, dan negara lain, perbarui diri Anda sendiri ;) Sekarang mari kita coba mendapatkan data dari tabel untuk bidang nama dan populasi, asalkan id lebih besar dari 1. $ SELECT nama, populasi FROM negara WHERE id >1; Jadi, kami hanya menerima ladang yang kami inginkan. Dengan menggunakan INSERT INTO kita dapat menentukan kolom mana yang ingin kita tambahkan dan kolom mana yang ingin kita biarkan kosong. Untuk melakukan ini, kami menulis: $ INSERT INTO country (nama, populasi) VALUES('Georgia', 1234566); Untuk memeriksa apa yang terjadi, mari kita lihat daftar semua bidang: $ SELECT * FROM country; Tanpa id, entrinya buruk, dan populasinya tentu saja diambil dari kepala, jadi Anda harus menghapusnya. Gunakan perintah DELETE FROM table_name : $ DELETE FROM country WHERE name = 'Georgia'; Dengan cara ini kita belajar cara menghapus field dari tabel."Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 26"Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 27"Proyek Java dari A hingga Z": kami menganalisis database dan bahasa SQL.  Bagian 2 - 28

Pekerjaan rumah

Pekerjaan rumah adalah sebagai berikut:
  1. Anda perlu menambahkan kunci utama (PRIMARY KEY) dari bidang ID ke skema tabel negara.
  2. Tambahkan negara lain ke tabel negara - Moldova.
  3. Berdasarkan skema artikel sebelumnya, buatlah tabel kota, yang akan berisi semua bidang yang dijelaskan. Nama fieldnya adalah sebagai berikut: id, nama, country_id, populasi.
  4. Tambahkan kunci utama ke tabel kota.
  5. Tambahkan kunci asing ke tabel kota.
Tugasnya menarik, bagi yang sudah tahu akan cepat dan tidak rumit. Bagi yang belum, ini akan menjadi penguat yang sangat baik dari materi artikel ini.

Mari kita simpulkan

Kami melakukan banyak hal dalam artikel ini. Pertama, kami menginstal dan memulai server database MySQL. Kedua, kita mempelajari seluruh daftar kata kunci dan kueri, yang dengannya kita sekarang dapat membuat/menghapus database dan tabel. Kami mempelajari cara menambahkan data ke tabel, memperbarui dan menghapusnya. Berikut semua perintah yang kami gunakan, beserta deskripsinya:
  • BUAT DATABASE nama_database; - membuat basis data baru
  • TAMPILKAN DATABASE; — melihat daftar database
  • JATUHKAN nama_database DATABASE; - hapus basis data
  • GUNAKAN nama_database; - bekerja di database
  • BUAT TABEL nama_tabel (id INT, ....); - membuat tabel
  • TAMPILKAN TABEL; — melihat daftar tabel
  • DESC TABLE nama_tabel; — lihat diagram tabel
  • DROP TABLE nama_tabel; - hapus tabel
  • MASUKKAN KE NILAI nama_tabel(); - tambahkan bidang ke tabel
  • PILIH * DARI nama_tabel WHERE tabel_baris = nilai; — dapatkan field dalam tabel dengan kondisi setelah WHERE
  • PILIH * DARI nama_tabel; - dapatkan semua bidang di tabel
  • ALTER TABLE nama_tabel TAMBAHKAN KOLOM nama_kolom COLUMN_TYPE; — menambahkan kolom bidang baru ke skema tabel
  • UPDATE talbe_name SET talbe_row1 = nilai1 WHERE table_row2 = nilai2; — perbarui catatan dalam tabel: mengatur nilai satu bidang sesuai dengan kondisi bidang lain
  • HAPUS DARI nama_tabel WHERE tabel_baris1 = nilai1; — menghapus sebuah field (atau beberapa field) dari tabel dalam kondisi tertentu.
Saya pikir kami melakukan pekerjaan luar biasa dengan Anda. Saya mengundang semua orang yang menyukai karya saya untuk berlangganan akun GitHub saya , tempat saya memposting proyek menarik dan perkembangan yang terjadi dalam karier saya. Saya mengundang semua orang yang tertarik bekerja di open source untuk berpartisipasi dalam proyek saya (repositori). Terima kasih atas perhatian Anda. Nantikan artikel berikutnya tentang database yang akan segera hadir.

Daftar semua materi dalam seri ini ada di awal artikel ini.

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