sql >> Databasteknik >  >> RDS >> SQLite

Hur SQLite Quote() fungerar

SQLite quote() funktionen låter dig escape en sträng så att den är lämplig för inkludering i en SQL-sats.

Strängar är omgivna av enkla citattecken med escapes på invändiga citat.

BLOB är kodade som hexadecimala bokstaver.

Observera att strängar med inbäddade NUL-tecken inte kan representeras som strängliteraler i SQL. Om du inkluderar strängar med inbäddade NUL-tecken, trunkeras den returnerade strängliteralen före den första NUL.

Exempel

Här är ett enkelt exempel på quote() funktion för att visa hur det fungerar.

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

Resultat:

'Pengar'-citat('Pengar') ---------- ----------------------Pengar 'Pengar'  

Lägg märke till att den andra kolumnen returneras med enkla citattecken.

Generera en SQL-sats

quote() funktionen kan vara praktisk om du någonsin behöver generera en SQL INSERT uttalande från innehållet i en befintlig databastabell.

Till exempel har jag följande tabell som heter Produkter :

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

Varje produktnamn innehåller ett enda citattecken. Om jag ville skapa en INSERT uttalande med dessa värden, då skulle jag behöva undkomma de enstaka citattecken.

Här är ett exempel på hur du genererar INSERT satser från den här tabellen och med quote() för att undvika de enstaka citattecken.

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

Resultat:

INSERT INTO Products2 (Produktnamn, Pris) VÄRDEN ('Homer's Widget', 10.0); INSERT INTO Products2 (Produktnamn, Pris) VÄRDEN ('Peters Widget', 20.75); INSERT INTO Products2 (Produktnamn, Pris) VÄRDEN ('Bob's Widget', 15.0); 


  1. MyBatis Insert List-värden

  2. Hur man ställer in samlingen av en databas i SQL Server (T-SQL)

  3. Hur tar jag bort icke-avbrytande blanksteg från en kolumn i SQL-servern?

  4. Pymysql Cursor.fetchall() / Fetchone() Returnerar ingen