Maison  >  Article  >  base de données  >  Comment interroger une instruction MySQL

Comment interroger une instruction MySQL

coldplay.xixi
coldplay.xixioriginal
2020-12-16 10:30:143450parcourir

Comment interroger une instruction MySQL : lors de l'interrogation d'enregistrements dans une table, le code est [select * from table name which name='long' and age ='18'], ajoutez le nom de la table après from, et suivre où Condition, sélectionner est suivi du champ filtré.

Comment interroger une instruction MySQL

L'environnement d'exploitation de ce tutoriel : Système Windows 7, mysql version 8.0.22 Cette méthode convient à toutes les marques d'ordinateurs.

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo MySQL

Comment interroger les instructions MySQL :

Interroger une table dans MySQL Quand enregistrement

l'ordre d'écriture est  : select * from 表名 where name='long' and age ='18';

mais l'ordre d'exécution dans mysql est

  • par derrière Ajouter le nom de la table pour confirmer dans quelle table vous vous trouvez

  • Où est suivi des conditions pour filtrer le contenu de cette table

  • Sélectionner est suivi de où Certains champs dans les données filtrées * sont tous des champs

  # Le résultat de l'exécution de l'instruction de requête est également une table, qui peut être considérée comme une table virtuelle

Nous créons un tableau des employés emp

Lorsque nous avons beaucoup de champs, la disposition des résultats peut être brouillonne. Nous pouvons ajouter en fin de champ. instruction de requête G pour normaliser les résultats de la requête

select * from 表名\G;

Comment analyser quand on rencontre une exigence Par exemple

1 . Interrogez les données avec un identifiant supérieur ou égal à 3 et inférieur ou égal à 6

Laissez-moi vous montrer l'opération réelle 1. Déterminez d'abord de quelle table elles proviennent emp 2. Filtrez les conditions où id > = 3 et id 546acdf3d0320297ebdb7df19b03e6d2= 3 and id 8c5d28f958e9b9bceafbc2aa9ea1995e= 3 and id 01b6737ed20fb69203425773cf1ea9816; select * from emp where id not between 3 and 6;

6. Interroger les données dont le salaire n'est pas compris entre 20000, 18000, 17000

select * from emp  where  salary not in (20000,17000,18000);
. 7. Recherchez les noms des employés et les noms de poste avec des descriptions de poste vides

Vous ne pouvez utiliser is que lorsque vous jugez null. Vous ne pouvez pas utiliser =

select name ,post from emp where post_comment is null;

MySQL n'est pas sensible à la casse. , vous pouvez utiliser des majuscules et des minuscules

1 groupe par groupe

select * from emp group by post;  # 按照部门分组

Après le regroupement, la plus petite unité doit être le groupe. , plutôt que d'afficher des informations sur les données individuelles au sein du groupe

De cette façon, il les imprimera directement pour vous sans vous donner d'erreur, indiquant que votre

mode strict n'est pas défini

show variables '%mode%'; # 找到严格模式所在的地方set session # 临时有效 set global  # 永久有效set global sql_mode= 'strict_trans_tables' # 设置字符类型的自动截取set global sql_mode="strict_trans_tables,pad_char_to_full_length" #char 取出时 取消自动去空格set global sql_mode='strict_trans_tables,only_full_group_by' # 设置分组后   最小单位是组

此时你如果还使用 select name from emp group by post; 就会报错 #ERROR 1055 (42000): 'day37.emp.name' isn't in GROUP BYselest 后应该接的是 你分组的字段名
2. Les fonctions d'agrégation (max, min,sum,count, moy) sont rassemblées et synthétisées en un seul résultat

Après le regroupement dans MySQL, vous ne pouvez obtenir que les

informations des champs groupés Vous ne pouvez pas obtenir directement les informations des autres champs mais vous pouvez les obtenir indirectement via d'autres méthodes (fonction d'agrégation)

Obtenez

le salaire le plus élevé de chaque département

L'exigence est que chaque département indique qu'il existe des groupes, alors regroupez-le d'abord et utilisez la fonction d'agrégation pour obtenir la valeur

select post ,max(salary) from emp group by post;
Le salaire minimum de chaque département

select post,min(salary)  emp group by post;
 
select post,min(salary) as '最小' from emp group by post;

Chacun Le salaire moyen du département

select post,avg(salary) from emp group by post;
Le salaire total de chaque département

select post,sum(salary) from emp group by post;
Le nombre de personnes dans chaque département

    select post,count(age) from emp group by post;
    select post,count(salary) from emp group by post;
    select post,count(id) from emp group by post;
    select post,count(post_comment) from emp group by post;
Remplissez tous les champs non vides qui peuvent être comptés

Il est recommandé d'utiliser des champs permettant d'identifier de manière unique les données, tels que le champ d'identification. . La fonction d'agrégation fera automatiquement le calcul souhaité sur les données individuelles de chaque groupe sans que vous ayez à y penser

3.group_concat

Requérez les noms des départements après. regroupement et

tous les noms de famille des étudiants sous chaque département

select post, group_concat(name) from emp group by post;

select post,group_concat('hahha',name) from emp group by post;
Peut également être épissé

group_concat()能够拿到分组后每一个数据指定字段(可以是多个)对应的值

 concat就是用来帮你拼接数据

group_concat(分组之后用)

concat(不分组时用)

 查询每个员工的年薪

select name,salary*12 from emp;

相关免费学习推荐:php编程(视频)

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!

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