Na przykład ciągi w SQL są oznaczone przez zamknięcie ich wewnątrz pary pojedynczych cytatów. Jeśli jednak chcesz dodać cytowany ciąg, jest to niemożliwe bez użycia znaków ucieczki. Wynika to z faktu, że SQL zinterpretuje drugą postać pojedynczego cytatu jako blok zamykający do ciągu.
Weźmy przykład pokazany poniżej:
„To jego dom”;Jeśli spróbujesz dodać, takie jak ciąg do SQL, spowoduje to błąd.
SQL Escape Single Quote
Sposób uniknięcia tego problemu jest użycie znaków ucieczki. Są to zestaw znaków, które wdrażają specjalne znaczenie, gdy są odpowiednio używane.
Typowe znaki ucieczki SQL obejmują:
To jest kilka znanych znaków ucieczki obsługiwanych przez silniki bazy danych. Należy pamiętać, że różni dostawcy baz danych mogą wdrażać niestandardowe znaki ucieczki. Zapraszam do sprawdzenia dokumentacji silnika bazy danych, aby dowiedzieć się więcej.
Poniższy przykład pokazuje, jak uciec od jednego cytatu w SQL:
„To jego dom”;W niektórych silnikach bazy danych powyższa składnia nie jest obsługiwana. Na przykład uruchomienie zapytania w PostgreSQL nie powiedzie się:
Wybierz „to jego dom”;W takim przypadku zarówno PostgreSQL, jak i SQL Server pozwalają uniknąć pojedynczego cytowanego ciągu za pomocą składni pokazanej poniżej:
Wybierz „to jego dom”;Powinno to uniknąć pojedynczego cytatu i wydrukować następujące:
?KOLUMNA?Możemy również użyć mieszanki podwójnych cytatów i pojedynczych cytatów, aby osiągnąć ten sam wynik. Pamiętaj, że ta metoda jest obsługiwana tylko w silnikach bazy danych, w których można tworzyć ciągi za pomocą podwójnych cytatów. Przykładem jest silnik bazy danych MySQL.
Przykład jest pokazany poniżej:
Wybierz „To jego dom” jako ciąg;Ponieważ używamy podwójnych cytatów do oznaczenia ciągu, pojedynczy cytat jest automatycznie traktowany jako część dosłownego ciągu.
Wniosek
W tym artykule zbadaliśmy znaki ucieczki w bazach danych SQL i jak je używać do ucieczki przed znakami pojedynczymi. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i samouczków.