|
Kurs MySQL - wprowadzanie zapytań
Wprowadzanie zapytań Upewnij się, że jesteś podłączony do serwera (jest to omówione w poprzedniej części). Samo połączenie nie wybiera żadnej
bazy danych, jednak na razie wszystko jest w porządku. Na tym etapie ważniejsze jest, aby dowiedzieć się jak wprowadzać
zapytania niż rzucać się od razu w wir tworzenia tabel, wypełniania ich danymi i uzyskiwanie odpowiedzi. Ta część opisuje
podstawowe zasady wydawania poleceń, używając kilku zapytań możesz zaznajomić się ze sposobem, w jaki działa Poniżej przedstawiono proste polecenie, które każe serwerowi zwrócić numer jego wersji i aktualną datę. Po symbolu zachęty
mysql> SELECT VERSION(), CURRENT_DATE();
+-----------+---------------+
| VERSION() | CURRENT_DATE()|
+-----------+---------------+
| 4.0.24-nt | 2005-05-29 |
+-----------+---------------+
1 row in set (0.06 sec)
mysql>
Zapytanie to ilustruje kilka rzeczy związanych z
Wielkość liter w słowach kluczowych nie ma znaczenia. Następujące zapytania są równoważne:
mysql> SELECT VERSION(), CURRENT_DATE();
mysql> select version(), current_date();
mysql> SeLeCt vErSiOn(), current_DATE();
Następne zapytanie pokazuje, jak można użyć
mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+
Zaprezentowane do tej pory polecenia były stosunkowo krótkimi, jednoliniowymi instrukcjami. Możesz nawet wprowadzić kilka instrukcji w jednej lini kończąc każdą z nich średnikiem:
mysql> SELECT VERSION(); SELECT NOW();
+-----------+
| VERSION() |
+-----------+
| 4.0.24-nt |
+-----------+
+---------------------+
| NOW() |
+---------------------+
| 2005-05-29 08:19:41 |
+---------------------+
Polecenie nie musi się całe zawierać w jednej linii więc długie instrukcje, wymagające kilku wierszy nie stanowią problemu.
Oto przykład instrukcji zapisanej w kilku linijkach:
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;");
+----------------+--------------+
| USER() | CURRENT_DATE |
+----------------+--------------+
| root@localhost | 2005-05-29 |
+----------------+--------------+
Zauważ, że po wprowadzeniu pierwszej linii symbol zachęty zmienia się z Jeżeli zadecydujesz, że nie chcesz wykonywać polecenia które właśnie prowadzasz, możesz je anulować przez wpisanie \c:
mysql> SELECT
-> USER()
-> \c
mysql>
Zauważ, że symbol zachęty powraca do postaci Poniższa tabela pokazuje wszystkie symbole zachęty jakie możesz spotkać i w skrócie opisuje, w jakim stanie znajduje się
Instrukcje wielowierszowe powstają często przez przypadek, kiedy zamierzasz wydać instrukcję w jednej linii,
ale zapominasz o końcowym średniku. W takim przypadku,
mysql> SELECT USER()
->
Jeżeli Ci się to zdarzy (myślisz, że wprowadziłeś poprawną instrukcję, ale jedyną odpowiedzią jest symbol zachęty
mysql> SELECT USER()
-> ;
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
Symbole zachęty w postaci '> i "> występują podczas wprowadzania łańcuchów znakowych. W MySQL możesz podawać łańcuchy ujmując je w apostrofy lub w cudzysłowy, a łańcuch znaków może ciągnąć się przez kilka wierszy. Kiedy widzisz zachętę w postaci'> lub "> oznacza to, że wprowadziłeś linię zawierającą łańcuch zaczynający się od znaku ' lub ", ale nie podałeś do tej pory odpowiadającego znaku kończącego łańcuch. Wszystko jest w porządku, jeżeli rzeczywiście wprowadzasz wielowierszowy tekst, jednak czy naprawdę często to robisz? Chyba raczej nie. Znacznie częściej symbole zachęty '> i "> oznaczają, że zapomniałeś o kończącym cudzysłowie. Np.:
mysql> SELECT * FROM moja_tabela WHERE imie = "Jan AND wiek < 30;
">
Jeżeli wprowadzisz powyższą instrukcję Co możesz zrobić w tym momencie? Najprostszą rzeczą jest anulowanie polecenia. Jednakże, nie możesz po prostu wpisać \c
ponieważ
mysql> SELECT * FROM my_table WHERE nazwisko = "Jan AND wiek < 30;
"> "\c
mysql>
Symbol zachęty powraca do postaci Ważne jest, żeby wiedzieć, co oznaczają symbole '> i "> ponieważ, jeżeli przez przypadek wprowadzisz
nie zakończony łańcuch, to każda następna linia którą wpiszesz będzie sprawiała wrażenie ignorowanej przez
|