ホームページ  >  記事  >  データベース  >  MySQL 単一テーブル クエリの詳細な概要

MySQL 単一テーブル クエリの詳細な概要

WBOY
WBOY転載
2022-12-02 17:23:352155ブラウズ

この記事は、mysql に関する関連知識を提供するもので、主に単一テーブル クエリに関する関連内容を紹介しています。一緒に見ていきましょう。皆様のお役に立てれば幸いです。

MySQL 単一テーブル クエリの詳細な概要

推奨学習: mysql ビデオ チュートリアル

データを操作するとき、クエリは間違いなく重要です。クエリの操作は柔軟であり、開発ニーズに応じて効率的なクエリ操作を設計し、データベースに保存されたデータをユーザーに表示できます。

クエリはデータ操作の重要な部分です。たとえば、すべての製品の中から指定された範囲内の価格を持つすべての製品を検索したい場合は、データをデータベースに保存します。クライアント上 ユーザーに表示される場合、通常、クエリ操作が実行されます。

実際の開発では、さまざまなニーズに基づいてクエリの方法を決定し、クエリの効率を考慮する必要があります。クエリを学習する前に、クエリの完全な構文を確認してください:

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

に基づく クエリの完全な構文のキーワードについては、基本クエリ、条件付きクエリ、並べ替えクエリ、グループ化クエリ、およびページング クエリをそれぞれ学習します。

次のケースを使用して単一テーブル クエリを学習します:

-- 删除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);

Navicat での SQL 実行の選択:

MySQL 単一テーブル クエリの詳細な概要

##1. 基本的なクエリ

1.1 基本的なクエリ構文

複数のフィールドのクエリ:

select 字段列表 from 表名;
すべてのフィールドのクエリ:

select * from 表名;
重複レコードの削除:

select distinct 字段列表 from 表名;
エイリアシング操作:

select 字段名 别名 from 表名;

1.2 基本的なクエリの演習

序文のケースを使用して、基本的なクエリを実行します。演習:

複数フィールドのクエリの演習:

select name,math from stu;

MySQL 単一テーブル クエリの詳細な概要

エイリアス操作の演習:

select name,english 英语成绩 from stu;

MySQL 単一テーブル クエリの詳細な概要

2. 条件付きクエリ

2.1 条件付きクエリの構文

一般的な構文:

select 字段列表 from 表名 where 条件列表;
条件付きクエリは通常、演算子 To と一致します。次に、いくつかの一般的な演算子を示します。

演算子関数の説明> 大なり小なり等しくない…と…の間 #この範囲内 in(…)もう 1 つ選択してくださいnull です / null ではありませんnull です / null ではありませんand or&&andor or||or

##2.2 条件付きクエリの演習条件付きクエリの演習では、序文のケースを使用します。

20 歳以上の学生に関する情報をクエリします:

select * from stu where age>20;

年齢が 18 歳、または年齢が 20 歳、または年齢が 21 歳の学生に関する情報をクエリします:

select * from stu where age in(18,20,21);
MySQL 単一テーブル クエリの詳細な概要# #ファジー クエリは like キーワードを使用し、ワイルドカードをプレースホルダーに使用できます。

MySQL 単一テーブル クエリの詳細な概要__: 単一の任意の文字を表します。

    %: 任意の数の数字を表します
  • 名前に Zhang が含まれる学生の情報をクエリします:
select * from stu where name like '%张%';

MySQL 単一テーブル クエリの詳細な概要##3. 並べ替えクエリ

3.1 クエリ構文の並べ替え

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

注: 並べ替え方法には、昇順 ASC と降順 DESC の 2 つがあります。デフォルトは昇順 ASC です。

3.2 並べ替えクエリの演習

並べ替えクエリの演習では、序文のケースを使用します。

4 . 集計関数

4.1 集計関数の構文

集計関数とは何ですか?クエリ操作を実行するときは、列全体に対して操作を実行する必要があることがよくあります。たとえば、パフォーマンス データの列全体の平均を計算できる場合は、集計関数を使用する必要があります。一般的な集計関数は次のとおりです。

#関数名

Functioncount (列名)統計量 (通常は null ではない列を選択します)max(列名)最大値min(列名)最小値sum(列名)合計 avg(列名)average

一般语法:

select 聚合函数 from 表名;

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

4.2 聚合函数练习

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

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

select count(id) from stu;

MySQL 単一テーブル クエリの詳細な概要

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

select count(*) from stu;

查询数学成绩的平均分:

select avg(math) from stu;

MySQL 単一テーブル クエリの詳細な概要

5. 分组查询

5.1 分组查询语法

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

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

5.2 分组查询练习

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

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

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

MySQL 単一テーブル クエリの詳細な概要

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

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

MySQL 単一テーブル クエリの詳細な概要

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

6. 分页查询

6.1 分页查询语法

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

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

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

5.2 分页查询练习

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

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

select * from stu limit 0,3;

MySQL 単一テーブル クエリの詳細な概要起始索引 = (当前页码 - 1) * 每页显示的条数

推荐学习:mysql视频教程

以上がMySQL 単一テーブル クエリの詳細な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。