Syntax SQL (Relasi pada tabel database)

02 January 2013 13:08:03 Dibaca : 1011

Relasi table pada database sangat diperlukan untuk menyederhanakan data-data kita, dan supaya mudah untuk diatur. Ada beberapa cara yang digunakan untuk merelasikan table.

A. Cara Manual

Cara manual untuk merelasikan kudua table yaitu dengan query seperti berikut

mysql> select produk.id_produk,produk.nm_produk,jenis.nm_jenis from

produk,jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 1 |Lemari | Elektronik |

| 1 | Lemari | FOOD |

| 2 | Kulkas | Furniture |

| 2 | Kulkas | Elektronik |

| 2 | Kulkas | FOOD |

| 3 | Meja | Furniture |

| 3 | Meja | Elektronik |

| 3 | Meja | FOOD |

| 4 | Bangku | Furniture |

| 4 | Bangku | Elektronik |

| 4 | Bangku | FOOD |

| 5 | Televisi | Furniture |

| 5 | Televisi | Elektronik |

| 5 | Televisi | FOOD |

| 6 | Komputer | Furniture |

| 6 | Komputer | Elektronik |

| 6 | Komputer | FOOD |

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

18 rows in set (0.00 sec)

Karena tidak sesuai yang kita harapkan.terdapat banyak redudansi data pada output diatas nah,untuk mengatasi hal tersebut kita bias gunakan klausa wheresehingga query nya jadi seperti berikut

mysql> select produk.id_produk,produk.nm_produk,jenis.nm_jenis from

produk,jenis where produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

6 rows in set (0.00 sec)

Sekarang tabel sudah muncul sesuai yang diharapkan. Ini dikarenakan yang kita relasikan hanya no_jenis di table produk dan no_jenis di table jenis.

B. Join Table

1. CROSS JOIN

Pada dasarnya cross join tidak ada bedanya dengan Cara manual di atas yang membedakan adalah tanda Koma(,) sesudah kata from.query nya seperti berikut.

mysql> select produk.id_produk,produk.nm_produk,jenis.nm_jenis from

produk cross join jenis where produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

Bisa kita lihat tanda koma pada cara manual, di cara Cross join diganti dengan klausa Cross join. Klausa Cross Join ini selain bias menggunakan klausa where juga bisa menggunakan kalusa On.

mysql> select produk.id_produk,produk.nm_produk,jenis.nm_jenis from

produk cross join jenis on produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

6 rows in set (0.00 sec)

2. STRAIGHT JOIN

Straight Join juga pada dasarnya sama seperti cross join perbedaan yang jelas disini adalah Straight Join tidak bisamenggunakan Klausa Kondisi seperti Where atau On.

mysql> select id_produk,nm_produk,nm_jenis from produk straight join

jenis where produk.no_jenis=jenis.no_jenis;

ERROR 1054 (42S22): Unknown column 'produk.no_jenis' in 'where clause'

mysql> select id_produk,nm_produk,nm_jenis from produk straight join

jenis on produk.no_jenis=jenis.no_jenis;

ERROR 1054 (42S22): Unknown column 'produk.no_jenis' in 'on clause'

mysql> select id_produk,nm_produk,nm_jenis from produk straight join

jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 1 | Lemari | Elektronik |

| 1 | Lemari | FOOD |

| 2 | Kulkas | Furniture |

| 2 | Kulkas | Elektronik |

| 2 | Kulkas | FOOD |

| 3 | Meja | Furniture |

| 3 | Meja | Elektronik |

| 3 | Meja | FOOD |

| 4 | Bangku | Furniture |

| 4 | Bangku | Elektronik |

| 4 | Bangku | FOOD |

| 5 | Televisi | Furniture |

| 5 | Televisi | Elektronik |

| 5 | Televisi | FOOD |

| 6 | Komputer | Furniture |

| 6 | Komputer | Elektronik |

| 6 | Komputer | FOOD |

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

18 rows in set (0.00 sec)

Jadi kesimpulannya jangan gunakan Straight join supaya tidak ada penumpukkan/redudansi data.

3. INNER JOIN

Inner Join konseprnya sama seperti Cross Join. Tidak ada perbedaan apapun

mysql> select id_produk,nm_produk,nm_jenis from produk inner join jenis

on produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

6 rows in set (0.00 sec)

mysql> select id_produk,nm_produk,nm_jenis from produk inner join jenis

where produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

6 rows in set (0.00 sec)

4. LEFT JOIN

Left Join digunakan untuk menampilkan semua record pada table di sebelah kiri .

mysql> select id_produk,nm_produk,nm_jenis from produk left join jenis

on produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

6 rows in set (0.00 sec)

Pada contoh diatas left join akan menampilkan semua record pada table di sebelah kiri yaitu table produk sedangkan table jenis berada disebelah kanan sehingga table jenis akan menyesuaikan.

5. RIGHT JOIN

Kebalikan dari left join ,right join digunakan untuk menampilkan semua record pada table di sebelah kanan.

mysql> select id_produk,nm_produk,nm_jenis from produk right join jenis

on produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 2 | Kulkas | Elektronik |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

| NULL | NULL | FOOD |

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

7 rows in set (0.00 sec)

Dapat dilihat Table jenis akan ditampilkan semua sehingga untuk field/kolom nm_jenis FOOD karena tidak ada pasangan di table produk maka table produk akan otomatis mengisinya dengan NULL. Right Join dan Left Join tidak bisa menggunakan klausa where.

6. NATURAL JOIN

Natural Join ini mungkin merupakan jawaban bagi query-query yang panjang seperti diatas. Karena tanpa menggunakan kalusa where, natural join akan secara otomatis merelasikan table tersebut dengan sangat tepat.

mysql> select id_produk,nm_produk,nm_jenis from produk natural join

jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

6 rows in set (0.00 sec)

Jika menggunakan where:

mysql> select id_produk,nm_produk,nm_jenis from produk natural join

jenis where produk.no_jenis=jenis.no_jenis;

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

| id_produk | nm_produk | nm_jenis |

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

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

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

6 rows in set (0.00 sec)

Natural join tidak bisa menggunakan klausa on.

Sumber:

Komunitas eLearning IlmuKomputer.Com

DDL&DML

03 October 2012 19:55:18 Dibaca : 85

1. DDL - Data Definition Language

 

DDL - Data Definition Language merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisimetadata dari objek-objek database.

 

Objek-objek database pada yang dimaksud - pada MySQL - adalah sebagai berikut:

 

  • Database
  • Table
  • View
  • Index
  • Procedure (Stored Procedure)
  • Function
  • Trigger

 

 

 

Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut.  

 

 

  • Perubahan (ALTER & RENAME)
    • ALTER DATABASE
    • ALTER FUNCTION
    • ALTER PROCEDURE
    • ALTER TABLE
    • ALTER VIEW
    • RENAME TABLE

 

  • Penghapusan (DROP)
    • DROP DATABASE
    • DROP FUNCTION
    • DROP INDEX
    • DROP PROCEDURE
    • DROP TABLE
    • DROP TRIGGER
    • DROP VIEW

 

2. DML - Data Manipulation Language

 

DML sendiri adalah kumpulan perintah SQL yang berhubungan dengan pekerjaan mengolah data di dalam table - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database seperti table, column, dan sebagainya.

 

 Beberapa daftar Perintah DML MySQL 5.0

 

  • CALL
  • DELETE
  • DO
  • HANDLER
  • INSERT
  • LOAD DATA INFILE
  • REPLACE
  • SELECT
  • TRUNCATE
  • UPDATE

 

3. DCL dan Join Pada SQL  

 

DCL atau Data Control Language merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain:

 

* GRANT : Perintah ini digunakan untuk memberikan hak / izin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapsu (DELETE), mengubah (UPDATE) dan hak khusus berkenaan dengan sistem databasenya.

 

SINTAKS : GRANT privileges ON tbname TO user

 

CONTOH : grant select, update, insert, delete on perpustakaan.buku to 'ali'@'localhost';

 

* REVOKE : perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.

 

SINTAKS : REVOKE privileges ON tbname FROM user

 

CONTOH : revoke select, update, insert, delete on perpustakaan.buku from 'ali'@'localhost';

 

* JENIS JENIS JOIN SQL:

 

1. INNER JOIN : hanya akan menampilkan baris untuk data yang memiliki nilai yang sama pada field kunci dengan tabel yang berelasi

 

2. LEFT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kiri.

 

3. RIGHT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kanan.

 

4. FULL JOIN : merupakan gabungan dari LEFT JOIN dan RIGHT JOIN.

 

 

 

 

 

Tipe-Tipe DBMS

19 September 2012 10:50:41 Dibaca : 2151

 

TIPE - TIPE DBMS

 

Ada beberapa tipe database:

 

 1. Hierarchical DBMS

 

 

 

  • Model database yg mengorganisasikan data

 

 seperti struktur pohon.

 

 

 

  • Setiap record dibagi ke dalam beberapa bagian-bagian (segments) yang dihubungkan satu sama

 

 lain dalam hubungan parent-child satu ke banyak (one to many / 1 to m).

 

 

 

  • Model ini bisa ditemukan dalam DBMS yg lebih lama dibandingkan RDBMS.

 

 

 

 

 

 

 

2. Network DBMS

 

 

 

  • Database logis yg berguna u/ menunjukkan hubungan banyak ke banyak (many-to-many).

 

 

 

  • Model ini bisa ditemukan dalam DBMS yg lebih lama dibandingkan hierarchical

 

 

 

 

 

 3. Relational DBMS (RDBMS)

 

 

 

  • Model database logis yg memperlakukan data seakan-akan data tersebut tersimpan dalam tabel 2 dimensi.

 

 

 

  • Model ini dapat menghubungkan 2 tabel menjadi 1 tabel selama 2 tabel tsb berbagi elemen data yg sama.

 

 

 

  • Banyak digunakan dalam DBMS saat ini (Microsoft Access, Oracle, dll)

 

 

 

 

 

 

 

 4. Object-oriented DBMS

 

 

 

 

 

 

 

Pendekatan ke manajemen data yg menyimpan data dan prosedur yg diperlakukan pada data itu

 

 

 

 

 

5. Object relational DBMS

 

 

 

 

 

Gabungan (hybrid) antara OODBMS dan RDBMS

Pengertian DBMS & Aplikasi Yang Ada Dalam DBMS.

12 September 2012 16:47:13 Dibaca : 324
  1. DBMS (DataBase Management System) adalah sistem yang secara khusus dibuat untuk memudahkan pemakai dalam mengelola basis data.
  2. Database (basis data) adalah kumpulan informasi yang disimpan didalam komputer secara sistematis sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari database tersebut.  Perangkat lunak untuk memanggil dan mengelola dan memanggil query database disebut sistem manajemen database (database management system/DBMS).

  1. Aplikasi Yg ada dalam DBMS.

1. komersial ( bayar )

 - DB2 adalah kelurga sistem manajemen database relasional (RDBMS) produk dari IBM yang melayani sejumlah sistem operasi yang beebeda platfrom.

 - Sybase

 -Terdata

 -Microsoft SQL server 2000 adalah perangkat lunak relational database management system (RDBMS) yang didesain untuk melakukan proses manipulasi database berukuran besar dengan berbagai fasilitas. Microsoft SQL Server 2000 merupakan produk andalan Microsoft untuk database server.

-Oracle relational database management system (RDBMS) untuk mengelola informasi secara terbuka, komprehensif dan terintegrasi.

2. Free

 - postgreSQLadalah sebuah object-relational database management system (ORDBMS) yang bersifat open source. PostgreSQL adalah database yang powerful dan tidak kalah dengan database komersil sekelasnya Oracle, Sybase maupun Informix.

 

 

 - Firebird salah satu aplikasi RDBMS (Relational Database Management System) yang bersifat open source.

 

Pengertian Database

12 September 2012 09:38:49 Dibaca : 81

Database adalah kumpulan data sistematis yang disiapkan didalam komputer yang dapat digunakan dalam suatu komputer untuk memperoleh dari suatu basis tersebut.perangkat lunak yang digunakan untuk mengelola atau memanggil database tersebut(query)disebut dalam database management system