JavaRush /Blog Java /Random-PL /Analizujemy bazy danych i język SQL. (Część 2) - „Projekt...
Roman Beekeeper
Poziom 35

Analizujemy bazy danych i język SQL. (Część 2) - „Projekt Java od A do Z”

Opublikowano w grupie Random-PL
Artykuł z serii o tworzeniu projektu w Javie (linki do innych materiałów znajdują się na końcu). Jego celem jest analiza kluczowych technologii, efektem jest napisanie bota telegramowego. „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 1Dużo zdrowia, drodzy czytelnicy. Dzisiaj trochę porozmawiamy, a więcej napiszemy, bo nasze ręce pamiętają znacznie lepiej niż oczy. Być może zastanawiasz się: dlaczego używamy MySQL? Istnieją na przykład ten sam PostgreSQL i inne rozwiązania. Tutaj wszystko jest proste. Po pierwsze, jest to bezpłatne. Po drugie, posiada wygodny interfejs UI (opowiemy o tym w osobnym artykule). Po trzecie, jest mi znana i miła. Oprócz wszystkich powyższych, MySQL jest również bardzo powszechny.

Sprawdzanie pracy domowej

Ostatnim razem dałem zadanie - zainstaluj MySQL na moim komputerze i zaloguj się do niego. Przez konsolę lub w inny sposób. Czy wszystko zostało zrobione? „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 2Brawo dla tych, którzy to zrobili! Nie ma znaczenia, na jakim poziomie jesteś w JavaRush, ważne, aby móc zainstalować i skonfigurować niezbędne narzędzia do pracy zgodnie z instrukcjami. A zapewniam, że będzie ich wielu. Ci, którzy próbowali, ale im się nie udało, również się nie boją. Nie zawsze zdarza się to za pierwszym razem: czasami trzeba zrobić sobie przerwę i spróbować ponownie ze świeżymi siłami. Kto sam instalował MySQL - napisz „+” w komentarzach, abym wiedział, że ktoś to robi. Sam też to zrobię. Ponieważ nie mam już laptopa z systemem Windows, pokażę go na MacBooku. Nie sądzę, że proces instalacji będzie się znacznie różnić. Dla tych, którzy chcą zainstalować go samodzielnie, korzystając z instrukcji w języku angielskim, kliknij tutaj .

Instalowanie MySQL na MacOS

Przede wszystkim przejdź do poniższego linku , wybierz system operacyjny, czy to Windows, Ubuntu, czy MacOS, jak pokazano poniżej: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 3Pobierz i uruchom. Jednak nie wszystko od razu mi się układało. Okazało się, że Apple nie pozwala na instalację najnowszej wersji: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 4Można to oczywiście wyłączyć, ale MacBook działa i nie będę kombinował z jego ustawieniami. Dlatego metodą prób i błędów znalazłem wersję, którą można zainstalować - jest to 5.7.21 . Aby znaleźć inne wersje, przejdź do zakładki Archiwum i wybierz żądaną wersję: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 5Następnie uruchom pobrany plik. Klikaj dalej, dalej, dalej, ale na koniec uważaj! Dostępna będzie nazwa użytkownika i hasło umożliwiające zalogowanie się do bazy danych. U mnie wyglądało to tak: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 6Tutaj jest napisane, że będzie użytkownik o nazwie root i haśle Vac/zto=.24q . To kończy instalację.

Zaloguj się do wiersza poleceń MySQL

Aby się zalogować, musisz upewnić się, że serwer MySQL jest włączony. Aby to zrobić, przejdź do Preferencji systemowych , znajdź tam ikonę MySQL: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 7Wchodzimy w to i widzimy, że serwer musi być najpierw włączony. Aby to zrobić, po prostu kliknij Uruchom serwer MySQL i gotowe. Tak, możesz także zaznaczyć to pole, aby serwer uruchamiał się w tle przy każdym uruchomieniu komputera. „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 8Ważne jest, aby pamiętać, że wszystkie żądania w terminalu będę rozpoczynać od symbolu $ , aby było to jasne. Następnie musisz bezpośrednio połączyć się z serwerem MySQL za pomocą wiersza poleceń. Aby to zrobić, otwórz terminal i napisz: $ mysql Istnieją dwie opcje:
  1. Jeśli odpowiedź brzmi „BŁĄD 1045 (28000): Odmowa dostępu dla użytkownika „roman_beskrovnyi”@'localhost” (przy użyciu hasła: NIE) , oznacza to, że serwer jest zainstalowany i trwa jego przywracanie. Wystarczy przekazać prawidłowe polecenie do tego.
  2. Jeśli odpowiedzią jest polecenie nie znalezione: mysql , wszystko jest w porządku – po prostu nie ma łącza do serwera. Aby to zrobić, musisz utworzyć alias ze zmienną mysql, dlatego napiszemy następujący wiersz:

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

    Pomoże to tylko w tej sesji terminalowej. Ale nie potrzebujemy więcej - na pewno nie będziemy cały czas pracować przez terminal.

  3. MySQL nie jest zainstalowany, nie oszukuj swojego komputera.
Następnie używamy podanej podczas instalacji nazwy i hasła i zapisujemy: $ mysql --user=root -p„Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 9 Tam wpisujemy hasło i będziemy szczęśliwi w takiej formie: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 10Już ostatnia linijka mówi, że jesteśmy zalogowani do MySQL serwer terminali. Ale to hasło dla roota okazało się hasłem jednorazowym i należy je zmienić na inne. Oczywiście ze względów bezpieczeństwa. Jeśli tego nie zmienimy i spróbujemy utworzyć nową bazę danych na serwerze, otrzymamy następującą odpowiedź: BŁĄD 1820 (HY000): Przed wykonaniem tej instrukcji musisz zresetować hasło za pomocą instrukcji ALTER USER . „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 11Są, że tak powiem, zmuszeni. No cóż, czy jest to dla nas trudne? Uprośćmy hasło (dotyczy to tylko pracy lokalnej; do prawdziwej pracy hasło musi być oczywiście złożone). Powiedzmy root∫ , jak nazwa użytkownika. Aby zmienić hasło należy wpisać linię: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Odpowiedź będzie następująca: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 12Aby mieć pewność, że wszystko działa poprawnie, spróbujmy utworzyć nową bazę danych, stosując następującą składnię : $ CREATE DATABASE test_db; Aby mieć pewność, że taka baza danych została utworzona na serwerze należy wpisać komendę: $ SHOW DATABASES; I w rezultacie otrzymujemy co następuje: „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 13I tyle :) Nie da się powiedzieć, że było prosto i szybko. Dlatego ktokolwiek zrobił to sam - szczególny szacunek. Ci, którzy tego nie zrobili, nie martw się, istnieją instrukcje dotyczące wszystkich rodzajów instalacji: Wszystko jest tam dość sensownie opisane. Jedyną rzeczą jest to, że wszystko jest w języku angielskim. Teraz piszemy pierwsze linie w SQL.

Pisanie naszych pierwszych linii w SQL

Jak zapewne zauważyłeś powyżej, znamy dwa polecenia:
  1. UTWÓRZ BAZY DANYCH - tworzy bazę danych na serwerze;
  2. POKAŻ BAZY DANYCH - Pokazuje wszystkie utworzone i dostępne bazy danych na serwerze.
Zauważam, że SQL nie przejmuje się tym, jak piszemy polecenia – albo wszystkie pisane wielkimi literami, albo nie. Jednakże za dobre maniery uważa się pisanie poleceń wielkimi literami. Następnie, aby usunąć bazę danych, należy napisać polecenie DROP DATABASE nazwa_bazy_danych ; gdzie nazwa_bazy_danych to nazwa bazy danych, którą chcemy usunąć. Stworzyliśmy już testową bazę danych o nazwie test_db , więc ją usuń. W tym celu piszemy: $ DROP DATABASE test; Warto zauważyć, że odpowiedź Zapytanie OK, 0 wierszy dotkniętych (0,02 s) jest bardzo ważna, ponieważ potwierdza, że ​​żądanie zakończyło się sukcesem. Ponadto informuje, ile wierszy w tabelach zmieniło to zapytanie i w jakim czasie. „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 15Ogólnie rzecz biorąc, słowo DROP odpowiada za usunięcie czegoś. W tym przypadku usunęliśmy bazę danych. Można to jednak wykorzystać również do innych celów (na przykład upuszczenia stołu). A teraz, zaufaj mi , sprawdź wynik, zobaczmy, ile baz danych zostało: $ POKAŻ BAZY DANYCH; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 16Jak widzimy, nie ma bazy danych o nazwie test_db. CHTD :D

Stwórz własną bazę danych i tabelę

