SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak działa SQLite Quote()

SQLite quote() funkcja pozwala na zmianę znaczenia ciągu, aby nadawał się do włączenia do instrukcji SQL.

Ciągi otoczone są pojedynczymi cudzysłowami ze znakami ucieczki na wewnętrznych cudzysłowach.

Bloki BLOB są zakodowane jako literały szesnastkowe.

Zauważ, że ciągi z osadzonymi znakami NUL nie mogą być reprezentowane jako literały ciągów w SQL. Jeśli dołączysz ciągi z osadzonymi znakami NUL, zwrócony literał ciągu zostanie obcięty przed pierwszym znakiem NUL.

Przykład

Oto prosty przykład quote() funkcji, aby zademonstrować, jak to działa.

SELECT 
  'Money',
  quote('Money');

Wynik:

'Money'     quote('Money')        
----------  ----------------------
Money       'Money'               

Zauważ, że druga kolumna jest zwracana z pojedynczymi cudzysłowami.

Generowanie instrukcji SQL

quote() funkcja może się przydać, jeśli kiedykolwiek będziesz musiał wygenerować SQL INSERT oświadczenie z zawartości istniejącej tabeli bazy danych.

Na przykład mam następującą tabelę o nazwie Produkty :

ProductId   ProductName     Price     
----------  --------------  ----------
1           Homer's Widget  10.0      
2           Peter's Widget  20.75     
3           Bob's Widget    15.0      

Każda nazwa produktu zawiera jeden znak cudzysłowu. Gdybym chciał wygenerować INSERT oświadczenie z tymi wartościami, wtedy musiałbym uciec przed znakami pojedynczego cudzysłowu.

Oto przykład generowania INSERT oświadczenia z tej tabeli i użycie quote() aby pominąć pojedyncze znaki cudzysłowu.

SELECT 
  'INSERT INTO Products2 (ProductName, Price) 
   VALUES (' || quote(ProductName) || ', ' || Price || ');'
FROM Products;

Wynik:

INSERT INTO Products2 (ProductName, Price) 
   VALUES ('Homer''s Widget', 10.0);                        
INSERT INTO Products2 (ProductName, Price) 
   VALUES ('Peter''s Widget', 20.75);                       
INSERT INTO Products2 (ProductName, Price) 
   VALUES ('Bob''s Widget', 15.0);    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android:otwieranie i zamykanie bazy danych SQLite

  2. Utwórz tabelę w SQLite

  3. sqlite uzyskaj pole z ponad 2 MB

  4. Android Studio 3.0 canary 1:błąd składni SQL

  5. Uprawnienia użytkownika SQLite