JavaRush /Blog Jawa /Random-JV /Kita nganalisa database lan basa SQL. (Bagian 2) - "Proye...

Kita nganalisa database lan basa SQL. (Bagian 2) - "Proyek Jawa saka A nganti Z"

Diterbitake ing grup
Artikel saka seri babagan nggawe proyek Jawa (pranala menyang materi liyane ana ing pungkasan). Tujuane kanggo nganalisa teknologi kunci, asile nulis bot telegram. "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 1Sehat, para maos ingkang minulya. Dina iki kita bakal ngomong sethithik lan nulis luwih akeh, amarga tangan kita ngelingi luwih apik tinimbang mripat kita. Sampeyan bisa uga mikir: kenapa kita nggunakake MySQL? Ana, contone, padha PostgreSQL lan solusi liyane. Kabeh iku prasaja ing kene. Kaping pisanan, iku gratis. Kapindho, nduweni antarmuka UI sing trep (kita bakal ngomong babagan iki ing artikel sing kapisah). Katelu, dheweke akrab lan nyenengake aku. Saliyane kabeh ing ndhuwur, MySQL uga umum banget.

Priksa PR

Pungkasan aku menehi tugas - nginstal MySQL ing mesinku lan mlebu. Liwat konsol, utawa kanthi cara liya. Apa kabeh wis rampung? "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 2Apik banget kanggo sing nindakake! Ora ketompo apa level sampeyan ing JavaRush, penting kanggo bisa nginstal lan ngatur alat sing dibutuhake kanggo karya miturut manual. Lan aku njamin, bakal ana akeh. Sing nyoba, nanging ora kasil, uga ora wedi. Iki ora mesthi kedadeyan sepisanan: kadhangkala sampeyan kudu ngaso lan nyoba maneh kanthi kekuatan seger. Sapa sing nginstal MySQL dhewe - tulis "+" ing komentar supaya aku ngerti yen ana sing nindakake. Aku uga bakal nindakake iki dhewe. Amarga aku ora duwe laptop Windows maneh, aku bakal nuduhake ing MacBook. Aku ora mikir proses instalasi bakal beda banget. Kanggo sing pengin nginstal dhewe nggunakake manual Inggris, monggo klik kene .

Nginstal MySQL ing MacOS

Kaping pisanan, pindhah menyang link ing ngisor iki , pilih sistem operasi, dadi Windows, Ubuntu utawa MacOS, kaya sing kapacak ing ngisor iki: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 3Ngundhuh lan miwiti. Nanging, kabeh ora pas kanggo aku langsung. Ternyata Apple ora ngidini instalasi versi paling anyar: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 4Sampeyan bisa, mesthi, mateni iki, nanging MacBook bisa digunakake, lan aku ora bakal kekacoan karo setelan. Mulane, liwat nyoba lan kesalahan, aku nemokake versi sing bisa diinstal - iki 5.7.21 . Kanggo nemokake versi liyane, pindhah menyang tab Arsip banjur pilih versi sing dikarepake: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 5Sabanjure, bukak file sing diundhuh. Klik sabanjuré, sabanjuré, sabanjuré, nanging ing pungkasan, ati-ati! Bakal ana jeneng pangguna lan sandhi kanggo mlebu menyang database. Kanggo kula katon kaya iki: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 6Ngandika ing kene bakal ana pangguna kanthi jeneng root lan sandhi Vac/zto=.24q . Iki ngrampungake instalasi.

Mlebu menyang baris perintah MySQL

Kanggo mlebu, sampeyan kudu nggawe manawa server MySQL wis diuripake. Kanggo nindakake iki, pindhah menyang Preferensi Sistem , temokake lambang MySQL ing kana: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 7Bukak lan deleng manawa server kudu diuripake dhisik. Kanggo nindakake iki, mung klik Start MySQL Server lan iku. Ya, sampeyan uga bisa mriksa kothak supaya server diwiwiti ing latar mburi saben mesin diwiwiti. "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 8Iku penting kanggo Wigati sing aku bakal miwiti kabeh panjalukan ing terminal karo simbol $ kanggo nggawe iku cetha. Sabanjure, sampeyan kudu langsung nyambung menyang server MySQL liwat baris printah. Kanggo nindakake iki, bukak terminal banjur tulis: $ mysql Lan ana rong pilihan:
  1. Yen tanggapane "ERROR 1045 (28000): Akses ditolak kanggo pangguna 'roman_beskrovnyi'@'localhost' (nggunakake tembung sandhi: NO" , banjur iki tegese server wis diinstal lan dieling-eling. Sampeyan mung kudu ngliwati perintah sing bener marang iku.
  2. Yen jawabane prentah ora ditemokake: mysql , ora apa-apa - ora ana link menyang server. Kanggo nindakake iki, sampeyan kudu nggawe alias karo variabel mysql, supaya kita nulis baris ing ngisor iki:

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

    Iki mung bakal mbantu kanggo sesi terminal iki. Nanging kita ora perlu maneh - kita mesthi ora bakal bisa liwat terminal kabeh wektu.

  3. MySQL ora diinstal, aja ngapusi komputer.
Sabanjure, kita nggunakake jeneng lan sandhi sing diwenehake nalika instalasi lan nulis: $ mysql --user=root -p"Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 9 Ing kana kita nulis sandhi, lan kita bakal seneng ing formulir iki: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 10Mung baris pungkasan ujar manawa kita wis mlebu ing MySQL. server terminal. Nanging tembung sandhi iki kanggo root dadi tembung sandhi sepisan, lan kudu diganti dadi sandhi liyane. Kanggo alasan keamanan, mesthi. Yen kita ora ngganti iki lan nyoba kanggo nggawe database anyar ing server, kita bakal nampa respon ing ngisor iki: ERROR 1820 (HY000): Sampeyan kudu ngreset sandi nggunakake statement ALTER USER sadurunge nglakokaké statement iki . "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 11Padha dipeksa, supaya ngomong. Nah, oke, apa angel kanggo kita? Ayo nggawe tembung sandhi luwih gampang (iki mung kanggo karya lokal; kanggo karya nyata, sandhi kudu rumit, mesthi). Sebutna root∫ , kaya jeneng panganggo. Kanggo ngganti tembung sandhi, sampeyan kudu ngetik baris: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Lan wangsulane bakal kaya mangkene: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 12Kanggo mesthekake yen kabeh bisa mlaku kanthi bener, ayo nyoba nggawe database anyar nggunakake sintaks ing ngisor iki : $ Nggawe DATABASE test_db; Kanggo mesthekake yen database kuwi wis digawe ing server, nulis printah: $ SHOW DATABASES; Lan minangka asil kita njaluk ing ngisor iki: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 13Iku kabeh :) Iku mokal kanggo ngomong sing prasaja lan cepet. Mulane, sapa sing nindakake dhewe - pakurmatan khusus. Kanggo sing durung rampung, aja kuwatir, ana manual kanggo kabeh jinis instalasi: Kabeh diterangake ana cukup waras. Ing bab mung iku kabeh ing Inggris. Saiki kita nulis baris pisanan ing SQL.

Nulis baris pisanan kita ing SQL

Kaya sing sampeyan ngerteni ing ndhuwur, kita ngerti rong prentah:
  1. Nggawe DATABASE - nggawe database ing server;
  2. SHOW DATABASES - Nuduhake kabeh database digawe lan kasedhiya ing server.
Aku nyathet yen SQL ora peduli carane kita nulis printah - kabeh nganggo huruf kapital utawa ora. Ananging kaanggep krama alus yen nulis prentah nganggo aksara gedhe. Sabanjure, kanggo mbusak database, sampeyan kudu nulis printah DROP DATABASE database_name ; ngendi database_name iku jeneng database kita arep dibusak. Kita wis nggawe database test sing diarani test_db , mula ayo mbusak. Kanggo nindakake iki kita nulis: $ DROP DATABASE test; Wigati dicathet yen pitakon OK, 0 baris sing kena pengaruh (0,02 detik) respon penting banget, amarga konfirmasi manawa panjaluk kasebut sukses. Kajaba iku, ngandhani carane akeh larik ing tabel query iki diganti lan ing wektu apa. "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 15Umumé, tembung DROP tanggung jawab kanggo mbusak soko. Ing kasus iki, kita mbusak database. Nanging iki uga bisa digunakake kanggo tujuan liyane (contone, nyelehake meja). Lan saiki, kanggo dipercaya kula , mriksa asil, ayo kang ndeleng carane akeh database isih: $ SHOW DATABASES; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 16Kaya sing kita deleng, ora ana database sing jenenge test_db. CHTD :D

Nggawe database lan tabel dhewe

