Co to jest zapytanie SELECT w MySQL?
SELECT QUERY służy do pobierania danych z bazy danych MySQL. Bazy danych przechowują dane do późniejszego pobrania. Celem MySQL Select jest zwrócenie z tabel bazy danych jednego lub więcej wierszy, które spełniają podane kryteria. Zapytanie wybierające może być używane w językach skryptowych, takich 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 | ALL] 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, jako domyślne przyjmuje się ALL.
- {* | [fieldExpression [AS newName]} co najmniej jedna część musi być określona, "*" wybiera 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 łańcuchowych w jedno.
- FROM 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.
- GDZIE warunek jest opcjonalny, można go użyć do określenia kryteriów w zestawie wyników zwróconym przez zapytanie.
- GROUP BY służy do łączenia rekordów, które mają takie same wartości pól.
- Warunek HAVING służy do określenia kryteriów podczas pracy ze słowem kluczowym GROUP BY.
- ORDER BY służy do określania kolejności sortowania zestawu wyników.
*
Symbol gwiazdy 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 prętów. Średnik oznacza zakończenie instrukcji. Zakończenie takich wypowiedzi nie jest obowiązkowe, ale uważane jest za dobrą praktykę.
Praktyczne przykłady
Kliknij, aby pobrać bazę danych myflix używaną do praktycznych przykładów.
Możesz nauczyć się importować plik .sql do MySQL WorkBench
Przykłady przedstawiono na poniższych dwóch tabelach
Tabela 1: tabela członków
numer_ członkostwa | pełne nazwy | płeć | Data urodzenia | adres fizyczny | adres pocztowy | contct_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Płeć żeńska | 21-07-1980 | Działka nr 4 przy pierwszej ulicy | Prywatna torba | 0759 253 542, | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
2 | Janet Smith Jones | Płeć żeńska | 23-06-1980 | Melrose 123 | ZERO | ZERO | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
3 | Robert Phil | Męski | 12-07-1989 | Ul. 3rd Street 34 | ZERO | 12345 | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
4 | Gloria Williams | Płeć żeńska | 14-02-1984 | 2nd Street 23 | ZERO | ZERO | ZERO |
Tabela 2: tabela filmów
movie_id | tytuł | dyrektor | year_released | category_id |
---|---|---|---|---|
1 | Piraci z Karaibów 4 | Rob Marshall | 2011 | 1 |
2 | Zapominając o Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X Men | ZERO | 2008 | ZERO |
4 | Nazwa kodowa Czarny | Edgar Jimz | 2010 | ZERO |
5 | Dziewczynki tatusia | ZERO | 2007 | 8 |
6 | Anioły i demony | ZERO | 2007 | 6 |
7 | Kod da vinci | ZERO | 2007 | 6 |
9 | Kochani księżycowcy | John Schultz | 2005 | 8 |
16 | 67% winny | ZERO | 2012 | ZERO |
Pobieranie listy członków
Załóżmy, że chcemy pobrać listę wszystkich zarejestrowanych członków biblioteki z naszej bazy danych, użylibyśmy do tego poniższego skryptu.
SELECT * FROM `members`;
Wykonanie powyższego skryptu w środowisku roboczym MySQL daje następujące wyniki.
numer_ członkostwa | pełne nazwy | płeć | Data urodzenia | adres fizyczny | adres pocztowy | contct_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Płeć żeńska | 21-07-1980 | Działka nr 4 przy pierwszej ulicy | Prywatna torba | 0759 253 542, | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
2 | Janet Smith Jones | Płeć żeńska | 23-06-1980 | Melrose 123 | ZERO | ZERO | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
3 | Robert Phil | Męski | 12-07-1989 | Ul. 3rd Street 34 | ZERO | 12345 | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
4 | Gloria Williams | Płeć żeńska | 14-02-1984 | 2nd Street 23 | ZERO | ZERO | ZERO |
Nasze powyższe zapytanie zwróciło wszystkie wiersze i kolumny z tabeli elementów członkowskich.
Powiedzmy, że jesteśmy zainteresowani tylko pełnymi nazwami, płcią, adresem fizycznym i adresami e-mail. Poniższy skrypt pomoże nam to osiągnąć.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Wykonanie powyższego skryptu w środowisku roboczym MySQL daje następujące wyniki.
pełne nazwy | płeć | adres fizyczny | |
---|---|---|---|
Janet Jones | Płeć żeńska | Działka nr 4 przy pierwszej ulicy | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
Janet Smith Jones | Płeć żeńska | Melrose 123 | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
Robert Phil | Męski | Ul. 3rd Street 34 | Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. |
Gloria Williams | Płeć żeńska | 2nd Street 23 | ZERO |
Pobieranie listy filmów
Pamiętaj, że w naszej powyższej dyskusji wspominamy o wyrażeniach użytych w instrukcjach SELECT. Powiedzmy, że chcemy pobrać 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, w którym film został wydany. Poniższy skrypt pomaga nam to zrobić.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
TUTAJ
- Używana jest funkcja Concat () MySQL, łącząca wartości kolumn ze sobą.
- Linia "Concat (` title`, '(', `director`, ')') otrzymuje tytuł, dodaje nawias otwierający, po którym następuje nazwisko reżysera, a następnie dodaje nawias zamykający.
Fragmenty ciągów są oddzielane przecinkami w funkcji Concat ().
Wykonanie powyższego skryptu w środowisku roboczym MySQL daje następujący zestaw wyników.
Concat (`tytuł`,` (', `reżyser`,') ') | year_released |
---|---|
Piraci z Karaibów 4 (Rob Marshall) | 2011 |
Zapominając o Sarah Marshal (Nicholas Stoller) | 2008 |
ZERO | 2008 |
Nazwa kodowa Czarny (Edgar Jimz) | 2010 |
ZERO | 2007 |
ZERO | 2007 |
ZERO | 2007 |
Honey Mooners (John Schultz) | 2005 |
ZERO | 2012 |
Nazwy pól aliasów
Powyższy przykład zwrócił kod konkatenacji jako nazwę pola dla naszych wyników. Załóżmy, że w naszym zestawie wyników chcemy użyć bardziej opisowej nazwy pola. 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
- „SELECT” nazwa_kolumny | wartość | wyrażenie „” to zwykła instrukcja SELECT, która może być nazwą kolumny, wartością lub wyrażeniem.
- „[AS]” jest opcjonalnym słowem kluczowym przed nazwą aliasu oznaczającą wyrażenie, wartość lub nazwę pola zostaną zwrócone jako.
- „alias_name” to nazwa aliasu, którą chcemy zwrócić w naszym zestawie wyników jako nazwę pola.
Powyższe zapytanie z bardziej zrozumiałą nazwą kolumny
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Otrzymujemy następujący wynik
Concat | year_released |
---|---|
Piraci z Karaibów 4 (Rob Marshall) | 2011 |
Zapominając o Sarah Marshal (Nicholas Stoller) | 2008 |
ZERO | 2008 |
Nazwa kodowa Czarny (Edgar Jimz) | 2010 |
ZERO | 2007 |
ZERO | 2007 |
ZERO | 2007 |
Honey Mooners (John Schultz) | 2005 |
ZERO | 2012 |
Pobieranie listy członków z datą urodzenia
Załóżmy, że chcemy uzyskać listę wszystkich członków zawierającą numer członkostwa, imiona i nazwiska oraz rok urodzenia, możemy użyć funkcji LEWY napis, aby wyodrębnić rok urodzenia z pola daty urodzenia. Poniższy skrypt pomaga nam to zrobić.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
TUTAJ
- „LEFT („ date_of_birth ”, 4)” funkcja LEFT string akceptuje datę urodzenia jako parametr i zwraca tylko 4 znaki od lewej.
- „AS„ rok_urodzin ” to alias kolumny, który zostanie zwrócony w naszych wynikach. Zauważ, że słowo kluczowe AS jest opcjonalne , możesz je pominąć, a zapytanie będzie nadal działać.
Wykonanie powyższego zapytania w środowisku MySQL względem myflixdb daje nam wyniki pokazane poniżej.
numer_członkostwa | pełne nazwy | rok urodzenia |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL przy użyciu MySQL Workbench
Zamierzamy teraz użyć Środowiska pracy MySQL 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. Środowisko pracy MySQL automatycznie utworzy zapytanie SQL i wklei je do edytora.
3. Wyniki zapytania zostaną wyświetlone
Zauważ, że sami nie napisaliśmy instrukcji SELECT. Środowisko pracy MySQL wygenerowało go dla nas.
Po co używać polecenia SELECT SQL, skoro mamy MySQL Workbench?
Teraz możesz się zastanawiać, 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 Środowisko pracy MySQL, aby uzyskać te same wyniki bez znajomości języka SQL. Oczywiście jest to możliwe, ale nauka korzystania z polecenia SELECT zapewnia większą elastyczność i kontrolę nad instrukcjami SQL SELECT .
Środowisko pracy MySQL należy do kategorii narzędzi QBE " Zapytanie na podstawie przykładu ". Ma na celu przyspieszenie generowania instrukcji SQL i zwiększenie produktywności użytkownika.
Poznanie polecenia SQL SELECT umożliwia tworzenie złożonych zapytań , których nie można łatwo wygenerować za pomocą narzędzi Query by Example, takich jak Środowisko pracy MySQL.
Aby zwiększyć produktywność, możesz wygenerować kod za pomocą środowiska roboczego MySQL, a następnie dostosować go do swoich wymagań . Może się to zdarzyć tylko wtedy, gdy rozumiesz, jak działają instrukcje SQL!
Podsumowanie
- Słowo kluczowe SQL SELECT służy do wykonywania zapytań o dane z bazy danych i jest to najczęściej używane polecenie.
- Najprostsza forma ma składnię „SELECT * FROM tableName;”
- Wyrażeń można również używać w instrukcji select. Przykład „WYBIERZ ilość + cena 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.
- Środowisko pracy MySQL może pomóc w tworzeniu instrukcji SQL, wykonywaniu ich i generowaniu wyników w tym samym oknie.