Selasa, 31 Januari 2012

Belajar bahasa SQL

Mengenal Query
1. Menampilkan semua kolom semua baris

    Select *
    from nama_tabel;
   
        contoh:
    select *
    from data_pegawai;
   
    atau   

    select nama_kolom1, nama_kolom2,kolom...
    from nama_tabel;
   
    contoh:
    select nip,nama,jk,kota,bagian
    from data_pegawai;

2. Menampilkan Kolom tertentu

    contoh:
    select nip,bagian
    from data_pegawai;

3. Menampilkan baris tertentu

    contoh:
    select *
    from data_pegawai
    where jk='P';

4. Operator is null: semua operator tidak dapat dibandingkan
   dengan nilai null

    select nama
    from data_pegawai
    where kota=null;

    seharusnya
    select nama
    from data_pegawai
    where kota is null;

5. literal
    'MySQL' == "MySQL"
   
    Jika ingin menuliskan Jum'at maka cara menuliskannya adalah:
    "Jum'at"     atau     'Jum\'at'    atau    "Jum\'at"

6. Ekspresi: segala sesuatu yang menggunakan operator
    matematika dan menghasilkan nilai

    contoh:
    select nip,gaji,tunjangan,gaji+tunjangan
    from data_gaji;

7. Operator relasional: digunakan untuk membAndingkan 2 nilai

    contoh:
    select nama,gaji
    from data_gaji
    where gaji>1000000;

    contoh:
    select nip,nama
    from data_gaji
    where nama<'D';

8. Operator boolean : OR, AND, XOR, NOT
   
    OR:untuk melakukan query dengan kondisi majemuk

        contoh:    
        select *
        from data_pegawai
        where jk='P' or nama='Mahessa Wicaksana';

    AND
       
        contoh:
        select *
        from data_pegawai
        where jk='P' and nama='Dinar Puspitasari';

    NOT: pembalikan nilai benar

        contoh:
        select *
        from data_pegawai
        where not jk='P';

 9. Memperoleh data yang unik
    contoh:
    select distinct jk
    from data_pegawai;

    contoh:
    select distinct kota
    from data_pegawai
    where kota is not null;

10. Operator between: untuk operator jangkauan

    contoh:
    select *
    from data_gaji
    where gaji between 1000000 and 2000000

    contoh tanpa between:
    select *
    from data_gaji
    where gaji >= 1000000 and gaji <=2000000
   
    contoh:
    select *
    from data_pegawai
    where nama not between 'D' and 'J';
    
11. Operator IN: pencocokan dengan salah satu yang ada
    pada daftar

    contoh tanpa IN:
   
    select *
    from data_pegawai
    where nip='n1000' or nip='n1009' or nip='n1013';   

    contoh dengan IN:

    select *
    from data_pegawai
    where nip IN ('n1000','n1009','n1013');   

    contoh dengan NOT IN:
   
    select *
    from data_pegawai
    where not nip IN ('n1000','n1009','n1013');   

12.Operator LIKE: untuk mencari data semacam siapa saja yang
    namanya mengandung kata ana dan sebagainya.
   
    contoh:
    select nama
    from data_pegawai;
    where nama like '%sa%';

13. Pengurutan data
    contoh:
    select jk,nama
    from data_pegawai
    order by jk;

    contoh beberapa kolom:
    select jk,nama
    from data_pegawai
    order by jk,nama;

    contoh beberapa kolom secara descending:
    select jk,nama
    from data_pegawai
    order by jk desc,nama desc;

    contoh pengurutan menurut nomor kolom:
    select jk,nama
    from data_pegawai
    order by 2 desc;

14. Pengelompokan data

    contoh:
    select kota
    from data_pegawai
    group by kota;

    contoh:
    select kota
    from data_pegawai
    where kota is not null
    group by kota;
   
15. Klausa Having : menentukan kondisi bagi group by
   
    contoh:
    select kota
    from data_pegawai
    where kota is not null
    group by kota
    having kota <> 'malang';

    contoh alternatif tanpa having:
    select kota
    from data_pegawai
    where kota is not null and kota <> 'malang'
    group by kota;

16. Fungsi Agregat (fungsi grup atau fungsi ringkasan): fungsi yang disediakan
    untuk menghasilkan sebuah nilai berdasarkan sejumlah data.

    Fungsi AVG
    contoh AVG dan distinct AVG:

        select avg(gaji)
        from data_gaji;
       
        select avg(distinct gaji)
        from data_gaji;

    contoh menghitung gaji rata-rata pegawai per bagian:
       
        select kode_bagian, gaji
        from data_gaji
        group by kode_bagian;

    contoh menghitung rata-rata gaji bagian HRD:
        select avg(gaji)
        from data_gaji
        group by kode_bagian
        having kode_bagian='1';

        alternatif lain:

        select avg(gaji)
        from data_gaji
        where kode_bagian='1';


        where
        group by
        aggregate avg
        having

     1. Tampilkan rata-rata gaji per bagian yang
    gajinya >1000000


        select bagian, avg(gaji)       
        from gaji
        where gaji>1000000
        group by bagian;

        select bagian, avg(gaji)       
        from gaji
        group by bagian
        having avg(gaji)>1000000;
   

    Tampilkan rata-rata gaji per bagian untuk bagian 1 dan 3
       
        select bagian, avg(gaji)       
        from gaji
        group by bagian
        having bagian <> 2;

        select bagian, avg(gaji)       
        from gaji
        where bagian ='1' or bagian ='3'
        group by bagian;
       
       

    Tampilkan rata-rata gaji per bagian yang rata-ratanya
    antara 1000000 dan 2000000
       
        select bagian, avg(gaji)       
        from gaji
        group by bagian
        having avg(gaji) between 1000000 and 2000000;


    Fungsi COUNT()
    contoh:
        select count(nama)   
        from data_pegawai;

    contoh menghitung jumlah pegawai per bagian

        select kode_bagian, count (kode_bagian)
        from data_pegawai
        group by kode_bagian
   
    contoh menghitung jumlah pegawai per bagian khusus untuk yang
    jumlahnya lebih dari 1:

        select kode_bagian, count (kode_bagian)
        from data_pegawai
        group by kode_bagian
        having count(kode_bagian)>1;

   Fungsi MAX()
    contoh memperoleh gaji terbesar tiap bagian:
        select kode_bagian, max(gaji)
        from data_gaji
        group by kode_bagian;

   Fungsi MIN()
    contoh memperoleh gaji terkecil tiap bagian:
        select kode_bagian, min(gaji)
        from data_gaji
        group by kode_bagian;
   
   Fungsi SUM()
    contoh menghitung jumlah gaji tiap bagian:
       
        select kode_bagian, sum(gaji)
        from data_gaji
        group by kode_bagian;


Beda Where dan having
1. having itu kondisi setelah di group
   sedangkan where itu belum di group

    contoh:
    SELECT kelas,count(*)
    FROM siswa
    GROUP BY kelas
    HAVING COUNT(*) >=3;

2. having untuk memberikan syarat pada fungsi group..
   where untuk syarat biasa..

    contoh:

    SELECT nis,nama,count(*)
    from siswa
    where wali like 'd%'
    group by wali
    having count(*)>=3


   
   
   
   
   
    

Tidak ada komentar:

Posting Komentar

TUGAS BASIS DATA

TUGAS BASIS DATA SOAL PRAKTIK BASIS DATA (TENTANG MENGGUNAKAN SQL DAN KLASIFIKASINYA) Sebuah sekolah akan membuat syste...