Nggawe basis data kutha: $ NGGAWE DATABASE kutha; Kanggo bisa ing database tartamtu, sampeyan kudu mlebu menyang. Kanggo nindakake iki, gunakake perintah USE database_name , sawise kabeh perintah kanggo nggarap tabel bakal ditindakake ing database iki. $ USE kutha; Minangka bisa dideleng saka respon - Database diganti , transisi menyang database iki sukses. "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 17Langkah sabanjure yaiku nggawe tabel. Kang? Inggih, pisanan, ayo nggawe tabel karo negara. Kok ngono? Amarga kutha butuh kunci manca kanggo negara sing ana. Lan bisa dipikolehi sawise negara-negara kasebut umume wiwit ana ing database (sabanjure - disingkat saka database). Nalika kita ngelingi saka artikel sadurunge , ing tabel ing ngendi negara diterangake, kita duwe rong lapangan - ID lan jeneng, ing ngendi ID minangka pengenal unik, lan jeneng minangka jeneng negara. Mulane, nggawe database kuwi gampang kaya shelling pears. Kita nulis: $ Nggawe TABLE negara (id INT, jeneng VARCHAR(30)); "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 18Kaya sing sampeyan ngerteni, kabeh wis apik. Kanthi analogi karo SHOW DATABASES, kita bisa ndeleng dhaptar tabel: $ SHOW TABLES; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 19Punika, meja kita. Saiki ayo sinau carane mbusak tabel. Kanggo nindakake iki kita nulis: $ DROP TABLE negara; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 20Wigati dimangerteni yen tabel utawa database wis dibusak, ora bisa dibalèkaké!

Nggarap meja

Ayo mulihake tabel sing digawe. Kanggo nindakake iki, sampeyan mung kudu mbaleni apa sing wis rampung. Kanggo ndeleng struktur tabel, sampeyan kudu nggunakake printah ing ngisor iki - DESC table_name : $ DESC country; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 21Kaya sing sampeyan ngerteni, kabeh informasi babagan tabel dicathet ing kene. Kanggo nambah soko kanggo meja, sampeyan kudu nggunakake INSERT INTO table_name VALUES () printah . Ayo nambah telung cathetan kanggo telung negara: $ INSERT INTO NILAI negara (1, 'Ukraina'); $ INSERT INTO NILAI negara (2, 'Rusia'); $ INSERT INTO NILAI negara(3, 'Belorus'); "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 22Kanggo ndeleng apa sing disimpen ing database, kita bakal nggunakake panyuwunan sing gampang kanggo entuk data. Kanggo nindakake iki, kita pengin entuk data kabeh lapangan saka tabel negara. Elinga ukara sadurunge kasebut kanthi teliti amarga query sql bakal kaya iki: $ SELECT * FROM negara; Where * tegese sampeyan kudu njupuk kabeh lapangan. "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 23Iki carane ayu kita entuk. Yen kita pengin njaluk mung lapangan tartamtu, iku ora masalah: tinimbang lintang, kita nulis jeneng kolom sing kudu dipisahake dening koma. Coba dhewe;) Kita wis nggawe meja, nanging piye wae ora duwe informasi sing cukup. Ukuran populasi mesthi ora bakal lara, ta? Lan carane nindakake?
  1. Tambah kolom anyar menyang skema tabel - populasi.
  2. Nganyari entri sing ana.
Kanggo pisanan, kita bakal nggunakake ALTER TABLE table_name ADD COLUMN printah . Umumé, ALTER TABLE minangka set perintah kanggo operasi DDL (elinga apa iki? Iku ing artikel sadurunge). Miturut cara, SELECT nuduhake operasi DML. Ayo nulis ing ngisor iki: $ ALTER TABLE negara ADD COLUMN populasi INT; $ negara DESC; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 24Nalika sampeyan bisa ndeleng saka tokoh, kita wis kasil nambah lapangan anyar kanggo meja lan mriksa karo printah kapindho sing lapangan ing skema. Langkah kapindho yaiku nganyari entri ing tabel lan nemtokake nilai. Ayo njupuk nomer saka Wikipedia. Ora amarga aku ngandelake dheweke, nanging iki minangka cara sing paling cepet lan paling gampang. Kanggo nindakake iki, gunakake printah DML liyane. Nanging pisanan, ayo ngomong apa sing arep kita lakoni: kita pengin nganyari tabel negara, nggawe lapangan populasi padha karo 41806221 ing rekaman ngendi id = 1. Lan ing kene kaya apa konstruksi iki: UPDATE table_name SET table_row1 = nilai WHERE table_row2 = nilai2; Adhedhasar iku, kita nulis: $ UPDATE negara SET populasi = 41806221 WHERE id = 1; Ing kene kita nggunakake tembung kunci WHERE"Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 25 kanggo pisanan . Perlu kanggo nambah nilai kanggo nyaring. Contone, wektu iki kita ngomong yen perlu nganyari mung kanggo lapangan (lapangan) sing id padha karo siji (nganti kita ngandhani sql yen iki kunci utama - bisa uga ana sawetara). Kita uga bisa nemtokake kondisi kaya WHERE id> 2. Yen kita wis ora kasebut nyaring ing kabeh, Nilai iki bakal wis ditulis kanggo kabeh cathetan tabel. Kanggo Rusia, Belarus lan negara liyane, nganyari dhewe ;) Saiki ayo nyoba njupuk data saka tabel kanggo kolom jeneng lan populasi, yen id luwih gedhe tinimbang 1. $ PILIH jeneng, populasi FROM negara WHERE id >1; Mangkono, kita mung nampa lapangan sing awake dhewe pengin. Nggunakake INSERT INTO kita bisa nemtokake kolom sing pengin ditambahake lan sing pengin dikosongake. Kanggo nindakake iki, kita nulis: $ INSERT INTO negara (jeneng, populasi) VALUES('Georgia', 1234566); Kanggo mriksa apa sing kedadeyan, ayo goleki dhaptar kabeh kolom: $ SELECT * FROM negara; Tanpa id, entri kasebut ala, lan populasi, mesthi, dijupuk saka sirah, dadi sampeyan kudu mbusak. Gunakake perintah DELETE FROM table_name : $ DELETE FROM country WHERE name = 'Georgia'; Kanthi cara iki kita sinau carane mbusak kolom saka tabel."Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 26"Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 27"Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Bagean 2 - 28

