Berbagi teknologi

Manajemen basis data DBA

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

gabungan batin

Gabungkan beberapa tabel menjadi tabel sementara melalui tautan

pilih nama header dari nama tabel 1 nama tabel gabung dalam 2;

pilih * dari karyawan gabung dalam departemen

pilih nama header dari nama tabel 1 inner join nama tabel 2 pada kondisi link;

pilih * dari karyawan gabung dalam departemen pada karyawan.dept_id = departemen.dept_id;
Di tabel baru sementara, Anda dapat melakukan pemrosesan berikut

pilih nama header dari nama tabel 1 gabung dalam nama tabel 2 pada kondisi tautan [dimana |. diurutkan berdasarkan |.

Tautan setara: Premisnya adalah ada header yang menyimpan data yang sama di tautan

pilih * dari karyawan gabung dalam departemen pada karyawan.dept_id = departemen.dept_id;

Setelah mendefinisikan alias, Anda harus menggunakan alias untuk mewakili nama tabel

  1. pilih e.*, d.nama_departemen
  2. dari karyawan sebagai e gabung dalam departemen sebagai d pada e.dept_id=d.dept_id;

Query total gaji setiap karyawan pada tahun 2018

select name ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by name;

select salary.employee_id ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id  where year(date)=2018 group by employee_id having total > 300000 order by total desc ,employee_id asc;查询2018年总工资大于30万的员工,按2018年总工资降序排列

Tautan tidak setara: Tidak ada header yang menyimpan data yang sama di tabel

pilih employee_id, basic,garde dari gaji gabung dalam wage_grade pada gaji. basic antara wage_grade.low dan wage_grade.high di mana tahun(tanggal)=2018 dan bulan(tanggal)=12;
Query gaji pokok karyawan bulan Desember 2018

pilih garde sebagai level,hitung(employee_id) sebagai jumlah total orang dari gaji dalam, gabung upah_tingkat pada gaji.dasar antara upah_grade.rendah dan upah_grade.tinggi di mana tahun(tanggal)=2018 dan bulan(tanggal)=12 kelompokkan berdasarkan kueri garde; 2018 Jumlah pegawai pada tingkat gaji pokok bulan Desember

Contoh penggabungan 3 tabel

pilih nama ,dasar ,garde dari karyawan gabung dalam gaji pada karyawan.id_karyawan = gaji.id_karyawan gabung dalam tingkatan_upah pada gaji.dasar antara tingkatan_upah.rendah dan tingkatan_upah.tinggi di mana tahun(tanggal)=2018 dan bulan(tanggal)=12;

Permintaan tautan eksternal

Tautan eksternal membandingkan perbedaan antara dua tabel

Tautan kiri menggunakan data di tabel kiri dan data di tabel kanan untuk membandingkan. Hasil output menunjukkan semua data di header tabel kiri.

Hanya baris yang cocok dengan tautan yang ditampilkan di sebelah kanan

pilih nama header dari nama tabel 1 kiri nama tabel jion 2 pada kondisi link;

pilih nama header dari nama tabel 1 nama tabel jion kiri 2 pada kondisi tautan·[dimana |kelompokkan berdasarkan|.urutan berdasarkan |.

pilih dept_name, nama dari departemen yang tersisa gabungkan karyawan pada departments.dept_id=employees.dept_id di mana nama adalah null;
 

Tautan kanan menggunakan data di tabel kanan dan data di tabel kiri untuk membandingkan, dan semua data di header tabel kanan dari hasil keluaran ditampilkan.

Hanya baris yang cocok dengan tautan yang ditampilkan di sebelah kanan

pilih nama header dari nama tabel 1 nama tabel jion kanan 2 pada kondisi tautan·[dimana |kelompokkan berdasarkan|.urutan berdasarkan |.

mysql> pilih nama_dept,nama dari departemen sebagai d gabung kanan karyawan sebagai e pada d.dept_id=e.dept_id di mana nama_dept adalah null;

perbarui karyawan set dept_id=11 di mana nama="bob";

Permintaan tautan lengkap

Gabungkan baris-baris yang dikueri dengan beberapa perintah pemilihan. Untuk beberapa kueri pemilihan, jumlah header tabel harus konsisten.

Output dari garis duplikat dihapus

mysql> (pilih tanggal, maks (dasar) sebagai gaji dari gaji di mana tanggal = 20180110) union (pilih tanggal, min (dasar) dari gaji di mana tanggal = 20180110);

(pilih perintah kueri) gabungan (pilih perintah kueri);

Output tanpa deduplikasi

pilih perintah kueri) gabungkan semua (pilih perintah kueri);

Kueri bersarang

perintah pilih kueri berisi perintah kueri pilih

Pengelompokan kueri bersarang setelah di mana

pilih nama header dari perpustakaan.tabel di mana simbol penilaian nama header (pilih perintah kueri)

pilih id_karyawan, tanggal, pokok, bonus dari gaji di mana tahun(tanggal)=2018 dan bulan(tanggal)=12 dan pokok > (pilih pokok dari gaji di mana tahun(tanggal)=2018 dan bulan(tanggal)=12 dan id_karyawan=100);


Setelah kueri bersarang, gunakan hasil kueri di () sebagai kondisi filter,

pilih nama header dari perpustakaan.tabel yang memiliki simbol penilaian nama header (pilih perintah kueri)

pilih dept_id, hitung (nama) sebagai total dari grup karyawan menurut dept_id

memiliki total < (

pilih hitung(nama) dari karyawan di mana dept_id=(

pilih dept_id dari departemen di mana dept_name='Departemen Pengembangan')

Sarang kueri setelah dari dan gunakan hasil kueri () sebagai tabel

pilih nama header dari (pilih hasil kueri) sebagai nama tabel sementara di mana kondisi filter;

pilih employee_id, nama, email, nama_departemen dari (pilih d.nama_departemen, e.* dari departemen sebagai d gabungkan karyawan sebagai e pada d.dept_id=e.dept_id) sebagai tmp_table di mana dept_id=3;

Kueri bersarang setelah pemilihan

pilih nama header, (pilih perintah kueri) sebagai nama header dari perpustakaan.tabel di mana kondisi filter;

pilih d.*, (pilih hitung (nama) dari karyawan sebagai e di mana d.dept_id = e.dept_id) sebagai vumen dari departemen sebagai d;