MySQL Instrukcja SELECT z przykładami
W czym jest zapytanie SELECT MySQL?
SELECT QUERY służy do pobierania danych z MySQL baza danych. Bazy danych przechowują dane do późniejszego pobrania. Celem MySQL Wybierz, aby zwrócić z tabel bazy danych jeden lub więcej wierszy spełniających podane kryteria. Zapytanie wybierające może być użyte w języku skryptowym, takim jak PHP, Ruby, lub można je wykonać za pomocą wiersza poleceń.
Składnia instrukcji SQL SELECT
Jest to najczęściej używane polecenie SQL i ma następującą ogólną składnię
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
TUTAJ
- SELECT to słowo kluczowe SQL, które informuje bazę danych, że chcesz pobrać dane.
- [WYRÓŻNIONY | WSZYSTKO] to opcjonalne słowa kluczowe, których można użyć do dostrojenia wyników zwracanych przez instrukcję SQL SELECT. Jeśli nic nie jest określone, domyślnie przyjmuje się WSZYSTKO.
- {*| [wyrażenie pola [AS nowa nazwa]} należy określić co najmniej jedną część, „*” zaznacza wszystkie pola z określonej nazwy tabeli, fieldExpression wykonuje pewne obliczenia na określonych polach, takie jak dodawanie liczb lub łączenie dwóch pól ciągów w jedno.
- OD nazwatabeli jest obowiązkowa i musi zawierać co najmniej jedną tabelę, wiele tabel należy oddzielić przecinkami lub połączyć za pomocą słowa kluczowego JOIN.
- WHERE warunek jest opcjonalny, można go użyć do określenia kryteriów w zestawie wyników zwróconym z zapytania.
- GRUPUJ WEDŁUG służy do łączenia rekordów mających te same wartości pól.
- MAJĄCY warunek służy do określenia kryteriów podczas pracy ze słowem kluczowym GROUP BY.
- ZAMÓW PRZEZ służy do określenia kolejności sortowania zestawu wyników.
*
Symbol gwiazdki służy do zaznaczania wszystkich kolumn w tabeli. Przykład prostej instrukcji SELECT wygląda tak jak pokazano poniżej.
SELECT * FROM `members`;
Powyższa instrukcja wybiera wszystkie pola z tabeli członków. Średnik oznacza zakończenie instrukcji. Zakończenie wypowiedzi w ten sposób nie jest obowiązkowe, ale uważa się za dobrą praktykę.
Praktyczne przykłady
Kliknij, aby pobrać baza danych myflix użyta w praktycznych przykładach.
Możesz nauczyć się importować plik .sql do MySQL Stoł warsztatowy
Przykłady są wykonywane na następujących dwóch tabelach
Tabela 1: członkowie stół
numer członkostwa | pełne nazwy | płeć | Data urodzenia | adres fizyczny | adres pocztowy | numer_kontaktu | |
---|---|---|---|---|---|---|---|
1 | Żaneta Jones | Kobieta | 21-07-1980 | Działka przy ulicy Pierwszej nr 4 | Prywatna torba | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Kobieta | 23-06-1980 | Melroza 123 | NULL | NULL | jj@fstreet.com |
3 | Roberta Fila | Mężczyzna | 12-07-1989 | Trzecia ulica 3 | NULL | 12345 | rm@tstreet.com |
4 | Glorii Williams | Kobieta | 14-02-1984 | Druga ulica 2 | NULL | NULL | NULL |
Tabela 2: filmy stół
identyfikator_filmu | tytuł | dyrektor | rok_wydania | identyfikator_kategorii |
---|---|---|---|---|
1 | Piraci z Karaibów 4 | Rob Marshall | 2011 | 1 |
2 | Zapominając o Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Nazwa kodowa Czarny | Edgara Jimza | 2010 | NULL |
5 | Małe dziewczynki tatusia | NULL | 2007 | 8 |
6 | Anioły i demony | NULL | 2007 | 6 |
7 | Kod da vinci | NULL | 2007 | 6 |
9 | Honey księżycowcy | Jana Schultza | 2005 | 8 |
16 | 67% winnych | NULL | 2012 | NULL |
Pobieranie listy członków
Załóżmy, że chcemy pobrać z naszej bazy danych listę wszystkich zarejestrowanych użytkowników biblioteki. W tym celu użyjemy poniższego skryptu.
SELECT * FROM `members`;
Wykonanie powyższego skryptu w MySQL workbench generuje następujące wyniki.
numer członkostwa | pełne nazwy | płeć | Data urodzenia | adres fizyczny | adres pocztowy | numer_kontaktu | |
---|---|---|---|---|---|---|---|
1 | Żaneta Jones | Kobieta | 21-07-1980 | Działka przy ulicy Pierwszej nr 4 | Prywatna torba | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Kobieta | 23-06-1980 | Melroza 123 | NULL | NULL | jj@fstreet.com |
3 | Roberta Fila | Mężczyzna | 12-07-1989 | Trzecia ulica 3 | NULL | 12345 | rm@tstreet.com |
4 | Glorii Williams | Kobieta | 14-02-1984 | Druga ulica 2 | NULL | NULL | NULL |
Nasze powyższe zapytanie zwróciło wszystkie wiersze i kolumny z tabeli członków.
Załóżmy, że jesteśmy zainteresowani uzyskaniem tylko pól full_names, gender, physical_address i email. Poniższy skrypt pomoże nam to osiągnąć.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Wykonanie powyższego skryptu w MySQL workbench generuje następujące wyniki.
pełne nazwy | płeć | adres fizyczny | |
---|---|---|---|
Żaneta Jones | Kobieta | Działka przy ulicy Pierwszej nr 4 | janetjones@yagoo.cm |
Janet Smith Jones | Kobieta | Melroza 123 | jj@fstreet.com |
Roberta Fila | Mężczyzna | Trzecia ulica 3 | rm@tstreet.com |
Glorii Williams | Kobieta | Druga ulica 2 | NULL |
Pobieranie listy filmów
Pamiętaj, że w naszej powyższej dyskusji wspominaliśmy o wyrażeniach używanych w poleceniach SELECT. Powiedzmy, że chcemy uzyskać listę filmów z naszej bazy danych. Chcemy mieć tytuł filmu i nazwisko reżysera w jednym polu. Nazwisko reżysera powinno być w nawiasach. Chcemy również uzyskać rok wydania filmu. Poniższy skrypt pomaga nam to zrobić.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
TUTAJ
- Kontakt () MySQL używana jest funkcja łączenia wartości kolumn.
- Wiersz „Concat („tytuł”, „(”, „reżyser”, „)”) pobiera tytuł, dodaje nawias otwierający, po którym następuje nazwisko reżysera, a następnie dodaje nawias zamykający.
Części ciągu znaków oddziela się przecinkami w funkcji Concat ().
Wykonanie powyższego skryptu w MySQL workbench generuje następujący zestaw wyników.
Concat(`tytuł`, '(', `reżyser`, ')') | rok_wydania |
---|---|
Piraci z Karaibów 4 (Rob Marshall) | 2011 |
Zapomnieć o Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Imię kodowe Czarny (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey księżycowcy (John Schultz) | 2005 |
NULL | 2012 |
Nazwy pól aliasów
Powyższy przykład zwrócił kod konkatenacji jako nazwę pola dla naszych wyników. Załóżmy, że chcemy użyć bardziej opisowej nazwy pola w naszym zestawie wyników. Aby to osiągnąć, użylibyśmy nazwy aliasu kolumny. Poniżej przedstawiono podstawową składnię nazwy aliasu kolumny
SELECT `column_name|value|expression` [AS] `alias_name`;
TUTAJ
- „WYBIERZ ` nazwa_kolumny|wartość|wyrażenie `” to zwykła instrukcja SELECT, która może być nazwą kolumny, wartością lub wyrażeniem.
- "[JAK]" to opcjonalne słowo kluczowe przed nazwą aliasu oznaczającą wyrażenie, wartość lub nazwę pola, które zostaną zwrócone jako.
- „`alias_nazwa`” to nazwa aliasu, którą chcemy zwrócić w naszym zestawie wyników jako nazwę pola.
Powyższe zapytanie z bardziej znaczącą nazwą kolumny
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Otrzymujemy następujący wynik
Konkat | rok_wydania |
---|---|
Piraci z Karaibów 4 (Rob Marshall) | 2011 |
Zapomnieć o Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Imię kodowe Czarny (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey księżycowcy (John Schultz) | 2005 |
NULL | 2012 |
Uzyskiwanie listy członków pokazującej rok urodzenia
Załóżmy, że chcemy uzyskać listę wszystkich członków, pokazującą numer członkostwa, pełne imiona i nazwiska oraz rok urodzenia, możemy użyć funkcji ciągu LEFT, aby wyodrębnić rok urodzenia z pola daty urodzenia. Skrypt pokazany poniżej pomaga nam to zrobić.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
TUTAJ
- „LEWY(`data_urodzenia`,4)” dotychczasowy LEWA funkcja ciągu akceptuje datę urodzenia jako parametr i zwraca tylko 4 znaki od lewej.
- „AS `rok_urodzenia`” jest nazwa aliasu kolumny które zostaną zwrócone w naszych wynikach. Zanotuj Słowo kluczowe AS jest opcjonalne, możesz go pominąć, a zapytanie nadal będzie działać.
Wykonanie powyższego zapytania w MySQL workbench względem myflixdb daje nam wyniki pokazane poniżej.
numer_członkostwa | pełne nazwy | rok urodzenia |
---|---|---|
1 | Żaneta Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Roberta Fila | 1989 |
4 | Glorii Williams | 1984 |
Używanie SQL MySQL Workbench
Będziemy teraz korzystać MySQL workbench do wygenerowania skryptu, który wyświetli wszystkie nazwy pól z naszej tabeli kategorii.
1. Kliknij prawym przyciskiem myszy tabelę kategorii. Kliknij „Wybierz wiersze – Limit 1000”
2. MySQL workbench automatycznie utworzy zapytanie SQL i wklei je do edytora.
3. Wyświetlone zostaną wyniki zapytania
Zauważ, że nie napisaliśmy sami instrukcji SELECT. MySQL workbench wygenerował to dla nas.
Po co używać polecenia SELECT SQL, skoro mamy MySQL Stoł warsztatowy?
Być może zastanawiasz się, po co uczyć się polecenia SQL SELECT w celu wykonywania zapytań o dane z bazy danych, skoro możesz po prostu użyć narzędzia takiego jak MySQL Workbench, aby uzyskać takie same wyniki bez znajomości języka SQL. Oczywiście, że jest to możliwe, ale nauka korzystania z polecenia WYBIERZ daje więcej elastyczność i kontrola ponad twoje Instrukcje SQL SELECT.
MySQL stół warsztatowy należy do kategorii „Zapytanie według przykładu” Narzędzia QBE. Ma on na celu pomóc w szybszym generowaniu instrukcji SQL w celu zwiększenia produktywności użytkownika.
Nauka polecenia SQL SELECT może umożliwić tworzenie złożone zapytania których nie można łatwo wygenerować za pomocą narzędzi Query by example, takich jak MySQL stoł warsztatowy.
Aby poprawić produktywność, możesz wygeneruj kod za pomocą MySQL Workbench następnie dostosować jej spełnić Twoje wymagania. Może się to zdarzyć tylko wtedy, gdy zrozumiesz, jak działają instrukcje SQL!
Podsumowanie
- Słowo kluczowe SQL SELECT służy do wysyłania zapytań o dane z bazy danych i jest to najczęściej używane polecenie.
- Najprostsza forma ma składnię „SELECT * FROM nazwa_tabeli;”
- Wyrażenia mogą być także użyte w instrukcji Select. Przykład „WYBIERZ ilość + cenę ZE sprzedaży”
- Polecenie SQL SELECT może mieć również inne opcjonalne parametry, takie jak WHERE, GROUP BY, HAVING, ORDER BY. Zostaną omówione później.
- MySQL Workbench może pomóc w opracowywaniu instrukcji SQL, wykonywaniu ich i generowaniu wyniku wyjściowego w tym samym oknie.