Peer

Tugas omah bakal kaya ing ngisor iki:
  1. Sampeyan kudu nambah kunci utama (KEY PRIMARY) saka kolom ID menyang skema tabel negara.
  2. Tambah negara liyane menyang meja negara - Moldova.
  3. Miturut skema artikel sadurunge, nggawe kutha meja, sing bakal ngemot kabeh kolom sing diterangake. Jeneng lapangan bakal kaya ing ngisor iki: id, jeneng, id_negara, populasi.
  4. Tambah kunci utami ing meja kutha.
  5. Tambah tombol manca kanggo meja kutha.
Tugas kasebut menarik, kanggo sing ngerti, bakal cepet lan ora rumit. Kanggo sing durung duwe, bakal dadi penguatan materi saka artikel iki.

Ayo padha nyimpulake

Kita nindakake akeh perkara ing artikel iki. Kaping pisanan, kita nginstal lan miwiti server database MySQL. Kapindho, kita sinau kabeh dhaptar tembung kunci lan pitakon, kanthi bantuan sing saiki bisa nggawe / mbusak database lan tabel. Kita sinau carane nambah data menyang tabel, nganyari lan mbusak. Ing ngisor iki kabeh prentah sing digunakake, bebarengan karo katrangane:
  • Nggawe database_name database; - nggawe database anyar
  • TUJUH DATABASE; - ndeleng dhaptar database
  • DROP DATABASE database_name; - mbusak database
  • USE database_name; - bisa ing database
  • Nggawe TABLE jeneng_tabel (id INT, ....); - nggawe meja
  • TABEL TABEL; - ndeleng dhaptar tabel
  • DESC TABEL table_name; - ndeleng diagram tabel
  • DROP TABLE table_name; - mbusak tabel
  • INSERT INTO table_name VALUES (); - nambah lapangan kanggo meja
  • PILIH * FROM table_name WHERE table_row = nilai; - njaluk kothak ing tabel ing kondisi sawise WHERE
  • PILIH * FROM table_name; - entuk kabeh lapangan ing meja
  • ALTER TABLE table_name TAMBAHKAN COLUMN column_name COLUMN_TYPE; - nambah kolom lapangan anyar menyang skema tabel
  • UPDATE talbe_name SET talbe_row1 = nilai1 WHERE table_row2 = nilai2; - nganyari cathetan ing tabel: nyetel nilai saka siji lapangan tundhuk kondisi kanggo lapangan liyane
  • Mbusak saka table_name WHERE table_row1 = nilai1; - mbusak lapangan (utawa kolom) saka meja ing kondisi tartamtu.
Aku mikir kita nindakake proyek sing apik banget karo sampeyan. Aku ngajak kabeh wong sing seneng karyaku kanggo langganan akun GitHub , ing ngendi aku ngirim proyek lan perkembangan menarik sing kedadeyan ing karirku. Aku ngajak kabeh wong sing kepengin nyambut gawe ing open source kanggo melu proyekku (repositori). Matur nuwun kanggo kabeh perhatian. Tetep dirungokake kanggo artikel sabanjure babagan database sing bakal teka.

Dhaptar kabeh materi ing seri kasebut ana ing wiwitan artikel iki.

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