Mysql menambah, memadam, mengubah suai rekod pertanyaan

Sebelum menjelaskan pertanyaan, saya telah menyediakan jadual data untuk semua orang. Jadual ini menyimpan baki bank dan maklumat asas tentang pengguna.

Kami menentukan struktur jadual bernama wang.

Pernyataan untuk mencipta jadual adalah seperti berikut:

BUAT JADUAL money (
id INT BUKAN NULL AUTO_INCREMENT,
username VARCHAR(50) NOTA ULL ,
KUNCI UTAMA (balance(10))
) ENJIN = SET KARAKTER InnoDB utf8;province
ageStruktur jadual dan data dipaparkan seperti berikut:
sex
Nota: idbaki merujuk kepada baki
wilayah merujuk kepada wilayah

Pertanyaan asas

Nota: "*" ialah ungkapan biasa, yang bermaksud memadankan segala-galanya Pernyataan pertanyaan di atas adalah bersamaan dengan yang berikut:

mysql> -----------+----------+-----------+-----+-----+
|. id |. baki |. umur | -----+-----+-----
|. 120.02 | 0 |
|. 810 |. 43 |.
| |. 1 |. |. .32 | Beijing |. 1 |
|. ----+------ -----+-----+-----+
12 baris dalam set (0.00 saat)

Nyatakan pertanyaan medan

mysql> pilih id, nama pengguna, baki daripada wang;
+----+----------+--------+
| |. nama pengguna | |.. 260.23 |. 313 |
|. 123 |
|. 456 | |. 34.32 |
| 212 | >12 baris dalam set (0.00 saat)

Pertanyakan satu medan untuk rekod bukan pendua yang berbeza


mysql> pilih deptno umur berbeza daripada wang;
+--- -----+
|.
+-------+
| 40 |
| 43 |
|. 63 |
|. 30 |

|

|.

Pertanyaan bersyarat di mana
类别详细解示
基本语法select distinct 字段 from 表;
示例select distinct age deptno from money;
示例说明查询money表中年龄唯一的所有结果

mysql> pilih * daripada wang di mana umur = 29;
+----+----------+--------+----- -----+-----+-----+
| id wilayah |. ----+---------+--------+-----+-----+
| 120.02 | |. 29 |.
|. 456 |. -- +----------+-----+-----+
2 baris dalam set (0.00 saat)

Syarat yang boleh disambung selepas di mana

Operator perbandingan

Rekod yang memenuhi syarat disenaraikan dalam set keputusan. Dalam contoh di atas, medan selepas di mana ialah '=' medan. Selain itu, anda juga boleh menggunakan operator perbandingan seperti >, <, >=, <=, !=;

符号说明
>大于
<小于
>=大于等于
<=小于等于
!=不等于
=等于
operator logik

Berbilang syarat juga boleh digunakan untuk melakukan pertanyaan bersama berbilang keadaan menggunakan operator logik seperti atau dan dan.

Mari kita lihat contoh berbilang syarat:
符号说明
or或者
and并且

类型详细内容
示例select * from money where id <10 and
说明查询所有字段 要求id小于10 并且province='湖北'
mysql> pilih * daripada wang di mana id <10 dan province='Hubei';
+----+-----------+---------+----------+-----+----- +

|. nama pengguna | +----+-----------+---------+----------+-----+----- +
|. 1 |. 120.02 | +----+-----------+---------+----------+-----+----- +
1 baris dalam set (0.00 saat)


Isih set hasil

Kata kunci yang digunakan untuk mengisih:

关键词说明
asc升序排列,从小到大(默认)
desc降序排列,从大到小

Gunakan tertib mengikut untuk mengisih set hasil selepas pilih, dengan desc dan asc ialah kata kunci dalam susunan isihan. desc bermaksud mengisih mengikut medan dalam tertib menurun, dan asc bermaksud mengisih dalam tertib menaik Jika tiada kata kunci ditulis, lalainya ialah mengisih dalam tertib menaik.

mysql> pilih id, nama pengguna, baki daripada kiriman wang mengikut baki desc;
+----+-----------+-------- -+
|. id |
+----+----------+-------+
| Benshan |.
|. 810 |. . 12 |
|. Liu Yan |.
| 20.15 |
+---------. ---+
12 baris dalam set (0.00 saat)

Isih berbilang medan

urutan mengikut boleh diikuti dengan pelbagai pengisihan medan yang berbeza dan susunan set hasil yang berbeza bagi medan diisih juga berbeza Jika nilai medan diisih adalah sama , maka medan dengan nilai yang sama diisih mengikut medan pengisihan kedua.

* Nota: Jika medan pertama telah menyusun keputusan. Medan isihan medan kedua tidak berkuat kuasa. Dalam kes ini, medan kedua tidak sah. *

mysql> pilih id, nama pengguna, baki daripada pesanan wang mengikut keterangan baki, umur asc;
+----+-----------+---------+
|. id | +----+-----------+---------+
|. 10 |. 3456 | |. 4 |. Jing Boran | |. 8 |. Liu Shishi | |. 6 |. Jackie Chan | |. 2 | |. 12 | |. 3 |. Huang Xiaoming | |. 7 | |. 1 |. Wang Baoqiang | |. 11 |. 34.32 | |. 9 |. Liu Yan | |. 5 |. 20.15 | +----+-----------+---------+
12 baris dalam set (0.00 saat)


Had set keputusan

Untuk pertanyaan atau set hasil diisih, jika anda mahu memaparkan hanya sebahagian daripada semua, gunakan set hasil kata kunci had Sekatan kuantiti.

mysql> pilih * daripada had wang 5;
+----+-----------+--------+------- ----+-----+-----+
| id wilayah |. ---+---------+---------+-----+-----+
| 120.02 | |. 1 |. |. |. 10 | Liaoning |. 1 |
|. 20.15 |. ---+- ----------+-----+-----+
5 baris dalam set (0.00 saat)

Hadkan set keputusan dan isih


mysql> pilih id, nama pengguna, baki daripada kiriman wang mengikut baki had desc 5;

+----+---------+-- ------ -+

| id |

+----+----------+--------+<. 🎜>|. 10 |. 3456 | Bingbing |.
类别详细解示
基本语法select 字段 from 表 order by 字段 关键词 limit 数量
示例select id,username, balance from money order by balance desc limit 5;
示例说明按照钱来排序,显示前五个最有钱的用户
+--- -+-----------+---------+

5 baris dalam set (0.00 saat)

Pemilihan selang set keputusan

Andaikan saya mengambil 3 rekod bermula daripada rekod 0. Saya mahu mengambil 3 lagi rekod bermula dari yang ke-3. Apakah yang perlu saya lakukan jika saya ingin mengambil 4 rekod bermula dari rekod ke-6?

Pada masa ini, anda perlu menggunakan pemilihan selang set hasil.

Nota: Rekod pertama ialah 0.

mysql> pilih id, nama pengguna, baki daripada had wang 0,3;
+----+-----------+---------+
|. id | +----+-----------+---------+
|. 1 |. Wang Baoqiang | |. 2 | |. 3 |. Huang Xiaoming | +----+-----------+---------+
3 baris dalam set (0.00 saat)


Bagaimana pula dengan mengambil tiga baris lagi bermula dari baris ketiga?

mysql> pilih id, nama pengguna, baki daripada had wang 3,3;

+----+-----------+---------+

|. id | +----+-----------+---------+
|. 4 |. Jing Boran | |. 5 |. 20.15 | |. 6 |. Jackie Chan | +----+-----------+---------+

3 baris dalam set (0.00 saat)


Melalui idea di atas, paparan melengkapkan halaman.
Setiap halaman memaparkan 10 rekod, kemudian:

Halaman 1 adalah had 0,10
Halaman 2 adalah had 10,10
Halaman 3 adalah had 20,10

Dan seterusnya... ...


Fungsi statistik digunakan


Bagaimana jika kita ingin mengetahui jumlah pengguna?

Bagaimana untuk menyemak siapa orang terkaya dalam jadual data?

Bagaimana jika kita ingin mengetahui jumlah purata wang untuk pengguna?

Bagaimana jika kita ingin mengetahui jumlah keseluruhan untuk semua pengguna?
  1. Kami mempunyai empat fungsi statistik yang paling biasa digunakan:
  2. Nota: Sudah tentu anda tahu bahawa fungsi mysql lain juga boleh digunakan. Walau bagaimanapun, dalam kerja sebenar, ia jarang digunakan dalam banyak projek besar dan sederhana di syarikat besar, dan mereka semua mempunyai pelayan pengiraan khusus. Oleh kerana jumlah pengiraan MySQL itu sendiri adalah sangat besar, untuk mengurangkan tekanan, kami biasanya menyerahkan tugas pengiraan sebenar kepada pelayan perniagaan atau pelayan lain untuk diselesaikan.

mysql> pilih count(id) daripada wang;
+----------+
|. count(id) |
+----------+
|. 12 |
+----------+
1 baris dalam set (0.00 saat)

Anda juga boleh memberikan medan alias! Gunakan sebagai kata kunci.

mysql> pilih count(id) sebagai zongshu daripada wang;
+---------+
|. zongshu |
+---------+
|. 12 |
+---------+
1 baris dalam set (0.00 saat)

Amaun purata pertanyaan

mysql> pilih purata(baki) daripada wang;
+--------------------+
|. purata(baki) |
+--------------------+
|. 498.24833393096924 |
+--------------------+
1 baris dalam set (0.00 saat)

Jumlah jumlah pertanyaan

mysql> pilih jumlah(baki) daripada wang;
+-------------------+
|. jumlah(baki) |
+-------------------+
|. 5978.980007171631 |
+-------------------+
1 baris dalam set (0.00 saat)

Soal jumlah maksimum

mysql> pilih maks(baki) daripada wang;
+-------------+
|. maks(baki) |
+-------------+
|. 3456 |
+-------------+
1 baris dalam set (0.00 saat)

Soal jumlah minimum

mysql> pilih min(baki) daripada wang;
+--------------------+
|. min(baki) |
+--------------------+
|. 20.149999618530273 |
+--------------------+
1 baris dalam set (0.00 saat)

Kumpulkan kumpulan mengikut

Kami mengumpulkan data mengikut wilayah dalam jadual jumlah yang anda akan dapati selepas mengumpulkan data. Wilayah yang sama akan dialih keluar. Maksudnya, wilayah adalah kumpulan.

类别详细解示
基本语法select * from 表 group by 字段
示例select * from money group by province;
示例说明按照地区进行分组

mysql> pilih * daripada kumpulan wang mengikut wilayah;
+----+-----------+-------+------ -----+-----+-----+
| id wilayah |. ----+---------+----------+-----+-----+
| 123 | 30 |. 12 | 1 |
|. . Liu Yan | |
+----+-----------+----------+-----------+-----+ - ----+

Kumpulan statistik (kategori) jumlah nombor:

mysql> --+----------+
| deptno |
+-------+---------+ <. 🎜>|. 1 |

|. 5 |

|. . . ----+

4 baris dalam set (0.04 saat)


Kira bilangan wilayah dan kemudian paparkannya dalam kumpulan


mysql> wilayah daripada kumpulan wang mengikut wilayah;
+------------------+---------+
|. count(wilayah) | +------------------+---------+
|. 3 | |. 1 1 | |. 3 |. Shandong |
|. 1 1 | |. 1 1 | |. 2 | |. Heilongjiang |
+------------------+---------+

7 baris dalam set (0.00 saat)

Statistik berdasarkan kumpulan


dengan rollup jarang digunakan. Titik pengetahuan ini ditetapkan pada tahap pemahaman.

Fungsi utamanya adalah untuk mengira data terkumpul dan kemudian melakukan jumlah kiraan.

类别详细解示
基本语法select * from 表 group by 字段 with rollup
示例select count(province),province  from money group by province with rollup;
示例说明对分组的数再次进行统计

Berdasarkan statistik di atas, jumlah bilangan dikira Dalam hasil contoh berikut, terdapat tambahan 12 NULL pada penghujungnya.

mysql> pilih count(wilayah),wilayah daripada kumpulan wang mengikut wilayah dengan rollup;
+------------------+---------+
|. count(wilayah) | +------------------+---------+
|. 3 | |. 1 1 | |. 3 |. Shandong |
|. 1 1 | |. 1 1 | |. 2 | |. Heilongjiang |
|. 12 | +------------------+---------+
8 baris dalam set (0.00 saat)


Hasilnya kemudiannya ditapis.

yang mempunyai ialah kumpulan penapisan dan di manakah rekod penapisan.

mysql> pilih kiraan(wilayah) sebagai hasil ,wilayah daripada kumpulan wang mengikut wilayah yang mempunyai hasil >2;
+--------+----------+
|. hasil | +--------+----------+
|. 3 | |. 3 |. Shandong |
+--------+----------+
2 baris dalam set (0.00 saat)

Menggunakan SQL secara keseluruhan

Dalam pernyataan di atas, kami hanya menggunakan pernyataan tertentu secara individu dan tidak pernah menggunakannya secara keseluruhan.

Kami kini akan menyepadukan kenyataan dan menggunakannya bersama sekali. Struktur sintaks yang digunakan dengan pernyataan SQL keseluruhan adalah seperti berikut:

PILIH
[Field 1 [as alias 1], [Fungsi (Field 2),]...Field n]

DARIPADA nama jadual
[WHERE where condition]
[KUMPULAN MENGIKUT medan]
[MEMILIKI mana_sambungan]
[syarat pesanan]
[syarat had]

Nota: [] boleh mewakili pilihan dalam pernyataan di atas.

Sintaks akhir diringkaskan seperti berikut:

Kami melakukan gabungan keseluruhan dan menanya medan jadual wang: id, nama pengguna, baki, wilayah diperlukan id>1 dan bakinya lebih besar daripada 50. Gunakan wilayah untuk pengelompokan. Kami menggunakan ID pengguna untuk pesanan menurun, dan hanya 3 item dibenarkan untuk dipaparkan.
关键词说明
select选择的列
from
where查询的条件
group by分组属性  having 分组过滤的条件
order by排序属性
limit起始记录位置,取记录的条数

Akhirnya tulis pernyataan SQL seperti berikut, dan hasil pertanyaan adalah seperti berikut:

mysql> > 50 kumpulan mengikut wilayah pesanan mengikut id desc had 3;
+----+-----------+---------+----------+

|. id |. baki | +----+-----------+---------+----------+
|. 12 | |. 7 | |. 4 |. 810 | +----+-----------+---------+----------+
3 baris dalam set (0.00 saat)


Meneruskan pembelajaran
||
<?php echo "Hello Mysql"; ?>
  • Cadangan kursus
  • Muat turun perisian kursus