La Structured Query Language ( SQL ) utilizzato per la programmazione di database del computer , gestisce stringhe di caratteri come la maggior parte dei linguaggi di programmazione fanno. Variabili stringa di caratteri e letterali contenere testo, ad esempio "Mario Rossi" o " 500 Main Street. " SQL ha delle regole che disciplinano la comparazione di stringhe diseguali , i risultati delle quali sono a volte inaspettati . Alcuni confronti tra stringhe diseguali come tra "abc " e "xyz", sono evidenti , mentre altre richiedono lo studio delle regole di SQL. Sensibilità
software Caso di Microsoft SQL Server non è case-sensitive per i confronti tra stringhe . Questo significa che esso tratta le stringhe " John Doe " e " John Doe ", come uguali. Molte volte un programmatore prenderà in considerazione questo una buona cosa , perché lei non ha bisogno di scrivere codice aggiuntivo per forzare entrambe le stringhe di caratteri maiuscoli . In alcuni casi, tuttavia , vuole confronti tra stringhe caso - sensibili. D'altra parte , il software di database Oracle è case-sensitive in modo " John Doe " non corrisponde a " John Doe ". Un programmatore voler eliminare maiuscole e minuscole userebbe una funzione come UPPER ( ) su entrambe le corde , costringendo tutti i caratteri in maiuscolo .
lunghezza stringa
variabili carattere
contenenti stringhe trasversali confrontano inegualmente , anche se si comincia con gli stessi personaggi . Ad esempio, " 500 Main " e " 500 Main Street" non sono uguali. Variabili carattere definiti per le diverse lunghezze , ma che hanno lo stesso contenuto si confronteranno ugualmente . Se un campo descrittivo ha una lunghezza fissa di 50 e un altro ha una lunghezza di 30 saranno uguali se entrambi contengono il testo " Scarpe da corsa Blu ".
Tipo
È possibile definire i campi di stringhe di caratteri SQL come CHAR , VARCHAR , NCHAR o tipo nvarchar. CHAR e NCHAR hanno fissato dimensioni , VARCHAR e nvarchar hanno dimensioni che variano fino al massimo specificato nella definizione del campo. Il tipo di campo non influisce confronti di stringhe , se hanno gli stessi contenuti saranno risultano uguali . Non si può paragonare direttamente un campo di tipo testo con un altro campo di stringa di caratteri ; bandiere SQL questo come un errore
Blanks
Per le stringhe di caratteri di SQL Server può avere il testo con qualsiasi . combinazione di iniziali, finali o incorporato spazi. Due stringhe aventi contenuto analogo , ma dove uno ha degli spazi alla confronteranno pari , ad esempio , "abc" e "abc ". Tuttavia, SQL considera le stringhe con spazi vuoti come "abc" e " abc" diseguale . Stringhe con spazi vuoti come "abc" e " una bc " allo stesso modo non sono uguali .