SQL comparaison de chaînes de caractères, supérieur et inférieur opérateurs
Je suis un débutant dans l'étude de SQL.
Je suis dans le doute au sujet d'une chose.
Aujourd'hui, j'ai regardé quelques exemples de requêtes, et j'ai trouvé quelques comparaisons de chaînes dans la condition where.
La comparaison a été faite en utilisant le supérieur (>) et inférieure (<) symboles, est-ce une façon possible de comparer les chaînes en SQL? et comment faut-il agir? une chaîne de moins qu'un autre vient avant dans l'ordre alphabétique? Par exemple, la balle est moins que de l'eau? et cette comparaison est sensible à la casse? par exemple BOULE < de l'eau, la upcase caractère n'affectent ces comparaisons?
J'ai cherché pendant des heures mais je n'ai pas pu trouver rien qui peut me chasser ces doute.
<>
agit exactement le même que !=
Créer une table , ajouter toutes les lettres de l'alphabet et des chaînes de caractères comme aa , aaa, abc , puis émet des requêtes à l'aide de la commande et vous en apprendrez beaucoup. Cas de la sensibilité dépend du classement que vous avez utilisé, le classement par défaut est insensible à la casse, mais il y a des classements qui sont sensibles à la casse.
sql server est insensible à la casse. la plupart des autres moteurs de base de données ne le sont pas.
OriginalL'auteur user3575921 | 2014-09-27
Vous devez vous connecter pour publier un commentaire.
Les opérateurs de comparaison (y compris
<
et>
) "travail" avec les valeurs de chaîne ainsi que des chiffres.Pour MySQL
Comparaisons de chaînes sera sensible à la casse lors de la characterset classement des chaînes de caractères comparaison est sensible à la casse, c'est à dire le nom du jeu de caractères se termine dans
_cs
plutôt que_ci
. Il n'y a pas vraiment d'intérêt à répéter toutes les informations disponibles dans le Manuel de Référence de MySQL ici.MySQL Opérateurs De Comparaison De Référence:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html
Plus d'informations à propos de MySQL charactersets/classements:
http://dev.mysql.com/doc/refman/5.5/en/charset.html
Les réponses aux questions que vous avez posées:
Q: est-ce une façon possible de comparer les chaînes en SQL?
Un: Oui, dans les deux bases de données MySQL et SQL Server
Q: et comment faut-il agir?
Un: Un opérateur de comparaison renvoie une valeur booléenne, TRUE, FALSE ou NULL.
Q: une chaîne de moins qu'un autre vient avant dans l'ordre alphabétique? Par exemple, la balle est moins que de l'eau?
Un: Oui, parce que " b "vient avant" w " dans le characteset classement, l'expression
retournera TRUE. (Cela dépend de la characterset et sur la classement.
Q: et cette comparaison est sensible à la casse?
Un: Si une comparaison est sensible à la casse ou non dépend du serveur de base de données; par défaut, SQL Server et MySQL sont insensibles à la casse.
Dans MySQL il est possible de faire des comparaisons de chaînes en spécifiant un characterset classement qui est sensible à la casse (le characterset nom prendra fin en _cs plutôt que _ci)
Q: Par exemple BOULE < de l'eau, le caractère majuscule n'affectent ces comparaisons?
Un: Par défaut, SQL Server et MySQL, l'expression
serait return TRUE.
OriginalL'auteur spencer7593
Dans Microsoft SQL Server, classement détermine dictionnaire des règles de comparaison et de tri des données de caractère en ce qui concerne:
SQL Server comprend également les classements binaires où la comparaison et de tri est effectué par le code binaire point plutôt que les règles du dictionnaire. Une fois pouvez choisir parmi de nombreux classements en fonction de la sensibilité souhaitée comportement. Le classement par défaut sélectionné pour l'amérique latine basée sur les paramètres régionaux de langue pendant l'installation de SQL est insensible à la casse et les accents.
Classement est spécifié à l'instance (en cours d'installation), base de données, et au niveau des colonnes. Exemple de classement détermine le classement du niveau de l'Instance des objets comme des connexions de base de données et les noms ainsi que les identificateurs de variables, de GOTO étiquettes et les tables temporaires. Classement de base de données (le même que l'instance de classement par défaut), détermine le classement de la base de données des identifiants comme la table et les noms de colonne ainsi que les expressions littérales. Classement de la colonne (de même que le classement de base de données par défaut) détermine le classement de cette colonne.
Il est certainement possible de comparer les chaînes à l'aide de '<', '>', '<>', ,COMME, ENTRE, etc.
OriginalL'auteur Dan Guzman