Heim > Datenbank > MySQL-Tutorial > Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

WBOY
Freigeben: 2022-12-02 17:23:35
nach vorne
2208 Leute haben es durchsucht

Dieser Artikel bringt Ihnen relevantes Wissen über MySQL, das hauptsächlich die relevanten Inhalte zur Einzeltabellenabfrage vorstellt. Ich hoffe, es wird für alle hilfreich sein.

Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

Empfohlenes Lernen: MySQL-Video-Tutorial

Wenn wir Daten verarbeiten, sind Abfragevorgänge zweifellos von entscheidender Bedeutung. Wir können die in der Datenbank gespeicherten Daten effizient gestalten an den Benutzer.

Abfrage ist ein entscheidender Teil von Datenoperationen. Wenn Sie beispielsweise unter allen Produkten alle Produkte mit einem Preis innerhalb eines bestimmten Bereichs finden möchten, möchten Sie die Daten in der Datenbank anzeigen Der Benutzer auf dem Client führt im Allgemeinen den Abfragevorgang aus. 查询是数据操作至关重要的一部分,比如说在所有商品中查找出价格在规定范围内的所有商品,要想把数据库中的数据在客户端中展示给用户,一般都进行了查询的操作。

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

SELECT
	字段列表FROM
	表名列表WHERE
	条件列表GROUP BY
	分组字段HAVING
	分组后条件ORDER BY
	排序字段LIMIT
	分页限定
Nach dem Login kopieren

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

In der tatsächlichen Entwicklung müssen wir basierend auf unterschiedlichen Anforderungen entscheiden, wie die Abfrage durchgeführt wird, und die Effizienz der Abfrage berücksichtigen. Bevor Sie die Abfrage lernen, können Sie sich die vollständige Syntax der Abfrage ansehen:

-- 删除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);
Nach dem Login kopieren
Entsprechend den Schlüsselwörtern In der vollständigen Abfragesyntax lernen wir jeweils die Grundabfrage , die bedingte Abfrage, die Sortierabfrage, die Gruppierungsabfrage und die Paging-Abfrage kennen.

Wir verwenden den folgenden Fall, um eine einzelne Tabellenabfrage zu lernen:

select 字段列表 from 表名;
Nach dem Login kopieren
Erweiterte Zusammenfassung der MySQL-EinzeltabellenabfrageSQL-Ausführung in Navicat auswählen:

1. Grundlegende Abfrage

1.1 Grundlegende Abfragesyntax

Mehrere Felder abfragen :

select * from 表名;
Nach dem Login kopieren
Alle Felder abfragen:

select distinct 字段列表 from 表名;
Nach dem Login kopieren
Doppelte Datensätze entfernen:

select 字段名 别名 from 表名;
Nach dem Login kopieren
Alias-Vorgang:
select name,math from stu;
Nach dem Login kopieren

1.2 Grundlegende Abfrageübungen

Wir verwenden die Groß-/Kleinschreibung im Vorwort für grundlegende Abfrageübungen:

Erweiterte Zusammenfassung der MySQL-EinzeltabellenabfrageMehrere Abfragen Feldübungen:

select name,english 英语成绩 from stu;
Nach dem Login kopieren

Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage Aliasoperationsübungen:

select 字段列表 from 表名 where 条件列表;
Nach dem Login kopieren

2. Bedingte Abfrage

2.1 Bedingte Abfragesyntax

Allgemeine Syntax:
select * from stu where age>20;
Nach dem Login kopieren
Bedingte Abfragen werden im Allgemeinen mit Operatoren durchgeführt Im Folgenden sind einige gängige Operatoren aufgeführt: OperatorFunktionsbeschreibung> Größer als kleiner als gleich bis ungleichzwischen… und…innerhalb dieses Bereichsin(…)Wählen Sie eine weitere ausist null / ist nicht nullist Null / Nicht Null Informationen zu Schülern abfragen, die älter als 20 Jahre sind: Informationen zu Schülern abfragen, deren Alter 18 Jahre oder 20 Jahre oder 21 Jahre beträgt:
select * from stu where name like '%张%';
Nach dem Login kopieren
select * from stu where age in(18,20,21);
Nach dem Login kopieren
Fuzzy-Abfrage verwendet das Schlüsselwort „like“ und Platzhalter können als Platzhalter verwendet werden:
_: stellt ein einzelnes beliebiges Zeichen dar

%: stellt eine beliebige Anzahl numerischer Zeichen dar

Fragen Sie Schülerinformationen ab, deren Name Zhang enthält :

select 字段列表 from 表名 order by 排序字段名1 [排序方式]...;
Nach dem Login kopieren

Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

3. SortierungsabfrageErweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

3.1 Sortierungssyntax
    select 聚合函数 from 表名;
    Nach dem Login kopieren
    Nach dem Login kopieren
  • Hinweis: Es gibt zwei Sortiermethoden: aufsteigend ASC und absteigend DESC. Die Standardeinstellung ist aufsteigend ASC.
  • 3.2 Sortierabfrageübung

    Erweiterte Zusammenfassung der MySQL-EinzeltabellenabfrageWir verwenden die Groß-/Kleinschreibung im Vorwort, um eine Sortierabfrageübung durchzuführen:

    4. Aggregationsfunktion

    4.1 Aggregationsfunktionssyntax

    Was ist eine Aggregatfunktion? Bei der Durchführung von Abfragevorgängen müssen wir häufig Vorgänge für eine gesamte Spalte ausführen. Wenn wir beispielsweise den Durchschnitt einer gesamten Spalte mit Leistungsdaten berechnen können, müssen wir eine Aggregatfunktion verwenden. Im Folgenden sind gängige Aggregatfunktionen aufgeführt:

    Funktionsname

    Funktion

    count(Spaltenname)

    Statistische Menge (wählen Sie im Allgemeinen eine Spalte, die nicht null ist)

    max(Spaltenname ) MaximumMinimum
    Min(Spaltenname)
    Summe(Spaltenname) Summe
    Durchschnitt(Spaltenname) Durchschnitt

    一般语法:

    select 聚合函数 from 表名;
    Nach dem Login kopieren
    Nach dem Login kopieren

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

    4.2 聚合函数练习

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

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

    select count(id) from stu;
    Nach dem Login kopieren

    Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

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

    select count(*) from stu;
    Nach dem Login kopieren

    查询数学成绩的平均分:

    select avg(math) from stu;
    Nach dem Login kopieren

    Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

    5. 分组查询

    5.1 分组查询语法

    select 字段列表 from 表名 [where 分组前的条件限定] group by 分组字段名 [having 分组后的条件过滤]
    Nach dem Login kopieren

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

    5.2 分组查询练习

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

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

    select gender, avg(math),count(*) from stu where math > 70 group by gender;
    Nach dem Login kopieren

    Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

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

    select gender, avg(math),count(*) from stu where math > 70 group by gender having count(*) > 2;
    Nach dem Login kopieren

    Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage

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

    6. 分页查询

    6.1 分页查询语法

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

    select 字段列表 from 表名 limit 查询起始索引,查询条目数;
    Nach dem Login kopieren

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

    5.2 分页查询练习

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

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

    select * from stu limit 0,3;
    Nach dem Login kopieren

    Erweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage起始索引 = (当前页码 - 1) * 每页显示的条数

    推荐学习:mysql视频教程

    Das obige ist der detaillierte Inhalt vonErweiterte Zusammenfassung der MySQL-Einzeltabellenabfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

  • Verwandte Etiketten:
    Quelle:csdn.net
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage