Maison >Les sujets >phpmysql >Utilisation de base des instructions DCL et des fonctions d'agrégation MySQL (2)
[Recommandations d'apprentissage associées : tutoriel mysql(vidéo)]
DCL est relativement simple et est principalement utilisé pour accorder ou révoquer des autorisations d'accès à la base de données, ainsi que pour valider et annuler les transactions de la base de données.
Prenons l'octroi d'autorisations comme exemple. Après avoir créé une nouvelle base de données, nous souhaitons accorder à des utilisateurs spécifiques des autorisations d'accès et d'exploitation pour la base de données (généralement dans l'environnement de production, pour des raisons de sécurité, non (la base de données fonctionnera via l'utilisateur root), pour cela, nous devons d'abord créer un utilisateur spécifique, tel que test
Les instructions SQL au niveau du contrôle telles que DCL sont généralement exécutées sur la ligne de commande. . Nous entrons dans le conteneur MySQL Docker, nous nous connectons à la base de données et passons l'instruction CREATE USER
pour créer un nouvel utilisateur test
et définissons le mot de passe sur test
:
Maintenant : mysql.user
Le champ est Host
ce qui signifie %
les utilisateurs peuvent se connecter au serveur MySQL depuis n'importe quel hôte. test
pour accorder le GRANT
droit d'utilisateur test
Toutes les autorisations d'opération de la base de données sont désormais : test
pour actualiser les autorisations, afin de pouvoir voyez-le dans la liste des autorisations de la base de données flush privileges;
Cet utilisateur est : test
, nous pouvons voir uniquement la base de données test
car elle n'a aucune opération sur d'autres bases de données Autorisations : test
sur la ligne de commande : REVOKE
revoke all privideges on test.* from 'test'@'%'; flush privileges;Toutes les autorisations sont utilisées ici, et des autorisations spécifiques peuvent également être spécifiées :
// 授予权限 grant select on test.* to 'user1'@'localhost'; /*给予查询权限*/ grant insert on test.* to 'user1'@'localhost'; /*添加插入权限*/ grant delete on test.* to 'user1'@'localhost'; /*添加删除权限*/ grant update on test.* to 'user1'@'localhost'; /*添加权限*/ // 收回权限 revoke select on test.* from 'jack'@'localhost'; revoke insert on test.* from 'jack'@'localhost'; revoke delete on test.* from 'jack'@'localhost'; revoke update on test.* from 'jack'@'localhost';Commit/rollback de transactionLa transaction de base de données est exécutée comme une seule unité logique de travail. Une série d'opérations (opérations liées à l'ajout, à la suppression, à la modification et à l'interrogation de la base de données, y compris une ou plusieurs instructions SQL), sont soit complètement exécutées, soit non exécutées à tous. Pour une seule instruction SQL, le système de base de données l'exécute automatiquement comme une transaction. Cette transaction est appelée une
transaction implicite.
Pour exécuter manuellement plusieurs instructions SQL en tant que transaction, vous pouvez utiliser pour ouvrir une transaction et BEGIN
pour soumettre une transaction. Ce type de transaction est appelé une COMMIT
transaction explicite. , si une erreur ou une exception se produit lors de l'exécution de la transaction, la transaction peut être annulée via l'instruction . ROLLBACK
, mais après avoir exécuté plusieurs instructions , la transaction n'a pas été soumise via BEGIN
, testez l'exécution de ces instructions SQL, entrez dans le panneau « Parcourir » pour afficher et constatez qu'aucun nouvel enregistrement n'est inséré : COMMIT
après la séquence SQL pour annuler la transaction a le même effet : ROLLBACK
BEGIN; INSERT INTO post (`title`, `content, `created_at`) VALUES ('这是一篇测试文章2', '测试内容哈哈哈', '2020-05-26 13:00:00'); INSERT INTO post (`title`, `content, `created_at`) VALUES ('这是一篇测试文章3', '测试内容哈哈哈', '2020-05-26 13:30:00'); ROLLBACK;Et si vous ajoutez l'instruction
à la fin, la modification peut être soumise avec succès : COMMIT
Ceci est une brève introduction aux instructions SQL courantes et aux démonstrations visuelles dans phpMyAdmin. Pour plus de détails, vous devez l'explorer vous-même dans. en conjonction avec des didacticiels SQL en ligne. Ce n'est pas le cas. L'objet de cette série de didacticiels ne sera pas développé ici.
En plus des requêtes SQL et des instructions d'opération courantes, SQL dispose également de fonctions d'agrégation intégrées pour faciliter des statistiques simples et pratiques sur les résultats lors de l'interrogation de données. Nous introduisons ici plusieurs fonctions courantes : count
, sum
, avg
, max
et min
. La fonction
count
peut être utilisée pour compter le nombre total de résultats de requête. Cette fonction est généralement utilisée lors de l'exécution de requêtes de pagination. Afin de faciliter la visualisation directe des résultats, nous démontrons dans la ligne de commande :
Afin d'améliorer la lisibilité lors de l'interrogation des champs, vous pouvez spécifier des alias de champ via as
, ici La table post
a un total de trois enregistrements, le résultat de la requête est donc 3
.
sum
peut être utilisé pour additionner un champ dans les résultats de la requête statistique, il ne peut donc être utilisé que pour les champs numériques. Ici, nous ajoutons un nouveau champ au post
. tableviews
, utilisée pour stocker le nombre de vues de l'enregistrement d'article correspondant. Dans la structure de la table post
, choisissez d'ajouter un champ après le champ content
et cliquez sur "Exécuter" :
Définissez le nom du champ sur views
, et Définissez son type sur UNSIGNED INT
, qui représente un entier non négatif, et définissez la valeur par défaut sur 0
. L'instruction SQL correspondante peut être visualisée via la fonction d'aperçu :
Cliquez sur « Enregistrer » pour créer ce champ, vous pouvez le voir dans la structure du tableau :
Puisque views
a une valeur par défaut, les valeurs views
de tous les enregistrements sont actuellement Is 0 :
Vous pouvez le définir sur la valeur de simulation correspondante via la fonction "Modifier" :
Ensuite, nous pouvons utiliser la fonction sum
pour additionner les résultats :
avg
peut être utilisé pour compter un certain résultat de requête La valeur moyenne du champ, comme sum
, fonctionne également sur les champs de type numérique. Par exemple, nous pouvons l'utiliser pour compter le nombre moyen de vues de tous les articles :
peut être utilisé pour obtenir la valeur maximale d'un champ numérique dans les résultats de la requête. Par exemple, pour obtenir les informations sur l'article avec le plus grand nombre de vues, vous pouvez. faites ceci : max
et set names utf8mb4;
, afin que le chinois et les Emoji puissent être affichés. normalement. utf8mb4
sous-requête est également utilisé ici, qui consiste à utiliser le résultat d'une requête comme condition d'une autre requête. Ici, nous transmettons le nombre maximum de vues au. parent comme résultat de la sous-requête La requête est utilisée comme condition de requête pour obtenir les informations sur l'article correspondant.
MIN Contrairement à, la fonction max
est utilisée pour obtenir la valeur minimale d'un champ numérique dans les résultats de la requête. Par exemple, pour obtenir les informations sur l'article avec. le plus petit nombre de vues, vous pouvez le faire :min
Pour plus d'articles connexes, veuillez faire attention àphp mysql Chronique !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!