13 najważniejszych poleceń SQL, które powinien znać każdy programista

13 najważniejszych poleceń SQL, które powinien znać każdy programista

Bazy danych napędzają nowoczesną sieć. Każda duża lub dynamiczna witryna korzysta w jakiś sposób z bazy danych, a w połączeniu z Strukturalny język zapytań (SQL) , możliwości manipulowania danymi są naprawdę nieograniczone. Jeśli znasz już SQL, upewnij się, że sprawdziłeś te umiejętności programowania, które powinni znać wszyscy twórcy stron internetowych.





Dzisiaj pokażę wam niektóre z podstawowe polecenia SQL musisz wiedzieć jako programista.





Istnieje wiele nazw danych zwracanych z tabeli bazy danych. Dane są powszechnie określane jako Wydziwianie , Dokumentacja , lub Krotki . W tym artykule będę używał tych terminów zamiennie.





Przedmowa

Wszystkie dzisiejsze przykłady będą oparte na czterech fikcyjnych tabelach. ten klient tabela zawiera nazwiska i wiek klientów:

ten wysokości tabela zawiera imię i wzrost dowolnej osoby:



ten personel tabela zawiera nazwiska i wiek pracowników – dokładnie tak samo jak tabela klientów:

Stół finałowy o nazwie ludzie zawiera nazwiska i wiek osób, podobnie jak tabele klientów i personelu:





1. Wybierz

ten Wybierz Instrukcja jest najprostsza i ważne jest, abyś ją zrozumiał, ponieważ stanowi podstawę prawie wszystkich innych poleceń. Uważa się, że najlepszą praktyką jest pisanie zarezerwowanych słów SQL wielkimi literami, ponieważ ułatwia to czytanie i zrozumienie polecenia.

Jak sama nazwa wskazuje, select służy do Wybierz dane z bazy danych. Oto najprostsze użycie:





SELECT * FROM table;

Są na to dwie części. Pierwsza część ( WYBIERZ * ) określa, które kolumny chcesz wybrać. Gwiazdka wskazuje, że chcesz wybrać wszystkie kolumny w tabeli. Druga część ( OD tabeli ) informuje silnik bazy danych, skąd chcesz pobrać te dane. Zastąp „table” nazwą tabeli bazy danych.

Ten wybór jest znany jako „wybierz gwiazdę”. Użycie gwiazdki to dobry sposób na ustalenie, jakie dane znajdują się w tabeli, ale nie zalecam używania jej w żadnym kodzie produkcyjnym. Gdy używasz wybranej gwiazdy, to od silnika bazy danych zależy, czy przedstawi Ci żądane dane. Nie masz żadnej kontroli nad kolejnością zwracania danych, więc jeśli ktoś doda nową kolumnę do tabeli, może się okazać, że zmienne w Twoim języku programowania nie reprezentują już prawidłowych danych. Na szczęście istnieje rozwiązanie.

Możesz wyraźnie określić, które kolumny chcesz pobrać, w następujący sposób:

SELECT age, name FROM people;

To zapytanie pobiera kolumny „wiek” i „imię” z tabeli „osoby”. Takie jednoznaczne stwierdzenie może być nieco nużące, jeśli masz dużo danych, ale zmniejszy to problemy w przyszłości, a także sprawi, że Twój SQL będzie łatwiejszy do zrozumienia dla przyszłych programistów.

Jeśli chcesz wybrać dodatkowy fragment danych, ale nie jest on przechowywany w żadnej z Twoich tabel, możesz to zrobić w ten sposób:

SELECT age, '1234' FROM people;

Zwrócony zostanie dowolny ciąg znaków wewnątrz pojedynczych cudzysłowów, zamiast pasować do nazwy kolumny.

2. Gdzie

Polecenie select doskonale nadaje się do pobierania danych, ale co, jeśli chcesz nieco bardziej filtrować wyniki? A co z odzyskiwaniem tylko osób o niebieskich oczach? A co z osobami urodzonymi w styczniu, które pracują jako mechanicy? To tutaj gdzie Wchodzi polecenie. Pozwala to na zastosowanie warunków do zaznaczenia i po prostu dołączasz je na końcu instrukcji:

SELECT age, name FROM people WHERE age > 10;

To zapytanie jest teraz ograniczone do osób w wieku powyżej 10 lat. Możesz połączyć wiele warunków za pomocą ORAZ operator:

SELECT age, name FROM people WHERE age > 10 AND age <20;

ten ORAZ polecenie działa dokładnie tak samo, jak w języku angielskim: stosuje inny warunek do instrukcji. W tym przykładzie zwrócone dane będą dowolnymi rekordami w wieku od 10 do 20 lat. Ponieważ nie ma pasujących wyników, żadne dane nie są zwracane.

najlepsza rzecz do obejrzenia na youtube

Innym poleceniem, którego można użyć w połączeniu z tym, jest LUB . Oto przykład:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

To zapytanie zwraca rekordy, w których wiek jest większy niż 10 lub imię i nazwisko jest równe „Joe”. Zauważ, że jest tylko jeden znak równości? Większość języków programowania używa podwójnej równości (==) do sprawdzania równoważności. Nie jest to potrzebne w przypadku większości silników baz danych (ale może to być bardzo zależne od środowiska, więc najpierw sprawdź dwukrotnie).

3. Zamówienie

ten zamówienie Polecenie służy do sortowania zwracanych wyników. To kolejny łatwy w użyciu. Wystarczy dołączyć go na końcu wyciągu:

SELECT name, age FROM people ORDER BY age DESC;

Musisz określić kolumnę i kolejność, która może być ASC dla rosnących lub DESC do zjazdu. Możesz uporządkować według wielu kolumn w ten sposób:

SELECT name, age FROM people ORDER BY name ASC, age DESC

ZAMÓW PRZEZ jest prawdopodobnie najbardziej przydatny w połączeniu z innymi poleceniami. Nie wszystkie zapytania zwrócą dane w logiczny lub uporządkowany sposób — to polecenie pozwala to zmienić.

4. Dołącz

ten Przystąp Polecenie służy do Przystąp powiązane dane przechowywane w jednej lub kilku tabelach. Ty Przystąp drugą tabelę do pierwszej tabeli i określ sposób połączenia danych. Oto podstawowy przykład:

co zrobić, gdy Twój Facebook zostanie zhakowany
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Dzieje się tutaj kilka rzeczy. Musisz zacząć od składni 'LEFT JOIN', która określa, że ​​chcesz dołączyć do tabeli za pomocą złączenia typu left. Następnie określ stół, do którego chcesz dołączyć (wysokości). ten UŻYWANIE (nazwa) składnia mówi, że kolumna „name” znajduje się w obu tabelach i powinna być użyta jako klucz do łączenia tabel.

Nie martw się, jeśli Twoje kolumny mają różne nazwy w każdej tabeli. Możesz użyć „ON” zamiast „USING”:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Instrukcja on wyraźnie określa, do których kolumn należy wpisać klucz. Istnieje wiele rodzajów sprzężenia, a szczegółowe omówienie każdego z nich zajęłoby dużo czasu, więc oto krótkie podsumowanie ich zastosowań:

  • (WEWNĘTRZNE) DOŁĄCZ — Zwraca wiersze z dopasowaniem w obu tabelach.
  • POŁĄCZENIE LEWE (ZEWNĘTRZNE) -- Zwraca wszystkie wiersze z lewej tabeli, z dowolnymi dopasowaniami z prawej tabeli. Jeśli nie ma dopasowań, nadal zwracane są rekordy lewej tabeli.
  • PRAWY (ZEWNĘTRZNY) POŁĄCZENIE -- Jest to przeciwieństwo lewego sprzężenia: zwracane są wszystkie wiersze z prawej tabeli wraz ze wszystkimi dopasowaniami z lewej tabeli.
  • POŁĄCZENIE PEŁNE (ZEWNĘTRZNE) -- Zwraca dowolne rekordy z dopasowaniem w dowolnej tabeli.

Składnia „INNER” lub „OUTER” jest opcjonalna. Może sprawić, że rzeczy będą łatwiejsze do zrozumienia, ale nie musisz tego określać przez większość czasu.

5. Aliasy

Teraz znasz podstawy, spójrzmy na Alias Komenda. Jest to używane do tymczasowej zmiany nazwy tabeli — bardziej pseudonimu niż czegokolwiek innego, ponieważ ta nowa nazwa istnieje tylko w ramach pojedynczej uruchamianej transakcji. Oto jak z niego korzystasz:

SELECT A.age FROM people A;

Możesz użyć dowolnej poprawnej nazwy, ale ja lubię używać liter alfabetu. Przed każdą nazwą kolumny znajduje się alias. Ten alias jest przypisywany do tabeli natychmiast po jego zadeklarowaniu. To jest dokładnie to samo, co robienie tego:

SELECT people.age FROM people;

Zamiast wpisywać długą nazwę tabeli, możesz wpisać prostą i łatwą do zapamiętania literę — ale po co? Cóż, jeśli wybierasz z więcej niż jednej tabeli, łatwo jest pomylić się z tym, które kolumny należą do której tabeli. Jeśli obie tabele mają kolumny o tej samej nazwie, zapytanie do bazy danych może nawet nie działać bez wyraźnego odwołania się do nazwy tabeli lub aliasu. Oto przykład z dwoma tabelami:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

A oto to samo zapytanie z aliasami:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Stół personelu otrzymuje alias „A”, a stół klientów otrzymuje alias „B”. Tworzenie aliasów naprawdę pomaga w zrozumieniu kodu i zmniejsza ilość pisania, które musisz wykonać.

Możesz również zmienić nazwę kolumny z aliasem za pomocą polecenia „AS”:

SELECT age AS person_age FROM people;

Po uruchomieniu tego zapytania kolumna będzie miała teraz nazwę „person_age” zamiast „wiek”.

6. Unia

Unia to świetne polecenie. Pozwala na dołączanie do siebie wierszy. W przeciwieństwie do złączeń, które dołączają pasujące kolumny, union może dołączać niepowiązane wiersze, pod warunkiem, że mają tę samą liczbę i nazwę kolumn. Oto jak z niego korzystasz:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Możesz myśleć o związku jako o sposobie łączenia wyników dwóch zapytań. Unia zwróci wyniki tylko wtedy, gdy między dwoma zapytaniami znajduje się unikatowy wiersz. Możesz użyć składni „UNION ALL”, aby zwrócić wszystkie dane, niezależnie od duplikatów:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Zauważ, jak zmienia się kolejność wierszy? Union działa w najbardziej efektywny sposób, dlatego zwracane dane mogą się różnić w kolejności.

Możliwym przypadkiem użycia sumy jest suma częściowa: można połączyć zapytanie sumy z zapytaniem poszczególnych sum dla konkretnego scenariusza.

7. Wstaw

Wiesz już wszystko o pobieraniu danych z bazy danych, ale co z ich wstawianiem? To tutaj wstawić pojawia się polecenie. Oto przykład:

INSERT INTO people(name, age) VALUES('Joe', 102);

Musisz podać nazwę tabeli (osoby) oraz kolumny, których chcesz użyć (imię i wiek). Składnia „VALUES” jest następnie używana do podania wartości do wstawienia. Muszą one być w tej samej kolejności, co kolumny, które zostały wcześniej określone.

Nie można określić klauzuli WHERE dla wstawiania i należy upewnić się, że przestrzegane są wszelkie niezbędne ograniczenia tabeli, które są obecne.

8. Aktualizacja

Po wstawieniu niektórych danych, naturalne jest, że trzeba zmienić konkretne wiersze. Tutaj jest aktualizacja składnia polecenia:

UPDATE people SET name = 'Joe', age = 101;

Musisz określić tabelę, którą chcesz zmienić, a następnie użyć składni 'SET', aby określić kolumny i ich nowe wartości. Ten przykład jest dobry, ale zaktualizuje każdy rekord — coś, co nie zawsze jest pożądane!

Aby być bardziej szczegółowym, możesz użyć klauzul 'WHERE', tak jak podczas wybierania:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Możesz nawet określić wiele warunków za pomocą „ORAZ” i „LUB”:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Zwróć uwagę, w jaki sposób nawiasy są używane do ograniczania warunków.

streamuj nowe filmy online za darmo bez rejestracji 2018

9. Złość

Ups! to dziwnie brzmiące słowo, ale jest to niezwykle przydatne polecenie. Załóżmy, że masz ograniczenie w tabeli i określiłeś, że chcesz zawsze używać tylko rekordów o unikalnych nazwach — na przykład nie chcesz przechowywać dwóch wierszy o tej samej nazwie. Jeśli próbowałeś wstawić wiele wartości „Joe”, twój silnik bazy danych wyrzuciłby błąd i odmówił wykonania tego (całkiem słusznie). UPSERT umożliwia aktualizację rekordu, jeśli już istnieje. To niezwykle przydatne! Bez tego polecenia musiałbyś napisać dużo logiki, aby najpierw sprawdzić, czy rekord istnieje, wstawić, jeśli nie, w przeciwnym razie pobrać poprawny klucz podstawowy, a następnie zaktualizować.

Niestety upserts są różnie implementowane w różnych silnikach baz danych. PostgreSQL dopiero niedawno zyskał tę zdolność, podczas gdy MySQL ma ją od dłuższego czasu. Oto składnia MySQL w celach informacyjnych:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Zwróć uwagę, że jest to zasadniczo aktualizacja i instrukcja wstawiania, którą można podsumować jako „aktualizuj, jeśli wstawienie nie powiodło się”.

10. Usuń

Kasować służy do całkowitego usuwania rekordów - może być bardzo szkodliwe, jeśli zostanie nadużyte! Podstawowa składnia jest bardzo łatwa w użyciu:

DELETE FROM people;

Podobnie jak większość innych poleceń, spowoduje to usunięcie wszystko ! Musisz użyć gdzie, aby ograniczyć to do nieco bardziej rozsądnej liczby wierszy - najlepiej jednego:

DELETE FROM people WHERE name = 'Joe';

Jeśli tworzysz system, często mądrze jest zaimplementować „miękkie usuwanie”. W rzeczywistości nigdy nie uruchamiasz polecenia usuwania, raczej tworzysz usuniętą kolumnę, a następnie sprawdzasz tę kolumnę w wybranych — można uniknąć wielu potencjalnych kłopotów, jeśli możesz szybko i łatwo odzyskać rzekomo usunięte rekordy. Nie zastąpi to jednak odpowiednich kopii zapasowych.

11. Utwórz tabelę

ten utwórz stół Polecenie służy do tworzenia tabel. To kolejny bardzo prosty:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Zwróć uwagę, że nazwy kolumn i ograniczenia znajdują się w nawiasach, a kolumny otrzymują odpowiedni typ danych. Określono klucz podstawowy, tak jak jest to wymagane w każdym dobrym projekcie bazy danych.

12. Zmień tabelę

ten zmień tabelę Polecenie służy do modyfikacji struktury tabeli. Jest to nieco ograniczone, ponieważ twoja baza danych nie pozwoli ci zmienić tabeli, jeśli istniejące dane spowodowałyby konflikt – na przykład zmiana ciągu na liczbę całkowitą. W takich przypadkach najpierw napraw dane, a następnie zmodyfikuj tabelę. Oto przykład:

ALTER TABLE people ADD height integer;

Ten przykład dodaje kolumnę o nazwie „height” typu integer do tabeli people. Tak naprawdę nie ma ograniczeń co do tego, co możesz zmienić.

13. Upuść stół

Ostatnie polecenie to upuść stół . Pomyśl o tym jako o usuwaniu, ale zamiast usuwać pojedynczy rekord, usuwa każdy rekord wraz z tabelą! Oto jak z niego korzystasz:

DROP TABLE people;

To dość drastyczne polecenie i nie ma powodu, aby było programowane w twoim systemie. W zdecydowanej większości przypadków powinna być wykonywana wyłącznie ręcznie i może być bardzo destrukcyjny.

To wszystko na dzisiaj. Mam nadzieję, że nauczyłeś się kilku przydatnych sztuczek! Możesz nauczyć się zrobić stronę internetową , a następnie wykorzystaj nowo odkryte umiejętności, aby nadać mu dynamikę — po prostu upewnij się, że nie popełniasz tych błędów lub nie narażasz go na wstrzyknięcie SQL. Jeśli nie jesteś pewien, czy musisz nauczyć się SQL, czy rozważałeś generator statycznych witryn?

Dlaczego nie zostawić komentarza poniżej z ulubionymi poradami i sztuczkami dotyczącymi SQL?

Kredyty obrazkowe: HYS_NP/Shutterstock

Udział Udział Ćwierkać E-mail Czy warto uaktualnić do systemu Windows 11?

Windows został przeprojektowany. Ale czy to wystarczy, aby przekonać Cię do przejścia z Windows 10 na Windows 11?

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Programowanie
  • SQL
O autorze Joe Coburn(136 opublikowanych artykułów)

Joe jest absolwentem informatyki na Uniwersytecie w Lincoln w Wielkiej Brytanii. Jest profesjonalnym programistą, a kiedy nie lata dronami ani nie pisze muzyki, często można go spotkać wykonującego zdjęcia lub produkującego filmy.

Więcej od Joe Coburna

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować