Rumah  >  Artikel  >  pangkalan data  >  Analisis contoh penggunaan fungsi MYSQL

Analisis contoh penggunaan fungsi MYSQL

WBOY
WBOYke hadapan
2023-05-31 22:07:041072semak imbas

Fungsi MYSQL

1: Fungsi pengagregatan

Fungsi agregat terutamanya terdiri daripada: count, sum, min, max, avg, group_count()

Fokus pada group_count ( ) , kumpulan pertama mengikut lajur yang ditentukan oleh kumpulan oleh, dan pisahkan ia dengan pembatas, sambungkan nilai dalam kumpulan yang sama dan kembalikan hasil rentetan

Format : group_count([distinct ]Nama medan [susun mengikut medan mengisih asc/desc] [separator 'separator'])

Penerangan:

1: Gunakan berbeza untuk mengecualikan nilai pendua.
2 : Jika anda perlu mengisih nilai hasil, anda boleh menggunakan susunan mengikut klausa
3: pemisah ialah nilai rentetan, lalai ialah koma

2: Fungsi matematik

1:ABS(x) mengembalikan nilai mutlak x
2:CEIL(x) mengembalikan integer terkecil lebih besar daripada atau sama dengan x (dibundarkan ke atas)
3:FLOOR( x) mengembalikan integer terbesar kurang daripada atau sama dengan x ( Bundarkan ke bawah)
4:TERHEBAT(expr1,expr2...) mengembalikan nilai maksimum dalam senarai
5:LEAST(expr1,expr2... .) mengembalikan nilai minimum senarai
6 :MAX(x) Mengembalikan nilai maksimum medan x
7:MIN(x) Mengembalikan nilai minimum medan x
8:MOD(x, y) Mengembalikan baki selepas membahagikan x dengan y
9: PI() mengembalikan pi (3.141593)
10:POW(x,y) mengembalikan x dinaikkan kepada kuasa ke-y
11:RAND() mengembalikan nombor rawak dari 0 hingga 1
12:ROUND(x) mengembalikan integer yang paling hampir dengan nilai, (perbezaan terbesar dari ROUND ialah ia tidak akan dibundarkan)

2: Fungsi rentetan

1: char_length(s) mengembalikan rentetan s Bilangan aksara
2:character_length Mengembalikan bilangan aksara rentetan s

3:concat(s1,s2,s3) Rentetan s1, s2 dan rentetan lain digabungkan menjadi satu rentetan
4:concat_ws( x,s1,s2..) Sama seperti fungsi concat(s1,s2,s3), tetapi x ditambah antara setiap rentetan, x boleh menjadi pemisah
5:field(s,s1,s2) return Kedudukan rentetan pertama s dalam senarai rentetan (s1, s2..)
6:length() mengembalikan bilangan bait utf-8 dalam mysql ialah tiga bait untuk aksara Cina
7:ltrim(s) Keluarkan ruang pada permulaan rentetan s Alih keluar ruang di sebelah kiri () keluarkan ruang pada kedua-dua belah
8: pertengahan(s,n,len) daripada rentetan panjang len pada kedudukan n s adalah sama dengan subrentetan(s,n,len)<.>9:position(s1,in,s) Dapatkan kedudukan permulaan s1 daripada rentetan s
10:replcae (s,s1,s2) Gantikan rentetan s2 dengan rentetan s1 dalam rentetan s
11:reverse( s) Balikkan susunan rentetan s
12:kanan(s,n) Kembalikan aksara N terakhir aksara rentetan s (n aksara diambil dari kanan)
13:strcmp(s1,s2) Membandingkan rentetan s1 dan s2. Jika s1 dan s2 adalah sama, kembalikan 0. Jika s1>s2, kembalikan 1. Jika s1 kurang daripada s2 mengembalikan -1
14:substr(s,start,length) memintas subrentetan panjang dari kedudukan permulaan rentetan s
15:ucase(s) atas(s) menukar rentetan kepada Huruf Besar
16:lcase(s) lower(s) Tukar rentetan kepada huruf kecil


3: Fungsi tarikh

1:unix_timestamp() mengembalikan 1970- 01-01 00:00:00 kepada nilai milisaat semasa

2:unix_timestamp(date_string) Tukar tarikh yang ditentukan kepada cap masa nilai milisaat
3:from_unixtime(bigint unixtime,string-format) Tukar cap masa nilai milisaat Untuk tarikh format yang ditentukan

4:curdate() Kembalikan tarikh semasa
5:current_date() Kembalikan semasa tarikh
6:current_timestamp() Kembalikan tarikh dan masa semasa
7:datediff(d1,d2) Kira bilangan hari antara tarikh d1>d2 cth:datediff('2022-01-01','2022 -02-01')
8:currtime() Kembalikan masa semasa
9:date_format(d, f) Paparkan tarikh d mengikut keperluan ungkapan f


4: Fungsi aliran kawalan

1: if(expr,v1,v2) Jika ungkapan expr adalah benar, Kembalikan hasil v1, jika tidak kembalikan hasil v2

2:ifnull(v1,v2) Jika nilai v1 adalah nol, kembalikan v1, sebaliknya kembalikan v2
3:isnull(expression) Tentukan sama ada ungkapan itu adalah null

4:nullif(expr1,expr2) Bandingkan dua rentetan Jika rentetan expr1 dan expr2 adalah sama, kembalikan nol, jika tidak, kembalikan expr1
5: ungkapan kes apabila keadaan1 maka hasil1 apabila keadaan2 maka keputusan2 yang lain berakhir bermakna permulaan fungsi kes, tamat bermakna Fungsi tamat Jika keadaan1 adalah benar, hasil1 dikembalikan. Jika syarat2 benar, hasil2 dikembalikan Apabila tiada satu pun daripadanya benar, hasilnya akan dikembalikan Apabila salah satu daripadanya benar, selebihnya tidak akan dilaksanakan


5: Fungsi Tetingkap

Fungsi tetingkap baharu dalam mysql8.0 juga dipanggil fungsi tetingkap Bukan agregat adalah relatif kepada fungsi agregat mengembalikan nilai tunggal (iaitu pengelompokan) selepas mengira satu set data. fungsi bukan pengagregatan hanya akan memproses satu baris data pada satu masa Apabila fungsi pengagregatan tetingkap mengira hasil medan tertentu pada rekod baris, data dalam julat tetingkap boleh dimasukkan ke dalam fungsi pengagregatan tanpa mengubah nombor. baris

5.1 Fungsi nombor siri

boleh merealisasikan pengisihan kumpulan dan menambah nombor siri

1: row_number()

2: pangkat()
3: dense_rank()



Writing: pilih id,...,dense_rank() over(partition by dname order by salary desc) as rn from employee;

Nota: Tiada partition dengan cara pengisihan global

Analisis contoh penggunaan fungsi MYSQL

5.2 Fungsi pengedaran

1: percent_rank()
Tujuan: Setiap baris dikira mengikut formula (pangkat-1)/(baris-1) . Antaranya pangkat ialah nombor jujukan yang dijana oleh fungsi pangkat(), baris ialah jumlah bilangan baris dalam tetingkap semasa
2: cume_dist()
Tujuan: bilangan baris dalam kumpulan yang kurang daripada atau sama dengan nilai kedudukan semasa/jumlah bilangan baris dalam kumpulan
Senario aplikasi: Tanya perkadaran yang kurang daripada atau sama dengan gaji semasa

Kaedah penulisan: pilih dname ,ename,gaji,cume_dist() over(order by salary) as rn1,
cume_dist() over(partition by dname order by salary) as rn2 from pekerja;

Analisis contoh penggunaan fungsi MYSQL

5.3 Fungsi sebelum dan selepas

1: lag(expr,n)
2: lead(expr,n)

Tujuan: Kembali expr terletak n baris sebelum (lag(exor,n)) atau n baris selepas (lead(expr,n)) baris semasa Nilai

Senario aplikasi: Soal perbezaan antara skor yang pertama pelajar dan markah pelajar semasa (baris semasa boleh mempunyai nilai medan baris data sebelumnya)

Analisis contoh penggunaan fungsi MYSQL

Analisis contoh penggunaan fungsi MYSQL

5.4 Head dan fungsi ekor

1: first_value(expr)
2: last_value(expr)

Tujuan: Mengembalikan nilai pertama (first_value(expr)) atau expr (last_value(expr)) terakhir
Senario permohonan: Buat masa ini, tanya gaji pekerja pertama dan terakhir diisih mengikut tarikh

Analisis contoh penggunaan fungsi MYSQL

5.5 Fungsi lain

1: nth_value(expr,n)
2: ntile(n)

Tujuan: Mengembalikan nilai expr ke-n dalam tetingkap menjadi ungkapan atau nama lajur
Senario permohonan: Pada gaji semasa, paparkan kedudukan kedua atau ketiga bagi setiap gaji gaji pekerja

Analisis contoh penggunaan fungsi MYSQL

Analisis contoh penggunaan fungsi MYSQL

5.6 Fungsi agregat bertingkap

1: sum()
2: avg()
3: min()
4: max()

Penulisan: pilih id,...,jumlah(gaji) over(partition by dname order by hiredate desc) as rn from employee;

Data setiap baris daripada rn ialah jumlah gaji baris semasa dan setiap baris sebelumnya
Jika tiada susunan mengikut penyata isihan, secara lalai semua data dalam kumpulan akan Laksanakan operasi jumlah pada data

Analisis contoh penggunaan fungsi MYSQL

Atas ialah kandungan terperinci Analisis contoh penggunaan fungsi MYSQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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