Senin, 25 Mei 2015

Belajar ya yang rajin

SELECT
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkan dengan tabel yang lainnya.
1)      Menampilkan data untuk semua kolom menggunakan asterisk (*)
Syntax : SELECT * FROM namatabel;
Berikut ini perintah untuk menampilkan semua data pada tabel barang :

Select * from tb_m_brg

2)      Menampilkan data untuk kolom tertentu
Syntax : SELECT kolom1,kolom2,kolom-n FROM namatabel;
Berikut ini perintah untuk menampilkan data pada tabel tb_m_brg dengan kolom yang ditampilkan adalah kolom kode_brg, nama_brg, spesifikasi :

Select kode_brg, nama_brg, spesifikasi from tb_m_brg

3)      Menampilkan data dengan kondisi data tertentu dengan klausa WHERE
Syntax : SELECT * FROM namatabel WHERE kondisi;
Berikut ini perintah untuk menampilkan data pada tabel tb_m_brg dimana nilai pada kolom jns_stok adalah stok :

Select * from tb_m_brg where jns_stok=’stok’


Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE  selain “=” adalah : > (lebih dari), < (kurang dari), <> (tidak sama dengan), >= (lebih dari atau sama dengan), <= (kurang dari atau sama dengan). Adapun operator lain, yaitu : AND, OR, NOT, BETWEEN-AND, IN dan LIKE. Berikut ini data yang ada pada tabel tb_m_brg :

Contoh 1 : perintah untuk menampilkan data pada tabel tb_m_brg dimana nilai panjang (pjg) berkisar dari 10 hingga 30 :

Select * from tb_m_brg where pjg >=10 and pjg <= 30

Atau

Select * from tb_m_brg where pjg between 10 and 30


Contoh 2 : perintah untuk menampilkan data pada tabel tb_m_brg dimana nilai panjang (pjg) sama dengan 11 atau 12 :

Select * from tb_m_brg where pjg=11 or pjg=12

Atau

Select * from tb_m_brg where pjg in (11,12)

Contoh 3 : perintah untuk menampilkan data pada tabel tb_m_brg dimana nilai pada kolom panjang (pjg) tidak sama dengan 11 :

Select * from tb_m_brg where pjg <> 11

Atau

Select * from tb_m_brg where pjg not in(11)

perintah untuk menampilkan data pada tabel tb_m_brg dimana data pada kolom tertentu diawali dengan nilai tertentu, misalnya pada kolom nama_brg dimana diawali dengan karakter ‘S’ :

Select * from tb_m_brg where nama_brg like ‘S%’


4)      Memberikan nama lain pada kolom
Syntax : SELECT namakolomlama AS namakolombaru FROM namatabel;
Berikut ini perintah untuk memberikan nama lain pada kolom kode_brg menjadi kode_barang pada tabel tb_m_brg :

Select kode_brg as kode_barang from tb_m_brg

5)      Menggunakan alias untuk nama tabel
Syntax : SELECT nmalias.jenis, nmalias.harga FROM namatabel nmalias;
Berikut ini perintah untuk memberikan alias pada tabel tb_m_brg :

Select b.kode_brg, b.nama_brg from tb_m_brg b

6)      Menampilkan data lebih dari dua tabel
Syntax :
SELECT * from namatabel1,namatabel2,namatabel-n;

Berikut ini perintah untuk menampilkan semua data pada tabel tb_m_brg dan tb_m_brg :

Select * from tb_m_brg, tb_m_grp_brg


Ekspresi
Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi digunakan untuk menghitung nilai.
Contoh : harga*jumlah+2
Simbol-simbol yang dapat digunakan pada ekspresi aritmatika.
Simbol
Keterangan
*
Perkalian
/
Pembagian
+
Penjumlahan
-
Pengurangan

                Contoh :
Menghitung volume pada tabel tb_m_brg

Select kode_brg, pjg*lbr*tgi as volume from tb_m_brg



7)      Aggregate Functions (COUNT, SUM, AVG, MIN, MAX)
a.       COUNT
Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel. Contoh : perintah untuk menghitung jumlah baris kolom jenis pada tabel tb_m_brg :

Select count(kode_brg) from tb_m_brg

b.      SUM
Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel. Contoh : perintah untuk menghitung jumlah nilai kolom pjg  pada tabel tb_m_brg :

Select sum(pjg) from tb_m_brg

c.       AVG
Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom pjg pada tabel tb_m_brg :

Select avg(pjg) from tb_m_brg

d.      MIN
Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom pjg pada tabel tb_m_brg :

Select min(pjg) from tb_m_brg

e.      MAX
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom pjg pada tabel tb_m_brg :

Select max(pjg) from tb_m_brg


Fungsi String
·         ASCII(str)
Fungsi yang menghasilkan nilai numerik berupa kode ASCII dari parameter character/string (str) yang disertakan.
mysql> SELECT ASCII('2');
è 50
mysql> SELECT ASCII(2);
è 50
mysql> SELECT ASCII('dx');
è 100
·         BIN(n)
Fungsi yang menghasilkan nilai string berupa data biner dari parameter numeric (n) yang disertakan.
mysql> SELECT BIN(12);
è '1100'
 
·         CHAR(n1[, n2, . . . ])
Fungsi yang menghasilkan sekumpulan character dari parameter kode ASCII (n1[,n2, . . .]) yang disertakan.
mysql> SELECT CHAR(77,121,83,81,'76');
è 'MySQL'
mysql> SELECT CHAR(77,77.3,'77.3');
è 'MMM'
 
·         CHAR_LENGTH(str)
Menghasilkan nilai numeric berupa panjang dari parameter string (str) yang disertakan.
mysql> SELECT CHAR_LENGTH(‘SRI DEVI');
è 8
 
·         CONCAT(str1, str2[, str3,  . . . . ])
Fungsi yang menghasilkan nilai string berupa hasil penggabungan dari parameter-parameter string (str1, str2[, str3, . . . . ]) yang disertakan.
mysql> SELECT CONCAT(‘SRI’, ‘DEVI', ‘PERMATASARI’);
è ‘SRIDEVIPERMATASRI’
 
·         CONCAT_WS(separator, str1, str2[, str3,  . . . . ])
Fungsi yang menghasilkan nilai string berupa hasil penggabungan dari parameter-parameter string (str1, str2[, str3, . . . . ]) dan dipisahkan oleh parameter separator yang disertakan.
mysql> SELECT CONCAT_WS(‘-’, ‘SRI DEVI', ‘PERMATA’, ‘SARI’);
è ‘SRI DEVI-PERMATA-SRI’
 
·         FIELD(str, str1[, str2, str3, . . . . ])
Fungsi yang menghasilkan nilai numeric berupa urutan parameter str dari sekumpulan parameter string list (str1[, str2, str3, . . . . ]) yang disertakan.
mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
è 2

·         FIELD_IN_SET(str, string_list)
Fungsi yang menghasilkan urutan str dari sebuah sekumpulan string (string_list), jika parameter str tersebut ada dalam sekumpulan string (string_list) yang dimaksud.
mysql> SELECT FIND_IN_SET('b', 'a, b, c, d');
è 2

·         INSERT(str, pos, len, newstr)
Menambahkan/menyisipkan nilai string baru (newstr) pada nilai string asal (str), pada posisi substring (pos) sebanyak karakter (len).
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
        -> 'QuWhattic'
     
·         LEFT(str, len)
Menghasilkan sub string dari sebuah nilai string (str) mulai dari karakter paling kiri sebanyak len karakter
mysql> SELECT RIGHT('MySQL', 3);
        -> 'MyS'

·         LENGTH(str)
Menghasilkan panjang string (str), diukur dalam byte.
mysql> SELECT LENGTH ( 'text');
         -> 4

·         LOCATE(sub_str, str[, pos])
Menghasilkan nilai posisi pertama dari sub string (sub_str) berdasarkan urutan karakter dari sebuah nilai string (str).
mysql> SELECT LOCATE('bar', 'foobarbar');
        -> 4
mysql> SELECT LOCATE('xbar', 'foobar');
        -> 0
mysql> SELECT LOCATE('bar', 'foobarbar',5);
        -> 7

·         LOWER(str)
Merubah semua karakter dalam nilai string (str) menjadi hurup kecil (lowercase). Fungsi ini sinonim untuk fungsi LCASE().
mysql> SELECT LOWER('MySQL');
        -> 'mysql'

·         LTRIM(str)
Membuang semua spasi yang berada di sebelah kiri sebuah nilai string (str).
mysql> SELECT RTRIM('      barbar');
        -> 'barbar'

·         ORD(char)
Menghasilkan nilai kode ASCII dari karakter(char)
mysql> SELECT ORD('2');
        -> 50

·         QUOTE(str)
Menambahkan tanda kutip/petik (‘   ‘) pada sebuah nilai string (str)
mysql> SELECT QUOTE('Don\'t');
        -> 'Don\'t!'
mysql> SELECT QUOTE(NULL);
        -> NULL

·         REPEAT(str, count)
Menghasilkan suatu nilai string (str) sebanyak jumlah (count) tertentu
mysql> SELECT REPEAT('MySQL', 3);
        -> 'MySQLMySQLMySQL'

·         REPLACE(str, from_str, to_str)
Mengganti semua sub string (from_str) dengan sebuah sub string baru (to_str) dalam sebuah nilai string (str).
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'

·         REVERSE(str)
Membalikkan urutan karakter dalam sebuah nilai string (str)
mysql> SELECT REVERSE('MySQL');
        -> 'LQSyM'

·         RIGHT(str, len)
Menghasilkan sub string dari sebuah nilai string (str) mulai dari karakter paling kanan sebanyak len karakter
mysql> SELECT RIGHT('MySQL', 3);
        -> 'SQL'

·         RTRIM(str)
Membuang semua spasi yang berada di sebelah kanan sebuah nilai string (str).
mysql> SELECT RTRIM('barbar   ');
        -> 'barbar'

·         SPACE(n)
Menghasilkan n spasi
mysql> SELECT SPACE(6);
        -> '      '

·         SUBSTRING(str, pos[, len])
Menghasilkan sebuah nilai sub string dari sebuah string (str), mulai dari posisi tertentu (pos) hingga akhir string atau sebanyak karakter tertentu (len). Fungsi ini sinonim dengan fungsi MID() dan bentuk lain fungsi ini adalah SUBSTRING(str FROM pos [FOR len]).
mysql> SELECT SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'
mysql> SELECT SUBSTRING('foobarbar' FROM 4 FOR 3);
        -> 'bar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
        -> 'ratica'

·         TRIM(str)
Membuang semua spasi yang berada di sebelah kiri dan kanan sebuah nilai string (str).
mysql> SELECT RTRIM('      barbar     ');
        -> 'barbar'

·         UPPER(str)
Merubah semua karakter dalam nilai string (str) menjadi hurup kapital (upercase). Fungsi ini sinonim untuk fungsi UCASE().
mysql> SELECT UPPER('mySQL');
        -> 'MYSQL'

Fungsi Numeric
  • ABS(n)
Menghasilkan nilai absolut dari n.
mysql> SELECT ABS (2);
         -> 2
mysql> SELECT ABS (-32);
         -> 32

  • ACOS(n)
Menghasilkan nilai arc kosinus dari n.
mysql> SELECT ACOS (1);
         -> 0.000000
mysql> SELECT ACOS (1,0001);
         -> NULL
mysql> SELECT ACOS (0);
         -> 1.570796

  • ASIN(n)
Menghasilkan nilai arc sinus dari n.
mysql> SELECT ASIN (0,2);
         -> 0.201358
mysql> SELECT ASIN ( 'foo');
         -> 0.000000

  • ATAN(n)
Menghasilkan nilai arc tangen dari n.
mysql> SELECT ATAN(2);
        -> 1.107149
mysql> SELECT ATAN(-2);
        -> -1.107149

  • CEIL(n)
Menghasilkan nilai integer terdekat yang tidak kurang dari nilain.. Fungsi ini sinonim dengan fugsi CEILING(n).
mysql> SELECT CEIL(2.43);
        -> 3
mysql> SELECT CEIL(-2.43);
        -> -2

  • COS(n)
Menghasilkan nilai kosinus dari n. Dimana n dalam radian.
mysql> SELECT COS(PI());
        -> -1.000000

  • COT(n)
Menghasilkan nilai kotangen dari n. Dimana n dalam radian.
mysql> SELECT COT(12);
        -> -1.57267341
mysql> SELECT COT(0);
        -> NULL

  • DEGREES(n)
Menghasilkan nilai derajat (degrees) dari nilai n radian.
mysql> SELECT DEGREES(PI());
        -> 180.000000

  • EXP(n)
Menghasilkan nilai exponensial dari nilai numerik n
mysql> SELECT EXP(2);
        -> 7.389056
mysql> SELECT EXP(-2);
        -> 0.135335

  • FLOOR(n)
Menghasilkan nilai integer terdekat yang tidak lebih dari nilain..
mysql> SELECT FLOOR(2.43);
        -> 2
mysql> SELECT FLOOR(-2.43);
        -> -3

  • LN(n)
Menghasilkan nilai LEN (logaritma natural) dari nilai numerik n. Fungsi ini sinonim dengan fungsi LOG().
mysql>SELECT LN(2);
        -> 0.693147
mysql>SELECT LN(-2);
        -> NULL

  • LOG([b,] n)
Jika parameternya Cuma satu yaitu n, maka akan menghasilkan nilai LEN (logaritma natural) dari nilai numerik n(sinonim dengan fungsi LN()). namun jika ada dua parameter (b dan n), maka akan menghasilkan nilai logaritma basis b dari nilai n.
mysql> SELECT LOG(2);
        -> 0.693147
mysql> SELECT LOG(-2);
        -> NULL
mysql> SELECT LOG(2,65536);
        -> 16.000000
mysql> SELECT LOG(1,100);
        -> NULL

  • LOG2(n)
Menghasilkan nilai logaritma basis 2 dari nilai numerik n.
mysql> SELECT LOG2(65536);
        -> 16.000000
mysql> SELECT LOG2(-100);
        -> NULL

  • LOG10(n)
Menghasilkan nilai logaritma basis 10 dari nilai numerik n.
mysql> SELECT LOG10(2);
        -> 0.301030
mysql> SELECT LOG10(100);
        -> 2.000000
mysql> SELECT LOG10(-100);
        -> NULL

  • MOD(n, m)
Menghasilkan nilai sisa (modulus) dari proses pembagian integer n dengan m. Fungsi ini sama dengan operator % atau MOD.
mysql> SELECT MOD(234, 10);
        -> 4
mysql> SELECT 253 % 7;
        -> 1
mysql> SELECT MOD(9, 2);
        -> 1
mysql> SELECT 9 MOD 2;
        -> 1

  • PI()
Mengahsilkan nilai PI
mysql> SELECT PI();
        -> 3.141593
mysql> SELECT PI()+0.000000000000000000;
        -> 3.141592653589793116

  • POW(n, m)
Menghasilkan nilai n pangkat m.
mysql> SELECT POW(2, 2);
        -> 4.000000
mysql> SELECT POW(2, -2);
        -> 0.250000
mysql> SELECT POW(5, 3);
        -> 125

  • RADIANS(n)
Menghasilkan nilai radian dari n derajat.
mysql> SELECT RADIANS(90);
        -> 1.570796
mysql> SELECT RADIANS(30);
        -> 0.5235987755983

  • RAND([n])
Menhasilkan nilai acak (random) antara 0 hingga 1.0. Parameter n (jika disertakan) digunakan sebagai awal bilangan acak.
mysql> SELECT RAND();
        -> 0.9233482386203
mysql> SELECT RAND(20);
        -> 0.15888261251047
mysql> SELECT RAND(20);
        -> 0.15888261251047
mysql> SELECT RAND();
        -> 0.63553050033332
mysql> SELECT RAND();
        -> 0.70100469486881

  • ROUND(n[, d])
Menghasilkan nilai integer terdekat dari nilai numerik n. jika parameter d disertakan maka akan menghasilkan pecahan terdekat dari nilai numerik n dengan d digit desimal.
mysql> SELECT ROUND(-1.23);
        -> -1
mysql> SELECT ROUND(-1.58);
        -> -2
mysql> SELECT ROUND(1.58);
        -> 2
mysql> SELECT ROUND(1.298, 1);
        -> 1.3
mysql> SELECT ROUND(1.298, 0);
        -> 1
mysql> SELECT ROUND(23.298, -1);
        -> 20

  • SIN(n)
Menghasilkan nilai sinus dari nilai numerik n dalam radian.
mysql> SELECT SIN(RADIANS(90));
        -> 1
mysql> SELECT SIN(RADIANS(30));
        -> 0.5

  • SQRT(n)
Menghasilkan nilai positif dari akar kuadrat n.
mysql> SELECT SQRT(4);
        -> 2.000000
mysql> SELECT SQRT(20);
        -> 4.472136

  • TAN(n)
Menghasilkan nilai tangent dari nilai numerik n dalam radian.
mysql> SELECT TAN(RADIANS(45));
        -> 1
mysql> SELECT TAN(RADIANS(30));
        ->0.57735026918963

  • TRUNCATE(n, d)
Menghasilkan nilai numerik dengan memotong/menghilangkan digit desimal pad nilai numerik n hingga menyisakan d digit desimal.
mysql> SELECT TRUNCATE(1.223,1);
        -> 1.2
mysql> SELECT TRUNCATE(1.999,1);
        -> 1.9
mysql> SELECT TRUNCATE(1.999,0);
        -> 1
mysql> SELECT TRUNCATE(-1.999,1);
        -> -1.9
 

Fungsi Date dan Time
  • ADDDATE(expr1, expr2)
Menghasilkan tanggal dari tanggal awal (expr1) ditambah interval hari yang ditentukan (expr2). Fungsi ADDDATE sinonim dengan fungsi DATE_ADD.
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
        -> '1998-02-02'
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
        -> '1998-02-02'
mysql> SELECT ADDDATE('1998-01-02', 31);
        -> '1998-02-02'

  • ADDTIME(expr1, expr2)
Menghasilkan jam dari jam awal (expr1) ditambah interval jam yang ditentukan (expr2). 
mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999',  '1 1:1:1.000002');
    -> '1998-01-02 01:01:01.000001'
mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
        -> '03:00:01.999997'

  • CURDATE()
Menampilkan tanggal sistem saat ini dalam format 'YYYY-MM-DD' atau YYYYMMDD. Fungsi ini sinonim dengan fungsi CURRENT_DATE().
mysql> SELECT CURDATE();
        -> '1997-12-15'
mysql> SELECT CURDATE() + 0;
        -> 19971215

  • CURTIME()
Menampilkan jam sistem saat ini dalam format 'HH:MM:SS' atau HHMMSS format. Fungsi ini sinonim dengan fungsi CURRENT_TIME().
mysql> SELECT CURTIME();
        -> '23:50:26'
mysql> SELECT CURTIME() + 0;
        -> 235026

  • DATE(expr)
Hanya menampilkan tanggal dari nilai/value datetime yang disertakan dalam ekspresi (expr).
mysql> SELECT DATE('2003-12-31 01:02:03');
        -> '2003-12-31'

  • DATE_FORMAT(datetime, format)
Menampilkan nilai tanggal dan jam (datetime value) dalam format tertentu.
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
        -> 'Saturday October 1997'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%D %y %a %d %m %b %j');
        -> '4th 97 Sat 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'

  • DAY(date)
Menampilkan tanggal dari sebuah urutan tahun-bulan-tanggal (date). Fungsi ini sinonim dengan fungsi DAYOFMONTH().
mysql> SELECT DAYOFMONTH('1998-02-03');
        -> 3

  • DAYNAME(date)
Menampilkan nama hari dari sebuah nilai tanggal (date)
mysql> SELECT DAYNAME('1998-02-05');
        -> 'Thursday'

  • DAYOFWEEK(date)
Menampilkan urutan hari dalam minggu (1 = Sunday, 2 = Monday, ... 7 = Saturday) dari sebuah nilai tanggal (date).
mysql> SELECT DAYOFWEEK('1998-02-03');
        -> 3

  • DAYOFYEAR(date)
Menampilkan hari ke berapa dalam tahun dari sebuah nilai tanggal (date).
mysql> SELECT DAYOFYEAR('1998-02-03');
        -> 34

  • NOW()
Menampilkan tanggal dan jam sistem saat ini dalam format 'YYYY-MM-DD HH:MM:SS' atau YYYYMMDDHHMMSS.
mysql> SELECT NOW();
        -> '1997-12-15 23:50:26'
mysql> SELECT NOW() + 0;
        -> 19971215235026
 
Fungsi Seleksi Kondisi
  • IF (expr1, expr2, expr3)
Menampilkan nilai expr2 jika expr1 terpenuhi atau bernilai TRUE, dan akan menampilkan nilai expr3 jika expr1 tidak terpenuhi atau bernilai FALSE.
mysql> SELECT IF(1>2,2,3);
        -> 3
mysql> SELECT IF(1<2,'yes','no');
        -> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
        -> 'no'

  • IFNULL(expr1, expr2)
Menampilkan nilai expr1, jika expr1 tidak NULL, dan akan menampilkan nilai expr2 jika expr1 adalah NULL.
mysql> SELECT IFNULL(1,0);
        -> 1
mysql> SELECT IFNULL(NULL,10);
        -> 10
mysql> SELECT IFNULL(1/0,10);
        -> 10
mysql> SELECT IFNULL(1/0,'yes');
        -> 'yes'

  • CASE WHEN [condition] THEN [result] [WHEN [condition] THEN [result] …] [ELSE result] END
mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
        -> 'true'
mysql> SELECT CASE BINARY 'B'
           WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
        -> NULL





8)      SQL dengan GROUP BY dan HAVING
Klausa GROUP BY digunakan untuk melakukan pengelompokan data. Sebagai contoh, terdapat tabel tb_m_brg dengan data sebagai berikut :

akan ditampilkan hanya kolom ucode_grp_brg dan digabungkan dengan count(kode_brg) yang dikelompokkan berdasarkan kolom ucode_grp_brg  pada tabel tb_m_brg :

Select ucode_grp_brg, count(kode_brg) from tb_m_brg group by ucode_grp_brg


Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY. Kelompok yang memenuhi HAVING saja yang akan dihasilkan. Contoh : perintah untuk menampilkan data hanya kolom ucode_grp_brg yang dikelompokkan berdasarkan kolom count(kode_brg), dimana jumlah tb_m_brg berdasarkan kelompoknya harus lebih besar dari 100 pada tabel tb_m_brg :

Select ucode_grp_brg, count(kode_brg) from tb_m_brg group by ucode_grp_brg
having count(kode_brg) > 100

9)      ORDER BY
Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengan tipe data yang dimiliki. Contoh : perintah untuk mengurutkan data tb_m_brg berdasarkan kolom nama_brg :

Select * from tb_m_brg order by nama_brg

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Select * from tb_m_brg order by nama_brg asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Select * from tb_m_brg order by nama_brg desc















10)   Nested Queries / Subquery (IN, NOT IN, EXISTS, NOT EXISTS)
Subquery berarti query di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di atasnya.
Subquery terletak di dalam klausa WHERE atau HAVING. Pada klausa WHERE, subquery digunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query. Sedangkan pada klausa HAVING, subquery digunakan untuk memilih kelompok baris yang kemudian digunakan oleh query.



Contoh 1 : perintah untuk menampilkan data pada tabel tb_m_brg yang mana data pada kolom jenis-nya tercantum pada tabel tb_m_brg menggunakan IN :
atau menggunakan EXISTS
Pada contoh di atas :
SELECT jenis FROM tb_m_brg
disebut subquery, sedangkan :
                SELECT * FROM tb_m_brg
berkedudukan sebagai query. Perhatikan, terdapat data jenis dan harga pada tabel tb_m_brg yang tidak ditampilkan. Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabel tb_m_brg.
Contoh 2 : perintah untuk menampilkan data pada tabel tb_m_brg yang mana data pada kolom jenis-nya tidak tercantum pada tabel tb_m_brg menggunakan NOT IN :
atau menggunakan NOT EXISTS
11)   Operator comparison ANY dan ALL
a.       Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUE. Ilustrasinya :
                Gaji > ANY (S)
Jika subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik dengan :
                (gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)
Contoh : perintah untuk menampilkan semua data tb_m_brg yang harganya bukan yang terkecil :
b.      Operator ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery.
Contoh : perintah untuk menampilkan data tb_m_brg yang harganya paling tinggi :





12)   UNION, INTERSECT dan EXCEPT
a.       UNION
UNION merupakan operator yang digunakan untuk menggabungkan hasil query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama. Berikut ini perintah untuk memperoleh data pada tabel tb_m_brg dimana jenisnya action dan horor :
Perintah di atas identik dengan :
Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja pada dua tabel atau lebih.
b.      INTERSECT
INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.
Syntax : SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2
Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakan operator IN seperti contoh 1 pada bagian Nested Queries.
c.       EXCEPT / Set Difference
EXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.
Syntax : SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2
Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.
13)   Operasi Join
Join merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-tabel tersebut. Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada pencocokan antara kolom pada tabel yang berbeda. Berikut ini perintah untuk menampilkan kolom judul dari tabel tb_m_brg dan kolom harga dari tabel tb_m_brg :
Pada contoh di atas, tb_m_brg.jenis=tb_m_brg.jenismerupakan kondisi untuk mencocokkan data antara kolom jenis milik tabel tb_m_brg dan tb_m_brg.
a.       Inner Join
Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengan syarat dibelakang on (tidak boleh null), dengan kata lain semua data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan. Berikut ini perintah untuk menampilkan data dari tabel tb_m_brg dan tb_m_brg dengan syarat berdasarkan kolom jenis :
b.      Left Join
Left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
c.       Right Join
Right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
d.      Natural Join
Natural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapat kolom yang sama, maka yang akan ditampilkan hanya salah satunya saja, yaitu kolom dari tabel sebelah kiri perintah natural join.
1)      Natural Left Join
Natural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah natural left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
2)      Natural Right Join
Natural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah natural right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.