MySQL obsługuje pojedyncze cudzysłowy, podwójne cudzysłowy i znaki wsteczne do różnych celów. W tym artykule przyjrzymy się, kiedy używać pojedynczych cudzysłowów, podwójnych cudzysłowów i znaków wstecznych w MySQL.
Pojedyncze cudzysłowy, podwójne cudzysłowy i znaki wsteczne w MySQL
Należy pamiętać:
- Pojedyncze cudzysłowy i podwójne cudzysłowy są używane wokół łańcuchów
- Wokół nazw baz danych, nazw tabel i nazw kolumn używane są znaki wsteczne
Pojedyncze cytaty
Oto kilka przykładów użycia pojedynczych cudzysłowów w MySQL.
mysql> SELECT 'test' example1, '"test"' example2, '""test""' example3, 'te''st' example4; +----------+----------+----------+----------+ | example1 | example2 | example3 | example4 | +----------+----------+----------+----------+ | test | "test" | ""test"" | te'st | +----------+----------+----------+----------+
Jak widać powyżej, jeśli dodasz podwójne cudzysłowy wewnątrz pojedynczych cudzysłowów, będą one traktowane jako znaki łańcuchowe i wyświetlane bez zmian. Więc jeśli chcesz wyświetlić podwójne cudzysłowy w wyniku, zawiń je w pojedyncze cudzysłowy.
Jeśli chcesz wyświetlić pojedyncze cudzysłowy w ciągu, a także zapakować je w pojedyncze cudzysłowy, musisz zmienić wewnętrzne pojedyncze cudzysłowy za pomocą odwrotnego ukośnika (\), jak pokazano poniżej.
mysql> select 'They\'ve gone' as example; +--------------+ | example | +--------------+ | They've gone | +--------------+
Podwójne cytaty
Oto kilka przykładów użycia podwójnych cudzysłowów w MySQL.
mysql> SELECT "test" example1, "'test'" example2, "''test''" example3, "te""st" example4; +----------+----------+----------+----------+ | example1 | example2 | example3 | example4 | +----------+----------+----------+----------+ | test | 'test' | ''test'' | te"st | +----------+----------+----------+----------+
Jak widać powyżej, jeśli dodasz pojedyncze cudzysłowy wewnątrz podwójnych cudzysłowów, będą one traktowane jako znaki łańcuchowe i wyświetlane bez zmian. Więc jeśli chcesz wyświetlić pojedyncze cudzysłowy w wyniku, umieść je w podwójnych cudzysłowach.
Jeśli chcesz wyświetlić pojedyncze cudzysłowy w ciągu, a także zapakować je w pojedyncze cudzysłowy, musisz zmienić wewnętrzne pojedyncze cudzysłowy za pomocą odwrotnego ukośnika (\), jak pokazano poniżej.
mysql> select "He said, \"They've gone\"" as example; +-------------------------+ | example | +-------------------------+ | He said, "They've gone" | +-------------------------+
Wstecz
Wokół nazwy bazy danych, nazwy tabeli, nazwy kolumny używane są znaki wsteczne. Są one wymagane, zwłaszcza jeśli nazwy bazy danych/tabeli/kolumn zawierają znaki odstępu.
Oto przykład. Spróbujemy utworzyć bazę danych o nazwie „przykładowe dane”.
mysql> create database sample data; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'data' at line 1 mysql> create database `sample data`; Query OK, 1 row affected (0.01 sec) mysql> use `sample data` ERROR 1049 (42000): Unknown database 'sample'; mysql> use `sample data` Database changed
Znaki wsteczne są opcjonalne, jeśli nazwy bazy danych, tabel i kolumn nie zawierają białych znaków.
Potrzebujesz narzędzia do raportowania dla MySQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!