Maison > base de données > tutoriel mysql > le corps du texte

Comment interroger une instruction MySQL

coldplay.xixi
Libérer: 2020-12-17 10:27:27
original
3476 Les gens l'ont consulté

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;
Copier après la connexion

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 <=6; 3.select *

   select * from emp where id >= 3 and id <= 6;
    select * from emp where id between 3 and 6;  between 等价于id >= 3 and id <= 6
Copier après la connexion

2 Interrogez les données dont le salaire est de 20000 ou 18000 ou 17000

    select id,name from emp where salary = 20000 or salary = 18000 or salary = 17000;
    select id,name from emp where salary in (20000,18000,17000);
Copier après la connexion

3. les noms contiennent la lettre o

Fuzzy match % correspond à plusieurs caractères arbitraires _ correspond à n'importe quel caractère arbitraire

select name,salary from emp where name like &#39;%o%&#39;;
Copier après la connexion

4. Interrogez le nom de l'employé composé de quatre caractères et son salaire <. 🎜>

select name, salary from emp where length(name) =4;
select name ,salary from emp where name like "____"
Copier après la connexion

5. Interroger les données avec un ID inférieur à 3 ou supérieur à 6

select * from emp where id<3 or id >6;
select * from emp where id not between 3 and 6;
Copier après la connexion

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);
Copier après la connexion

. 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;
Copier après la connexion

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;  # 按照部门分组
Copier après la connexion

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 &#39;%mode%&#39;; # 找到严格模式所在的地方set session # 临时有效 set global  # 永久有效set global sql_mode= &#39;strict_trans_tables&#39; # 设置字符类型的自动截取set global sql_mode="strict_trans_tables,pad_char_to_full_length" #char 取出时 取消自动去空格set global sql_mode=&#39;strict_trans_tables,only_full_group_by&#39; # 设置分组后   最小单位是组
Copier après la connexion

此时你如果还使用 select name from emp group by post; 就会报错 #ERROR 1055 (42000): &#39;day37.emp.name&#39; isn&#39;t in GROUP BYselest 后应该接的是 你分组的字段名
Copier après la connexion

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;
Copier après la connexion

Le salaire minimum de chaque département

select post,min(salary)  emp group by post;
 
select post,min(salary) as &#39;最小&#39; from emp group by post;
Copier après la connexion

Chacun Le salaire moyen du département

select post,avg(salary) from emp group by post;
Copier après la connexion

Le salaire total de chaque département

select post,sum(salary) from emp group by post;
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

select post,group_concat(&#39;hahha&#39;,name) from emp group by post;
Copier après la connexion
Peut également être épissé

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

concat就是用来帮你拼接数据

group_concat(分组之后用)

concat(不分组时用)

查询每个员工的年薪

select name,salary*12 from emp;
Copier après la connexion

相关免费学习推荐: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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal