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

Résumé avancé de la requête MySQL à table unique

WBOY
Libérer: 2022-12-02 17:23:35
avant
2152 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur mysql, qui présente principalement le contenu pertinent sur les requêtes à table unique. Examinons-le ensemble, j'espère qu'il sera utile à tout le monde.

Résumé avancé de la requête MySQL à table unique

Apprentissage recommandé : Tutoriel vidéo mysql

Lorsque nous exploitons des données, les opérations de requête sont sans aucun doute cruciales. Nous pouvons concevoir des opérations de requête efficaces en fonction des besoins de développement. à l'utilisateur.

La requête est une partie cruciale des opérations de données. Par exemple, si vous souhaitez trouver tous les produits dont le prix se situe dans une fourchette spécifiée parmi tous les produits, vous souhaitez afficher les données dans la base de données pour l'utilisateur sur le client, généralement l'opération de requête est effectuée. 查询是数据操作至关重要的一部分,比如说在所有商品中查找出价格在规定范围内的所有商品,要想把数据库中的数据在客户端中展示给用户,一般都进行了查询的操作。

在实际开发中,我们要根据不同的需求,并且考虑查询的效率来决定怎样进行查询,学习查询前,可以先看看查询的完整语法:

SELECT
	字段列表FROM
	表名列表WHERE
	条件列表GROUP BY
	分组字段HAVING
	分组后条件ORDER BY
	排序字段LIMIT
	分页限定
Copier après la connexion

根据查询的完整语法中的关键字,我们分别来学习基础查询,条件查询,排序查询,分组查询和分页查询。

Dans le développement réel, nous devons décider comment interroger en fonction de différents besoins et considérer l'efficacité de la requête. Avant d'apprendre la requête, vous pouvez jeter un œil à la syntaxe complète de la requête :

-- 删除stu表
drop table if exists stu;
-- 创建stu表
CREATE TABLE stu (
id int, -- 编号
name varchar(10), -- 姓名
age int, -- 年龄
gender varchar(5), -- 性别
math double(5,2), -- 数学成绩
english double(5,2) -- 英语成绩

);
-- 添加数据
INSERT INTO stu(id,name,age,gender,math,english)
VALUES
(1,'小张',23,'男',66,78),
(2,'小李',20,'女',98,87),
(3,'小陈',55,'男',56,77),
(4,'小樊',20,'女',76,65),
(5,'小马',20,'男',86,NULL),
(6,'小赵',57,'男',99,99);
Copier après la connexion
Selon les mots-clés. dans la syntaxe complète de la requête, nous apprendrons respectivement la requête de base , la requête conditionnelle, la requête de tri, la requête de regroupement et la requête de pagination.

Nous utilisons le cas suivant pour apprendre les requêtes à table unique :

select 字段列表 from 表名;
Copier après la connexion
Résumé avancé de la requête MySQL à table uniqueSélectionnez l'exécution SQL dans Navicat :

1. Requête de base

1.1 Syntaxe de requête de base

Interrogez plusieurs champs. :

select * from 表名;
Copier après la connexion
Interroger tous les champs :

select distinct 字段列表 from 表名;
Copier après la connexion
Supprimer les enregistrements en double :

select 字段名 别名 from 表名;
Copier après la connexion
Opération d'alias :
select name,math from stu;
Copier après la connexion

1.2 Exercices de requête de base

Nous utilisons le cas dans la préface pour les exercices de requête de base :

Résumé avancé de la requête MySQL à table uniqueRequête multiple Exercices sur le terrain :

select name,english 英语成绩 from stu;
Copier après la connexion

Résumé avancé de la requête MySQL à table unique Exercices sur les opérations d'alias :

select 字段列表 from 表名 where 条件列表;
Copier après la connexion

2. Requête conditionnelle

2.1 Syntaxe de requête conditionnelle

Syntaxe générale :
select * from stu where age>20;
Copier après la connexion
Que conditionnelle Les opérations sont généralement réalisées avec des opérateurs , les Voici plusieurs opérateurs courants : OpérateurDescription de la fonction> Supérieur à inférieur à égal à différent deentre… et…dans cette plagedans(…)Choisissez-en un de plusest nul / n'est pas nulest null / Not nullet ou &&etou ou ||ou

2.2 Exercice de requête conditionnelle

Nous utilisons le cas dans la préface pour l'exercice de requête conditionnelle :

Résumé avancé de la requête MySQL à table uniqueRechercher des informations sur les étudiants âgés de plus de 20 ans :

select * from stu where age in(18,20,21);
Copier après la connexion

Résumé avancé de la requête MySQL à table unique Rechercher des informations sur les étudiants dont l'âge est égal à 18 ans, ou l'âge est égal à 20 ans, ou l'âge est égal à 21 ans :

select * from stu where name like '%张%';
Copier après la connexion

    La requête floue utilise le mot-clé like, et les caractères génériques peuvent être utilisés comme espaces réservés :
  • _ : représente un seul caractère arbitraire

% : représente n'importe quel nombre de caractères numériques

Résumé avancé de la requête MySQL à table unique Interroge les informations sur l'élève dont le nom contient Zhang :

select 字段列表 from 表名 order by 排序字段名1 [排序方式]...;
Copier après la connexion

3. Requête de tri

3.1 Syntaxe de requête de tri

select 聚合函数 from 表名;
Copier après la connexion
Copier après la connexion

Remarque : Il existe deux méthodes de tri : ASC ascendant et DESC décroissant.

3.2 Exercice de requête de tri

Nous utilisons le cas dans la préface pour faire l'exercice de requête de tri :

4. Fonction d'agrégation

4.1 Syntaxe de la fonction d'agrégation Qu'est-ce qu'une fonction d'agrégation ? Lors de l'exécution d'opérations de requête, nous devons souvent effectuer des opérations sur une colonne entière. Par exemple, si nous pouvons calculer la moyenne d'une colonne entière de données de performances, nous devons utiliser une fonction d'agrégation. Voici les fonctions d'agrégation courantes : Nom de la fonctionFonctioncount(nom de la colonne)Quantité statistique (choisissez généralement une colonne qui n'est pas nulle)max(nom de la colonne ) Valeur maximalemin(nom de la colonne)Valeur minimalesomme(nom de la colonne)Sommeavg(nom de la colonne)moyenne
🎜🎜🎜

一般语法:

select 聚合函数 from 表名;
Copier après la connexion
Copier après la connexion

注:NULL值不参与聚合函数运算。

4.2 聚合函数练习

我们使用前言中的案例进行聚合函数的练习:

统计该表中一共有几个学生:

select count(id) from stu;
Copier après la connexion

Résumé avancé de la requête MySQL à table unique

上面我们使用某一字段进行运算,这样做可能面临的问题是某一个值可能是NULL,所以我们一般使用 * 进行运算,因为一行中不可能所有的字段都是NULL。

select count(*) from stu;
Copier après la connexion

查询数学成绩的平均分:

select avg(math) from stu;
Copier après la connexion

Résumé avancé de la requête MySQL à table unique

5. 分组查询

5.1 分组查询语法

select 字段列表 from 表名 [where 分组前的条件限定] group by 分组字段名 [having 分组后的条件过滤]
Copier après la connexion

注:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义。

5.2 分组查询练习

我们使用前言中的案例进行分组查询练习:

查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组:

select gender, avg(math),count(*) from stu where math > 70 group by gender;
Copier après la connexion

Résumé avancé de la requête MySQL à table unique

查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的:

select gender, avg(math),count(*) from stu where math > 70 group by gender having count(*) > 2;
Copier après la connexion

Résumé avancé de la requête MySQL à table unique

注:where 和 having 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。所以,where 不能对聚合函数进行判断,having 可以。

6. 分页查询

6.1 分页查询语法

在大家的印象中,网页在展示大量的数据时,往往不是把数据一下全部展示出来,也是用分页展示的形式,其实就是对数据进行分页查询的操作,即每次只查询一页的数据展示到页面上。

select 字段列表 from 表名 limit 查询起始索引,查询条目数;
Copier après la connexion

limit 关键字中,查询起始索引这个参数是从0开始的。

5.2 分页查询练习

我们使用前言中的案例进行分页查询练习:

从0开始查询,查询3条数据:

select * from stu limit 0,3;
Copier après la connexion

Résumé avancé de la requête MySQL à table unique起始索引 = (当前页码 - 1) * 每页显示的条数

推荐学习:mysql视频教程

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:csdn.net
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