Esiste uno standard SQL per evitare il nome di una colonna? Se no, cosa funziona per mysql e sqlite? funziona anche per sqlserver?Standard SQL per l'escape dei nomi delle colonne?
risposta
Per MySQL, utilizzare ticks `.
Per esempio:
SELECT `column`, `column2` FROM `table`
Per MS SQL usare [e]
SELECT [COLUMN], [COLUMN 2] FROM [TABLE]
Lo SQL-99 standard di specifies che doppie virgolette (") viene utilizzato per delimitare gli identificatori
. Oracle, PostgreSQL, MySQL, MSSQL e SQlite supportano tutti "come il delimitatore dell'identificatore (sebbene non tutti lo utilizzino" come "predefinito" - per esempio, devi eseguire MySQL in ANSI mode e SQL Server supporta solo quando QUOTED_IDENTIFIER
è ON
.)
Secondo SQLite,
'foo'
è una stringa SQL"foo"
è un identificatore SQL (colonna/tabella/etc)[foo]
è un identificativo in MS SQL`foo`
è un identificativo in MySQL
Per i nomi qualificati, la sintassi è: "t"."foo"
o [t].[foo]
, ecc
MySQL supporta il "foo" standard quando l'opzione ANSI_QUOTES
è abilitata.
Si noti che SQLite consente a ''foo'' di essere interpretato come identificativo se il contesto non consente una stringa, e' "foo" 'deve essere interpretato come una stringa se il contesto non consente un identificatore, anche se è una nota che questo comportamento può essere rimosso nelle versioni future. – thomasrutter
Quindi, come si fa a "t". *? – Loenix
@thomasrutter Sì, sono stato completamente morso da questo comportamento ... Ho provato a usare 'WHERE" nonexistent_column "= 0' e sqlite l'ho eseguito felicemente fingendo che il mio' "nonexistent_column" 'fosse una stringa. Completamente qualificando il nome come "" my_table "." Nonexistent_column "' forza lo sqlite a comportarsi in modo più rigoroso. – Rufflewind
Per DBASE uso/DBF [
e ]
SELECT [DATE], [TIME], [ANY_OTHER_TO_BE_ESCAPED_COLUMN] FROM [TABLE]
- 1. SQL nomi delle colonne Selezione come valori
- 2. Cambia maiuscole/minuscole dei nomi delle colonne
- 3. SQL dinamico per generare nomi di colonne?
- 4. Ottieni i nomi delle colonne
- 5. Ridenominazione dei nomi delle colonne in Pandas Funzione Groupby
- 6. Looping attraverso i nomi delle colonne con SQL dinamico
- 7. Utilizzo dei nomi di colonne sql in hibernate createSQlquery result
- 8. mysql, scorrere i nomi delle colonne
- 9. Ottenere SqlBulkCopy per onorare i nomi delle colonne
- 10. SQL - Restituzione dei valori cumulativi mensili delle colonne
- 11. Qual è lo spazio dei nomi 'Standard'?
- 12. in base ai nomi delle colonne
- 13. Soluzione standard per la visualizzazione dei nomi di caratteri C++?
- 14. ricerca dei nomi delle tabelle
- 15. Hive - ottieni i nomi delle colonne
- 16. Recupera i nomi delle colonne da java.sql.ResultSet
- 17. Accesso ai nomi delle colonne lapply
- 18. data.frame senza rovinare i nomi delle colonne
- 19. LIKE con% sui nomi delle colonne
- 20. Come modificare i nomi delle colonne di SQL Server in T-SQL?
- 21. colonne Classifica e selezionando i nomi delle colonne
- 22. Ottenere i nomi delle colonne con BCP queryout
- 23. Utilizzo di GetSchemaTable() per recuperare solo i nomi delle colonne
- 24. L'aggiunta di un prefisso per i nomi delle colonne
- 25. SQL: Vista dinamica con i nomi delle colonne in base ai valori delle colonne nella tabella di origine
- 26. inserire dati nella tabella senza specificare i nomi delle colonne
- 27. Come si restituiscono i nomi delle colonne di una tabella?
- 28. Pivot duplicare i nomi delle colonne e ottenere tutti i valori per le colonne
- 29. Ottieni i nomi dei parametri dalla query SQL
- 30. Alias per nomi di colonne in Rails
è possibile avere spazi nei nomi delle colonne con MS SQL!?! –
puoi! Non lo farei, però. – JMP
Sì, è possibile avere spazi o parole riservate come nomi di entità in MSSQL. Hai solo bisogno di [] loro. – BoltBait