Rumah  >  Artikel  >  pangkalan data  >  Ringkasan lanjutan pertanyaan jadual tunggal MySQL

Ringkasan lanjutan pertanyaan jadual tunggal MySQL

WBOY
WBOYke hadapan
2022-12-02 17:23:352141semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang mysql, yang terutamanya memperkenalkan kandungan yang berkaitan tentang pertanyaan jadual tunggal Mari kita lihat bersama-sama.

Ringkasan lanjutan pertanyaan jadual tunggal MySQL

Pembelajaran yang disyorkan: tutorial video mysql

Apabila kami mengendalikan data, pertanyaan sudah pasti penting, pertanyaan Operasi adalah fleksibel dan boleh diubah. Kami boleh mereka bentuk operasi pertanyaan yang cekap mengikut keperluan pembangunan dan memaparkan data yang disimpan dalam pangkalan data kepada pengguna.

查询是数据操作至关重要的一部分,Sebagai contoh, jika anda ingin mencari semua produk dengan harga dalam julat yang ditentukan antara semua produk, jika anda ingin memaparkan data dalam pangkalan data kepada pengguna pada pelanggan, anda biasanya melakukan operasi pertanyaan.

Dalam pembangunan sebenar, kami perlu memutuskan cara membuat pertanyaan berdasarkan keperluan yang berbeza dan mempertimbangkan kecekapan pertanyaan Sebelum mempelajari pertanyaan, anda boleh melihat sintaks lengkap pertanyaan:

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

Menurut kata kunci dalam sintaks lengkap pertanyaan, kami akan mempelajari 基础查询,条件查询,排序查询,分组查询和分页查询。

masing-masing Kami menggunakan kes berikut untuk mempelajari pertanyaan jadual tunggal:

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

Pilih pelaksanaan SQL dalam Navicat:

Ringkasan lanjutan pertanyaan jadual tunggal MySQL

1.1 Sintaks pertanyaan asas.

Pertanyaan berbilang Medan:

Tanya semua medan:

select 字段列表 from 表名;
Alih keluar rekod pendua:

select * from 表名;
Operasi alias:

select distinct 字段列表 from 表名;

1.2 Latihan pertanyaan asas
select 字段名 别名 from 表名;

Kami menggunakan kes dalam kata pengantar untuk latihan pertanyaan asas: Latihan untuk menyoal pelbagai medan:

select name,math from stu;
Aliaskan amalan operasi:

Ringkasan lanjutan pertanyaan jadual tunggal MySQL

select name,english 英语成绩 from stu;

Ringkasan lanjutan pertanyaan jadual tunggal MySQL2

2.1 Sintaks pertanyaan bersyarat

Sintaks umum:

Pertanyaan bersyarat biasanya dilakukan dengan operator Berikut ialah beberapa operator biasa:

select 字段列表 from 表名 where 条件列表;

2.2 Latihan Pertanyaan Bersyarat

运算符 功能描述
> 大于 小于 等于 不等于
between…and… 在这个范围之内
in(…) 多选一
is null / is not null 是null / 不是null
and 或 && 并且
or 或 || 或者
Kami menggunakan kes dalam kata pengantar untuk latihan pertanyaan bersyarat:

Maklumat pertanyaan tentang pelajar yang berumur lebih daripada 20 tahun:

Maklumat pertanyaan tentang pelajar yang umurnya bersamaan dengan 18 tahun, atau umurnya bersamaan dengan 20 tahun, atau umur bersamaan dengan 21 tahun:

select * from stu where age>20;

Ringkasan lanjutan pertanyaan jadual tunggal MySQLPertanyaan Fuzzy menggunakan kata kunci seperti dan kad bebas boleh digunakan untuk perakaunan Digit:

select * from stu where age in(18,20,21);

Ringkasan lanjutan pertanyaan jadual tunggal MySQL_: mewakili satu aksara arbitrari %: mewakili. sebarang bilangan aksara angka

  • Tanya maklumat pelajar yang namanya mengandungi Zhang :

select * from stu where name like '%张%';

3. Isih pertanyaanRingkasan lanjutan pertanyaan jadual tunggal MySQL

3.1 Isih sintaks pertanyaan

Nota: Terdapat dua kaedah pengisihan: ASC menaik dan DESC menurun.

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

3.2 Latihan Isih Pertanyaan

Kami menggunakan kes dalam kata pengantar untuk mengisih latihan pertanyaan:

4 . Fungsi pengagregatan

4.1 Sintaks fungsi pengagregatan

Apakah fungsi agregat? Semasa menjalankan operasi pertanyaan, kita selalunya perlu melakukan operasi pada keseluruhan lajur Contohnya, jika kita boleh mengira purata keseluruhan lajur data prestasi, kita mesti menggunakan fungsi agregat. Berikut ialah fungsi agregat biasa:

一般语法:

select 聚合函数 from 表名;

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

4.2 聚合函数练习

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

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

select count(id) from stu;

Ringkasan lanjutan pertanyaan jadual tunggal MySQL

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

select count(*) from stu;

查询数学成绩的平均分:

select avg(math) from stu;

Ringkasan lanjutan pertanyaan jadual tunggal 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;

Ringkasan lanjutan pertanyaan jadual tunggal MySQL

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

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

Ringkasan lanjutan pertanyaan jadual tunggal 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;

Ringkasan lanjutan pertanyaan jadual tunggal MySQL起始索引 = (当前页码 - 1) * 每页显示的条数

推荐学习:mysql视频教程

Atas ialah kandungan terperinci Ringkasan lanjutan pertanyaan jadual tunggal MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam