Maison >base de données >tutoriel mysql >Série d'apprentissage MySQL 1 : Syntaxe simple

Série d'apprentissage MySQL 1 : Syntaxe simple

黄舟
黄舟original
2016-12-28 17:35:211533parcourir

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

Série dapprentissage MySQL 1 : Syntaxe simple


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

Série dapprentissage MySQL 1 : Syntaxe simple

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

Série dapprentissage MySQL 1 : Syntaxe simpleMYSQL

Série dapprentissage MySQL 1 : Syntaxe simple4. 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<.>



6. Modifier le nom du champ

Lors de la modification du nom du champ dans MYSQL, vous devez ajouter le type de données du champ, sinon un L'erreur sera signalée. CHANGE peut également modifier uniquement le type de données pour obtenir le même effet que MODIFY


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




Modifier le nom du champ



7. Ajouter un champ

La syntaxe pour ajouter des champs est similaire, mais dans MYSQL, vous peut utiliser les mots-clés FIRST et AFTER pour préciser l'emplacement des champs ajoutés



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) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn