Wprowadzenie do SELECT w MySQL
W tym temacie dowiemy się o SELECT w MySQL, a przede wszystkim o DQL, który jest „Data Query Language”. Jest to odtwarzane, gdy próbujemy pobrać rekordy z bazy danych i zaczyna się od polecenia „SELECT”. To polecenie może być używane z wieloma klauzulami SQL, a także innymi funkcjami, aby uzyskać pożądane rekordy.
Istnieje wiele rodzajów poleceń SQL, które można podzielić na następujące kategorie:
- DDL (język definicji danych)
- DML (język manipulacji danymi)
- DQL (język zapytań danych)
- DCL (język kontroli danych)
- TCL (język kontroli transakcji)
Składnia:
1. Podstawowa składnia polecenia SELECT:
SELECT * FROM table_name;
Spowoduje to pobranie wszystkich rekordów ze wszystkimi atrybutami z tabeli.
SELECT column1, column2, …. FROM table_name;
Spowoduje to pobranie określonych kolumn z tabeli, które są przekazywane przez zapytanie.
2. Tego polecenia SELECT można także używać z poleceniem INSERT, które służy do dodawania rekordów do istniejącej tabeli.
INSERT INTO table_name1 SELECT * FROM table_name2;
Tutaj zapytanie pobierze wszystkie rekordy z nazwa_tabeli2 i wstawi je do nazwy_tabeli1.
Przykłady implementacji SELECT w MySQL
Rozważmy, że istnieje tabela klientów z następującymi atrybutami.
Cust_id | Imię | Nazwisko | Kontakt | Miasto | Ilość | |
1001 | Rohit | Sharma | 9876736587 | Bombaj | dziesięć tysięcy | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Bombaj | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 |
Zobaczymy kilka podstawowych zapytań SELECT wykorzystujących pewne klauzule do podstawowego zrozumienia działania tego polecenia.
Przykład 1
SELECT * FROM customer;
(Spowoduje to pobranie wszystkich rekordów ze wszystkimi atrybutami z tabeli).
Wynik:
Cust_id | Imię | Nazwisko | Kontakt | Miasto | Ilość | |
1001 | Rohit | Sharma | 9876736587 | Bombaj | dziesięć tysięcy | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Bombaj | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 |
Przykład nr 2
SELECT cust_id, first_name, last_name, email, city
FROM customer;
(Spowoduje to pobranie określonych kolumn z tabeli, które są przekazywane przez zapytanie)
Wynik:
Cust_id | Imię | Nazwisko | Miasto | |
1001 | Rohit | Sharma | Bombaj | |
1002 | Virat | Kohli | Delhi | |
1003 | Sachin | Tendulkar | Bombaj | |
1004 | Virendra | Shewag | Delhi |
Przykład nr 3
SELECT cust_id, first_name, last_name, email, city FROM customer
WHERE city = 'Delhi';
(GDZIE polecenie pobierze tylko te rekordy, gdzie miastem będzie „Delhi”)
Wynik:
Cust_id | Imię | Nazwisko | Miasto | |
1002 | Virat | Kohli | Delhi | |
1004 | Virendra | Shewag | Delhi |
Przykład 4
SELECT cust_id, first_name, last_name, city, amount FROM customer
WHERE amount BETWEEN 5000 AND 25000;
(Klauzula BETWEEN zwróci rekordy, które spełniają podany zakres warunku przekazany w zapytaniu)
Wynik:
Cust_id | Imię | Nazwisko | Miasto | Ilość |
1001 | Rohit | Sharma | Bombaj | dziesięć tysięcy |
1003 | Sachin | Tendulkar | Bombaj | 15000 |
1004 | Virendra | Shewag | Delhi | 20000 |
Przykład 5
SELECT * FROM customer
ORDER BY amount DESC;
(Służy do sortowania wartości liczbowych i ciągów zarówno w sposób rosnący, jak i malejący. Ale domyślnie sortuje się w sposób rosnący. Jeśli chcemy w porządku malejącym, musimy to określić po użyciu klauzuli ORDER BY)
Wynik:
Cust_id | Imię | Nazwisko | Kontakt | Miasto | Ilość | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 | |
1003 | Sachin | Tendulkar | 9867868678 | Bombaj | 15000 | |
1001 | Rohit | Sharma | 9876736587 | Bombaj | dziesięć tysięcy |
Klauzule z poleceniem SELECT
Inne klauzule z poleceniem SELECT:
1. WYBIERZ: Służy do pobierania wszystkich rekordów z tabeli.
SELECT * FROM table;
2. DISTINCT: Służy do pobierania wszystkich unikalnych wartości z tabeli.
SELECT DISTINCT col_name FROM table;
3. GDZIE: Wykorzystano warunki wybaczania przy wyszukiwaniu zapisów.
SELECT employee_id FROM employee
WHERE name = 'stella';
4. LICZBA: Służy do uzyskania liczby rekordów obecnych w tabeli.
SELECT COUNT(*) FROM employee;
5. ORDER BY: Służy do sortowania zarówno wartości numerycznych, jak i łańcuchowych w sposób rosnący lub malejący. Ale domyślnie sortuje się w sposób rosnący. Jeśli chcemy zejść, musimy to określić po użyciu klauzuli ORDER BY.
SELECT first_name FROM student
ORDER BY marks desc;
6. LIMIT: Służy do określania liczby rekordów, które chcemy wykonać po wykonaniu zapytania. Jeśli chcemy najlepszych 5 uczniów klasy, po posortowaniu wyników możemy użyć tego LIMITU, określając 5. Aby pobrał tylko 5 najlepszych rekordów.
SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;
(** ORDER BY użyte tutaj do sortowania wartości w kolejności malejącej)
7. ORAZ: Jeśli podane są 2 warunki i oba są spełnione dla rekordu, tylko zapytanie pobierze te rekordy.
SELECT employee_id FROM employee
WHERE name = 'stella' AND city = 'Bangalore';
8. LUB: Jeśli podane zostaną 2 warunki i jeden z nich zostanie spełniony, rekord zostanie pobrany.
SELECT employee_id FROM employee
WHERE department = 'IT' OR city = 'Bangalore';
9. NOT: Używany z warunkami. Jeśli podamy NIE przed jakimikolwiek warunkami, rekordy niespełniające tych warunków zostaną pobrane.
SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;
10. MIĘDZY: Ten operator wybiera rekordy w danym zakresie. Najczęściej używamy tego, gdy chcemy określić zakres dat.
SELECT emp_id FROM employee
WHERE emp_id BETWEEN 1 AND 10;
SELECT * FROM employee
WHERE join_date BETWEEN '2007-01-01' AND '2008-01-01';
11. IN: Ten operator pozwala nam określić wiele wartości w klauzuli WHERE.
SELECT * FROM employee
WHERE employee_id IN (1001, 1004, 1008, 1012);
12. JAK: Ten operator jest używany z klauzulą WHERE do wyszukiwania określonego wzorca w kolumnie zawierającej ciąg.
- „A%” - ciąg zaczyna się od A
- „& A” - kończy się na A
- „% A%” - A będzie pomiędzy ciągiem
- „_A%” - tutaj drugą literą będzie A
- „% A_” - 2. miejsce od ostatniej litery będzie A
SELECT first_name FROM table
WHERE first_name LIKE 'A%';
13. SUBSTRING: Służy do wybierania określonego znaku z ciągu znaków poprzez określenie pozycji.
SELECT SUBSTRING(customer_name, 1, 5) FROM customer_table;
(pobierze znak z 1. do 5. pozycji ciągu)
14. INSTR: Zwraca pozycję ciągu w innym ciągu.
SELECT INSTR('independence', 'pen');
(znajdzie pozycję „długopis” w słowie „niezależność”)
15. GROUP BY: Służy do segregowania rekordów na podstawie określonych warunków.
SELECT employee_id FROM employee GROUP BY department HAVING salary > 100000;
(Tutaj pogrupuj według posegregowanych pracowników według ich działu i pensji przekraczającej 100 tys.
Warunek zawsze zawiera instrukcję HAVING w klauzuli GROUP BY).
Funkcje agregujące
Poniżej znajduje się inna funkcja agregująca:
1. SUMA: Oblicza sumę wartości.
SELECT SUM(salary) FROM employee;
2. AVG: Oblicza średni zestaw wartości.
SELECT AVG(salary) FROM employee;
3. MIN: Pobiera minimalną wartość z zestawu wartości.
SELECT MIN(salary) FROM employee;
4. MAX: Pobiera maksymalną wartość z zestawu wartości.
SELECT MAX(salary) FROM employee;
Dołącza do SELECT w MySQL
1. ŁĄCZENIE WEWNĘTRZNE: Zwraca rekordy, które mają pasującą wartość w obu tabelach.
SELECT * FROM order
INNER JOIN customer
ON order.cust_id = customer.cust_id;
2. LEFT JOIN: Zwraca wszystkie rekordy z lewej tabeli i dopasowane rekordy z prawej tabeli.
SELECT * FROM order
LEFT JOIN customer
ON order.cust_id = customer.cust_id;
3. PRAWE DOŁĄCZ: Zwraca wszystkie rekordy z prawej tabeli i dopasowane rekordy z lewej tabeli.
SELECT * FROM order
RIGHT JOIN customer
ON order.cust_id = customer.cust_id;
4. PEŁNE DOŁĄCZENIE DO ZEWNĘTRZNEJ: Zwraca wszystkie rekordy, gdy występuje dopasowanie na lewej lub prawej tabeli.
SELECT * FROM order
FULL OUTER JOIN customer
ON order.cust_id = customer.cust_id;
Wniosek - wybierz w MySQL
Te polecenia i klauzule, które omówiliśmy powyżej, są bardzo przydatne w scenariuszach w czasie rzeczywistym, ponieważ zapewniają podstawowe pojęcia dotyczące korzystania z zapytań SQL do pobierania i manipulowania danymi w bazie danych. Oprócz tego, podczas korzystania z zaawansowanych zapytań analitycznych, takich jak funkcja okna itp., Te klauzule są bardzo ważne.
Polecane artykuły
To jest przewodnik po SELECT w MySQL. Omawiamy przykład implementacji SELECT w MySQL z klauzulami, funkcjami agregującymi i złączeniami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -
- Symbole wieloznaczne w MySQL
- Co to jest schemat MySQL?
- Jak podłączyć bazę danych do MySQL?
- Zapytania MySQL
- WSTAW w Oracle | Przykłady
- Przykłady DISTINCT w Oracle