Utwórz bazę danych miast: $ UTWÓRZ BAZĘ DANYCH miast; Aby pracować w konkretnej bazie danych należy się do niej zalogować. Aby to zrobić, użyj polecenia USE nazwa_bazy_danych , po czym wszystkie polecenia dotyczące pracy z tabelami będą wykonywane w tej bazie danych. $ UŻYJ miast; Jak widać z odpowiedzi - Zmieniono bazę danych , przejście do tej bazy danych przebiegło pomyślnie. „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 17Następnym krokiem jest utworzenie tabeli. Który? Cóż, najpierw utwórzmy tabelę z krajami. Dlaczego? Ponieważ miasta potrzebują klucza obcego do kraju, w którym się znajdują. A można go uzyskać po tym, jak kraje te na ogół zaczną znajdować się w bazie danych (dalej – w skrócie od bazy danych). Jak pamiętamy z poprzedniego artykułu , w tabeli opisującej kraje mamy dwa pola – ID i nazwa, gdzie ID to unikalny identyfikator, a nazwa to nazwa kraju. Dlatego utworzenie takiej bazy danych jest tak proste, jak obieranie gruszek. Piszemy: $ CREATE TABLE kraj (id INT, nazwa VARCHAR(30)); „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 18Jak widać, wszystko poszło dobrze. Analogicznie do SHOW DATABASES możemy spojrzeć na listę tabel: $ SHOW TABLES; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 19Oto on, nasz stół. Teraz nauczmy się, jak usuwać tabele. W tym celu wpisujemy: $ DROP TABLE kraj; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 20Należy pamiętać, że usuniętej tabeli lub bazy danych nie można przywrócić!

Praca ze stołem

Przywróćmy utworzoną przez nas tabelę. Aby to zrobić, wystarczy powtórzyć to, co już zrobiłeś. Aby przyjrzeć się strukturze tabeli należy użyć polecenia - DESC nazwa_tabeli : $ DESC kraj; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 21Jak widać, wszystkie informacje o tabeli są tutaj zapisane. Aby dodać coś do tabeli, należy użyć polecenia INSERT INTO nazwa_tabeli WARTOŚCI() . Dodajmy trzy rekordy dla trzech krajów: $ INSERT INTO country VALUES (1, 'Ukraina'); $ WSTAWIĆ WARTOŚCI kraju (2, 'Rosja'); $ WSTAWIĆ WARTOŚCI kraju (3, 'Białoruś'); „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 22Aby zobaczyć, co jest zapisane w bazie danych, posłużymy się prostym żądaniem uzyskania danych. W tym celu chcemy pobrać dane wszystkich pól z tabeli krajów. Zapamiętaj uważnie poprzednie zdanie, ponieważ zapytanie sql będzie wyglądało następująco: $ SELECT * FROM country; Gdzie * oznacza, że ​​musisz wypełnić wszystkie pola. „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 23Oto jak pięknie nam wyszło. Jeśli chcemy uzyskać tylko konkretne pole, nie stanowi to problemu: zamiast gwiazdki wpisujemy nazwy pól, które należy oddzielić przecinkami. Spróbujcie sami ;) Stworzyliśmy już tabelę, ale jakoś nie mamy na jej temat wystarczających informacji. Wielkość populacji z pewnością nie zaszkodzi, prawda? Jak to zrobić?
  1. Dodaj nowe pole do schematu tabeli - populacja.
  2. Zaktualizuj istniejące wpisy.
W pierwszym przypadku użyjemy polecenia ALTER TABLE nazwa_tabeli ADD COLUMN . Ogólnie ALTER TABLE to zestaw poleceń do operacji DDL (pamiętasz co to jest? Było o tym w poprzednim artykule). Nawiasem mówiąc, SELECT odnosi się do operacji DML. Napiszmy co następuje: $ ALTER TABLE kraj DODAJ KOLUMNĘ populacja INT; $ DESC kraj; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 24Jak widać na rysunku pomyślnie dodaliśmy nowe pole do tabeli i drugim poleceniem sprawdziliśmy czy pole jest w schemacie. Drugim krokiem jest aktualizacja wpisów w tabeli i przypisanie wartości. Weźmy liczbę z Wikipedii. Nie żebym im ufał, ale mimo to jest to najszybszy i najłatwiejszy sposób. Aby to zrobić, użyj innego polecenia DML. Ale najpierw powiedzmy, co chcemy zrobić: chcemy zaktualizować tabelę krajów, ustawić pole populacji na wartość 41806221 w rekordzie, gdzie id = 1. A oto jak wygląda ta konstrukcja: UPDATE nazwa_tabeli SET wiersz_tabeli1 = wartość WHERE wiersz_tabeli2 = wartość2; Na tej podstawie piszemy: $ UPDATE kraj SET populacja = 41806221 WHERE id = 1; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 25Tutaj po raz pierwszy użyliśmy słowa kluczowego WHERE . Konieczne jest dodanie wartości do filtrowania. Przykładowo tym razem powiedzieliśmy, że aktualizacja jest konieczna tylko dla pola (pól), których id jest równy jeden (dopóki nie powiedzieliśmy sqlowi, że jest to klucz podstawowy - może być ich kilka). Moglibyśmy także podać warunek taki jak WHERE id > 2. Gdybyśmy w ogóle nie określili filtrowania, ta wartość zostałaby zapisana we wszystkich rekordach tabeli. Dla Rosji, Białorusi i innych krajów zaktualizuj się ;) Teraz spróbujmy pobrać dane z tabeli dla pól nazwy i populacji, pod warunkiem, że id jest większy niż 1. $ WYBIERZ nazwę, populację Z kraju WHERE id >1; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 26W ten sposób otrzymaliśmy tylko te pola, których sami chcieliśmy. Za pomocą INSERT INTO możemy określić, które pola chcemy dodać, a które pozostawić puste. W tym celu piszemy: $ WSTAWIĆ DO kraju (nazwy, populacji) WARTOŚCI('Gruzja', 1234566); Aby sprawdzić co się stało spójrzmy na listę wszystkich pól: $ SELECT * FROM country; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 27Bez identyfikatora wpis jest zły, a populacja została oczywiście wzięta z głowy, więc trzeba ją usunąć. Użyj polecenia DELETE FROM nazwa_tabeli : $ DELETE FROM kraj WHERE nazwa = 'Gruzja'; „Projekt Java od A do Z”: analizujemy bazy danych i język SQL.  Część 2 - 28W ten sposób dowiedzieliśmy się jak usunąć pole z tabeli.

Praca domowa

Praca domowa będzie wyglądać następująco:
  1. Należy dodać klucz podstawowy (KLUCZ PODSTAWOWY) z pola ID do schematu tabeli krajów.
  2. Dodaj kolejny kraj do tabeli krajów - Mołdawia.
  3. Zgodnie ze schematem z poprzedniego artykułu utwórz tabelę miasta, która będzie zawierać wszystkie opisane pola. Nazwy pól będą następujące: id, nazwa, country_id, populacja.
  4. Dodaj klucz podstawowy do tabeli miast.
  5. Dodaj klucz obcy do tabeli miast.
Zadanie jest ciekawe, dla wtajemniczonych będzie szybkie i nieskomplikowane. Dla tych, którzy tego nie zrobili, będzie to doskonałe wzmocnienie materiału z tego artykułu.

Podsumujmy to

W tym artykule zrobiliśmy wiele rzeczy. Najpierw zainstalowaliśmy i uruchomiliśmy serwer bazy danych MySQL. Po drugie poznaliśmy całą listę słów kluczowych i zapytań, za pomocą których możemy teraz tworzyć/usuwać bazy danych i tabele. Dowiedzieliśmy się jak dodawać dane do tabel, aktualizować je i usuwać. Oto wszystkie polecenia, których użyliśmy, wraz z ich opisami:
  • UTWÓRZ BAZY DANYCH nazwa_bazy danych; - utwórz nową bazę danych
  • POKAŻ BAZY DANYCH; — zobacz listę baz danych
  • USUŃ BAZY DANYCH nazwa_bazy danych; - usuń bazę danych
  • UŻYJ nazwa_bazy danych; - praca w bazie danych
  • UTWÓRZ TABELĘ nazwa_tabeli (id INT, ....); - utwórz tabelę
  • POKAŻ TABELE; — zobacz listę tabel
  • OPIS TABELI nazwa_tabeli; — patrz schemat tabeli
  • DROP TABLE nazwa_tabeli; - usuń tabelę
  • WSTAWIĆ WARTOŚCI nazwy_tabeli (); - dodaj pole do tabeli
  • SELECT * FROM nazwa_tabeli GDZIE wiersz_tabeli = wartość; — pobierz pola w tabeli pod warunkiem po GDZIE
  • WYBIERZ * Z nazwa_tabeli; - pobierz wszystkie pola w tabeli
  • ALTER TABLE nazwa_tabeli ADD KOLUMNA nazwa_kolumny KOLUMNA_TYPE; — dodaj nowe pole pole do schematu tabeli
  • AKTUALIZACJA nazwa_tabeli SET wiersz_talbe1 = wartość1 GDZIE wiersz_tabeli2 = wartość2; — zaktualizuj rekordy w tabeli: ustaw wartości jednego pola pod warunkiem dla innego pola
  • USUŃ Z nazwa_tabeli GDZIE wiersz_tabeli = wartość1; — usuń pole (lub pola) z tabeli pod pewnym warunkiem.
Myślę, że wykonaliśmy z tobą świetną robotę. Zapraszam wszystkich, którym podoba się moja twórczość, do subskrybowania mojego konta na GitHubie , gdzie publikuję ciekawe projekty i wydarzenia, które dzieją się w mojej karierze. Zapraszam wszystkich zainteresowanych pracą w open source do udziału w moich projektach (repozytoriach). Dziękuję wszystkim za uwagę. Już wkrótce pojawi się kolejny artykuł na temat baz danych.

Lista wszystkich materiałów wchodzących w skład serii znajduje się na początku artykułu.

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