Maison > Article > base de données > Série d'apprentissage MySQL 1 : Syntaxe simple
Parce que l'entreprise utilise SQLSERVER et MYSQL et que le nombre de serveurs et de bases de données est relativement important
C'est difficile à gérer pendant la période d'apprentissage de MYSQL, j'ai comparé avec SQLSERVER
La première période concerne principalement l'apprentissage de la syntaxe de base de MYSQL
Différences de syntaxe
1 Par défaut. contraintes
Différences : Il n'est pas nécessaire d'ajouter des parenthèses après le mot clé DEFAULT dans mysql
2. Définir les colonnes à incrémentation automatique
MYSQL doit avoir des colonnes à incrémentation automatique. Pour les colonnes indexées, définissez la valeur de départ à l'arrière du tableau
Définissez la taille du pas de l'auto-incrémentation. colonne d'incrémentation, qui peut être divisée en niveau global et niveau session
S'il s'agit du niveau session, alors lorsque l'utilisateur crée une nouvelle session, la taille du pas revient au niveau global, donc la taille du pas de mysql est très différent de la taille du pas de sqlserver
mysql ne peut pas être défini, c'est la taille du pas au niveau de la table ! !
Le serveur mysql maintient deux types de paramètres système mysql (variables système) : les variables globales et les variables de session.
Leurs significations et différences sont telles qu'indiquées dans leurs noms respectifs. Les variables de session sont au niveau de la session, et leurs modifications n'affecteront que cette session ; les variables globales sont au niveau du système,
Les modifications apportées affecteront toutes les nouvelles sessions (les sessions existantes ne sont pas affectées lorsque la modification est effectuée) jusqu'au prochain redémarrage du serveur MySQL.
Notez que l'impact de sa modification ne peut pas s'étendre sur les redémarrages. Si vous souhaitez utiliser la nouvelle valeur au redémarrage du serveur mysql, vous ne pouvez la spécifier qu'en spécifiant les options de variable sur la ligne de commande ou en modifiant le fichier d'options,
La modification via SET ne peut pas s'étendre sur les redémarrages.
Chaque variable système a une valeur par défaut, qui est déterminée lors de la compilation du système mysql.
Pour spécifier les variables système, vous pouvez généralement spécifier des options sur la ligne de commande au démarrage du serveur ou via le fichier d'options
Bien sûr, la plupart des variables système peuvent être spécifiées lorsque le système est en cours d'exécution , spécifiez sa valeur via la commande set.
Afficher la valeur de départ et la valeur de pas de colonne à incrémentation automatique par défaut actuelle du système
Q : S'il existe une table avec une colonne à incrémentation automatique dont le champ est l'identifiant Ajoutez la clé primaire. Une fois que 10 éléments de données ont été insérés dans la table, supprimez les données avec les ID 8, 9 et 10, redémarrez MySQL et insérez un autre élément de données après
. identifiant de ces données Quelle devrait être la valeur, 8 ou 11 ?
Réponse : Si le type de table est MyISAM, alors il est 11. Si le type de table est InnoDB, l'identifiant est 8.
En effet, les deux types de moteurs de stockage stockent l'enregistrement d'ID maximum de différentes manières. La table MyISAM enregistre l'ID maximum dans le fichier de données, et la valeur d'ID maximum de la clé primaire auto-incrémentée ne le sera pas. être perdu lors du redémarrage de mysql ;
InnoDB enregistre la valeur d'ID maximale en mémoire, donc après le redémarrage de mysql ou l'exécution de l'opération OPTIMIZE sur la table, la valeur d'ID maximale sera perdue.
À propos, il existe quatre méthodes pour MYSQL pour obtenir la valeur d'auto-incrémentation de la table actuelle
1 SELECT MAX(id) FROM person pour une table spécifique
<.>2. SELECT LAST_INSERT_ID() La fonction est pour n'importe quelle table
3. SELECT @@identity est pour n'importe quelle table
@@identity représente la dernière heure à laquelle les données ont été insérées dans une table. avec l'attribut d'identité (c'est-à-dire une colonne à incrémentation automatique). La valeur de la colonne à incrémentation automatique est une variable globale définie par le système.
Généralement, les variables globales définies par le système commencent par @@ et les variables définies par l'utilisateur commencent par @.
La condition préalable à l'utilisation de @@identity est qu'après avoir effectué l'opération d'insertion, la connexion ne soit pas fermée lors de l'exécution de select @@identity, sinon le résultat sera une valeur NULL.
4. AFFICHER LE STATUT DE LA TABLE COMME 'personne'
Si vous ciblez une table spécifique, il est recommandé d'utiliser cette méthode
Dans le résultat, il y a un correspondant Champ Auto_increment d'enregistrement de nom de table, la valeur de l'ID d'incrémentation automatique suivant est l'ID d'incrémentation automatique maximum actuel de la table.
Affichez la définition de la table
SQLSERVER
MYSQL
4. Modifier le nom de la table
Il existe également des différences lors de la modification du nom de la table. . Changez la table emp en emp2
5 Modifiez le type de données du champ
Changez le type int du champ id en bigint<.>
La méthode consiste à définir le "nouveau nom de champ" et "l'ancien nom de champ" dans l'instruction SQL sur le même. nom, et changez uniquement le "type de données"
Changez le type de données, par exemple, dans l'exemple tout à l'heure, changez la colonne id Changez en type de données bigint
8. Supprimer les champs
MYSQL n'a pas besoin d'ajouter le mot-clé COLUMN pour supprimer les champs
9 . Supprimer les contraintes de clé étrangère
Les méthodes de suppression de contraintes dans MYSQL et SQLSERVER sont également très différentes
Dans SQLSERVER, qu'il s'agisse d'une contrainte d'unicité, d'une contrainte de vérification ou d'une contrainte de clé étrangère, vous Vous pouvez utiliser l'instruction SQL suivante Supprimer
Mais dans MYSQL, s'il s'agit d'une contrainte de clé étrangère, vous devez utiliser DROP FOREIGN KEY S'il s'agit d'une contrainte primaire. contrainte de clé, vous devez utiliser DROP PRIMARY KEY, ce qui est un peu gênant
10. Supprimer une table
La syntaxe pour supprimer une table. la table est la même
Mais si vous souhaitez supprimer plusieurs tables en même temps ou porter un jugement avant de supprimer, MYSQL est bien plus pratique
SQLSERVER a besoin d'une table à la fois Jugement, puis supprimez les tables une par une
MYSQL est différent, la syntaxe est très concise : DROP TABLE IF EXISTS emp1, emp2
Résumé
Cet article n'est qu'une brève introduction Jetons un coup d'œil aux différences de syntaxe entre MYSQL et SQLSERVER
J'écrirai plus d'articles sur les différences entre MYSQL et SQLERVER à l'avenir, ainsi que certaines de mes expériences d'utilisation de MYSQL pendant cette période. Veuillez rester à l'écoute o(∩_∩ )o
S'il y a quelque chose qui ne va pas, veuillez commenter o(∩_∩) o
2014-7-16 ajouté
Peu importe le moteur innodb ou la table des moteurs MYISAM, il ne peut y avoir qu'un seul auto-incrémentation colonne, et la colonne à incrémentation automatique doit être une colonne d'index, qu'il s'agisse d'un index secondaire ou d'un index de clé primaire
C'est la même chose que SQLSERVER. Différent, SQLSERVER permet à une table d'avoir plusieurs colonnes à incrémentation automatique , et il n'est pas nécessaire de créer des index sur les colonnes à incrémentation automatique
Ce qui précède est le contenu de MySQL Learning Series 1 : Simple Syntax. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php. .cn) !