PERINTAH DASAR SQL

haii sobat- sobat, kali ini kita akan belajar tentang PERINTAH DASAR SQL dengan menggunakan postgres dan MySQL.

A. Landasan Teori

Dalam hal hubungan antar tabel, ada beberapa syarat yang harus terpenuhi seperti, antara tabel yang ingin di hubungkan harus memiliki sebuah field atau kolom dengan tipe data yang sama. Dengan kata lain ada tabel yang memiliki primary key sebagai kunci untuk menghubungkan ke tabel yang lain dimana terdapat field yang mempunyai tipe data yang sama dengan kata lain yang disebut foreign key.

Dalam dunia database terutama mysql sudah tidak asing lagi dengan yang namanya primary key, foreign key, unique dan index.

Kunci (Key)
Kunci merupakan elemen record yang dipakai untuk menemukan record tersebut pada waktu akses atau bisa digunakan untuk identifikasi tiap record.
Jenis-jenis kunci :
ü Superkey
ü Candidat key
ü Primary key
ü Alternate key
ü Foreign key
ü External key

Okelah saya akan menjelaskan perbedaan nya.

1. Primary Key:
Peimary key adalah suatu aturan yang berguna untuk memastikan bahwa setiap baris data didalam suatu tabel bersifat unik (berbeda antara isi baris satu dengan yang lainnya) . primary key diterapkan pada kolom-kolom yang akan dijadikan sebagai pembeda. Sebagai contoh, perhatkan tabel dibawah ini :

primary key

Masing-masing baris data diatas dapat dibedakan berdasarkan kolom kode_buku.Ini berarti bahwa isi dari kolom kode buku harus bersifat unik (tidak boleh sama), contohnya tabel diatas sudah terdapat kode_buku bk01-bk05, jika ada yang menginputkan misalnya ‘bk05′ lagi,server mysql akan menolak inputan tersebut(error) karena kode_buku sudah terdapat data dengan isi ‘bk05′. Dalam kasus ini kolom(field) kode buku dapat dijadikan primary key.
Syarat primary key:
  • Satu tabel hanya memiliki satu primary key
  • Isi dari kolom(field) primary key harus bersifat unik(tidak boleh sama) dan tidak boleh NULL (kosong)
2. Foreign Key
Foreign key berguna untuk mendefinisikan kolom-kolom pada suatu tabel yang nilainya mengacu ke tabel lain,jadikolom foreign key nilainya harus diambil dari nilai kolom pada tabel lain. Kolom tabel yang data nya diambil harus berupa kolom primary key atau unique. Sebagai contoh perhatikan tabel berikut:
foreign key 
*atas  : tabel rak = nomer_rak(primary key)
*bawah : tabel letak_buku = nomer_rak(foreign key)
dari gambar diatas, pada tabel letak_buku terdapat field nomer_rak yang mengacu pada field nomer_rak yang ada di tabel rak.Misalnya jika kita mencoba memasukan data pada kolom foreign key yaitu nomer_rak pada tabel letak_buku, contoh kita input ’4′, maka server mysql akan menolaknya(error) karena pada kolom primary key yaitu nomer rak pada tabel rak tidak terdapat ’4′.
Aturan Foreign key:
  • satu tabel bisa terdapat lebih dari 1 foreign key.
  • kolom yang diacu harus sebagai primary key atau unique
  • foreign key tidak bersifat unik(data bisa sama)
3. Unique
Fungsi unique pada dasarnya sama seperti primary key, yaitu untuk memastikan bahwa setiap baris data yang terdapat pada suatu tabel bersifat unik(tidak sama). perbedaanya pada unique pada baris suatu tabel bisa tidak diisi alias bisa kosong. contoh kasus: Setiap murid SMA didata nomer ID KTP nya(ID KTP tidak mungkin sama), namun belum semua murid SMA memilki KTP sehingga terdapat data murid yang ID KTP nya kosong.lihat contoh tabel dibawah ini.
uniquee
4.Indeks
indeks merupakan suatu objek yang berfungsi untuk mempercepat proses pengambilan data, pengurutan dan pencarian data dartisuatu tabel. Data pada tabel yang sudah diindeks akan diurutkan berdasarkan kolom indeks. dengan demikian proses pencarian data dapat lebih cepat. Saat data baru sedikit mungkin pengindeksan belum terlalu berguna, namun jika data sudah mencapai ribuan atau bahkan ratusan ribu barulah terasa perbedaanya jika field tersebut belum diindeks
*catatan: primary key sudah otomatis menjadi indeks, namun indeks bisa dibuat di field yang lain.

B. Hasil Praktikum
(::) contoh memakai postgres



1. Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian masukkan 3
data mahasiswa sebagai berikut :

Nim : 12
Nama : edi
Alamat : malang
No.telp : 0856453428
Fakultas : SAINTEK

Nim : 13
Nama : sinta
Alamat : jogja
No.telp : 0813347565675
Fakultas : SAINTEK

Nim : 14
Nama : luki
Alamat : ponorogo
No.telp : 082576568798
Fakultas : PSIKOLOGI

pertama kita masuk ke database yang kemaren kita buat, caranya kyak gini nih,..

postgres=# \c nuraini_13650030
You are now connected to database "nuraini_13650030" as user "postgres".
nuraini_13650030=#

kemudian kita buat tabel fakultas dulu..

nuraini_13650030=# create table fakultas (id_fak integer not null, nama_fak varc
har(20), primary key (id_fak));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "fakultas_pkey" for table "fakultas"
CREATE TABLE

selanjutnya kita buat tabel mahasiswa

nuraini_13650030=# create table mahasiswa (nim_mhs integer not null, nama_mhs va
rchar(30), alamat varchar(20), id_fak integer not null references fakultas, prim
ary key (nim_mhs, id_fak));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "mahasiswa_pkey" for table "mahasiswa"
CREATE TABLE

setelah tabel selesai, kemudian kita isi table-tabel yang telah kita buat. (Ini isi tabel fakultas)

nuraini_13650030=# insert into fakultas values (1,'saintek');
INSERT 0 1
nuraini_13650030=# insert into fakultas values (2,'psikologi');
INSERT 0 1

(ini isi tabel mahasiswa)

nuraini_13650030=# insert into mahasiswa values (12,'edi','malang','1','08586768
8');
INSERT 0 1
nuraini_13650030=# insert into mahasiswa values (13,'hamdi','ambon','1','0895754
764');
INSERT 0 1
nuraini_13650030=# insert into mahasiswa values (14,'luki','ponorogo','2','08256
7786');
INSERT 0 1

kemudian untuk menambah tabel no_telp

nuraini_13650030=# alter table mahasiswa add column "no_telp" varchar(20);
ALTER TABLE

2. Tampilkan data mahasiswa berupa nim dan nama.

nuraini_13650030=# select nim_mhs, nama_mhs from mahasiswa;
nim_mhs | nama_mhs
---------+----------
12 | edi
13 | hamdi
14 | luki
(3 rows)

3. Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang
muncul hanya salah satu data mahasiswa.

nuraini_13650030=# select * from mahasiswa where nim_mhs=13;
nim_mhs | nama_mhs | alamat | id_fak | no_telp
---------+----------+--------+--------+------------
13 | hamdi | ambon | 1 | 0895754764
(1 row)

4. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama
fakultas.

nuraini_13650030=# select nim_mhs, nama_mhs, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak = fakultas.id_fak;
nim_mhs | nama_mhs | nama_fak
---------+----------+-----------
12 | edi | saintek
13 | hamdi | saintek
14 | luki | psikologi
(3 rows)

5. Hapus data mahasiswa yang memiliki nim : 13

nuraini_13650030=# delete from mahasiswa where nim_mhs=13;
DELETE 1

6. Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12

nuraini_13650030=# update mahasiswa set alamat='ambon', no_telp=0867754589 where
nim_mhs=12;
UPDATE 1
7. Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa.
Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.

nuraini_13650030=# select*from mahasiswa;
nim_mhs | nama_mhs | alamat | id_fak | no_telp
---------+----------+----------+--------+-----------
14 | luki | ponorogo | 2 | 082567786
12 | edi | ambon | 1 | 867754589
(2 rows)

nuraini_13650030=# select*from mahasiswa order by nim_mhs desc;
nim_mhs | nama_mhs | alamat | id_fak | no_telp
---------+----------+----------+--------+-----------
14 | luki | ponorogo | 2 | 082567786
12 | edi | ambon | 1 | 867754589
(2 rows)

nuraini_13650030=# select*from mahasiswa order by nim_mhs asc, nim_mhs desc;
nim_mhs | nama_mhs | alamat | id_fak | no_telp
---------+----------+----------+--------+-----------
12 | edi | ambon | 1 | 867754589
14 | luki | ponorogo | 2 | 082567786
(2 rows)

nuraini_13650030=# select*from mahasiswa order by 2 desc;
nim_mhs | nama_mhs | alamat | id_fak | no_telp
---------+----------+----------+--------+-----------
14 | luki | ponorogo | 2 | 082567786
12 | edi | ambon | 1 | 867754589
(2 rows)

8. Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya

nuraini_13650030=# select*from mahasiswa, fakultas;
nim_mhs | nama_mhs | alamat | id_fak | no_telp | id_fak | nama_fak
---------+----------+----------+--------+-----------+--------+-----------
14 | luki | ponorogo | 2 | 082567786 | 1 | saintek
12 | edi | ambon | 1 | 867754589 | 1 | saintek
14 | luki | ponorogo | 2 | 082567786 | 2 | psikologi
12 | edi | ambon | 1 | 867754589 | 2 | psikologi
(4 rows)

9. Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.

nuraini_13650030=# select*from mahasiswa where id_fak=1;
nim_mhs | nama_mhs | alamat | id_fak | no_telp
---------+----------+--------+--------+-----------
12 | edi | ambon | 1 | 867754589
(1 row)



nuraini_13650030=# select nim_mhs, nama_mhs, alamat, no_telp, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and fakultas.id_fak=1;
nim_mhs | nama_mhs | alamat | no_telp | nama_fak
---------+----------+--------+-----------+----------
12 | edi | ambon | 867754589 | saintek
(1 row)

10. Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.

nuraini_13650030=# select nim_mhs, nama_mhs, alamat, no_telp, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and fakultas.id_fak!=1;
nim_mhs | nama_mhs | alamat | no_telp | nama_fak
---------+----------+----------+-----------+-----------
14 | luki | ponorogo | 082567786 | psikologi
(1 row)

11. Hapus data fakultas “SAINTEK”.

nuraini_13650030=# delete from mahasiswa where id_fak=1;
DELETE 1
nuraini_13650030=# delete from fakultas where id_fak=1;
DELETE 1

(::) contoh memakai MySQL

1. Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian masukkan 3
data mahasiswa sebagai berikut :

Nim : 12
Nama : edi
Alamat : malang
No.telp : 0856453428
Fakultas : SAINTEK

Nim : 13
Nama : sinta
Alamat : jogja
No.telp : 0813347565675
Fakultas : SAINTEK

Nim : 14
Nama : luki
Alamat : ponorogo
No.telp : 082576568798
Fakultas : PSIKOLOGI


pertama kita masuk ke database yang kemaren kita buat, caranya kyak gini nih,..


kemudian kita buat tabel fakultas dulu.. 


 
selanjutnya kita buat tabel mahasiswa



setelah tabel selesai, kemudian kita isi table-tabel yang telah kita buat. (Ini isi tabel fakultas)

 
(ini isi tabel mahasiswa)







kemudian untuk menambah tabel no_telp


 
2. Tampilkan data mahasiswa berupa nim dan nama.


3. Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.



4. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.


5. Hapus data mahasiswa yang memiliki nim : 13




  6. Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12


7. Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa. Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.








8. Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya


 
9. Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.





10. Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.



11. Hapus data fakultas “SAINTEK”.







(::) Jelaskan evaluasi dari DBMS MySQL dan PostgreSQL dalam blog anda berdasarkan tugas praktikum 1-11. 


a. kekurangan postgres
      Meskipun PostgreSQL telah banyak memberikan keuntungan, tetapi database system ini juga mempunyai beberapa kekurangan.
Kekurangan postgreSQL antara lain:
1. Belum mendukung selectable stored procedure seperti firebird.
2. Physical database (table) file nya berserakan.
3. Konsep penyimpanan fisiknya satu objek = 1 atau lebih file, bukan 1 database = 1 file.
4. Tidak memiliki performa kecepatan yang tinggi dibanding dengan database yang lainnya. Kekurangan inilah yang selalu diperdebatkan sejak lama.
b. kelebihan postgres
     PostgreSQL terkenal akan fitur-fitur yang disediakannya, di mana telah diketahui sejak dulu bahwa PostgreSQL mempunyai sekumpulan fitur yang kaya dan lengkap, yang mendukung transaksi, view, subselect, foreign key support, pemeriksaan, dan lain-lain.
Kelebihan MySQL

  1. Mysql server bersifat open source dapat digunakan oleh perorangan atau instansi tanpa harus membelinya. Untuk versi komersial di tambah beberapa fitur dan dukungan technical support.
  2. Mendukung bahasa SQL (Stuctured Query Languange).
  3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
  4. Performance tuning’, MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
  5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
  6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
  7. Performa tinggi, walaupun menampung jumlah database yang sangat besar tapi tidak mengurangi kecepatan dalam hal akses ke databasenya.
  8. Proteksi data, MySql menyediakan manajemen user dan enkripsi data.
  9. Lintas Platform, bisa digunakan di sistem operasi windows maupun linux.
 kekurangan MySQL
  1. Data yang ditangani belum besar.
  2. Untuk konesi ke bahasa pemrograman visual seperti VB,Delphi,dan foxpro ,MySQL kurang suport. Karena koneksi ini menyebabkan field yang dibaca harus sesuai dengan koneksi dari program visual tersebut, dan ini menyebabkan MySQL jarang dipakai dalam program visual.
kesamaan Postgres dan MySQL
Antara PostgreSQL dan MySQL mempunyai kesamaan – kesamaan pada segi bahasa. Misal pada operasi query buffer, untuk menampilkan tanggal kita bisa menggunakan “select current_timestamp”.
Untuk pembuktian, kita lakukan percobaan bagaimana keduanya menyelesaikan soal – soal yang ada sebelumnya (masalah user, database dan query buffer).

C. Perbedaan Postgres dan MySQL
Biasanya orang menyebut database seperti MySQL, PostgreSQL, atau yang lainnya dengan sebutan Database Server saja. Namun, ada beberapa orang yang menyebutnya dengan istilah Database Enggine,Mesin Database, SMBD, DBMS, Back End, ataupun langsung menyebut dengan program database saja.

MySQL terkenal cepat dalam melakukan query sederhana. Dengan kata lain, dapat memroses lebih banyak SQL per satuan waktu. Tapi dalam kondisi load tinggi (jumlah koneksi simultan besar), PostgreSQL sering mengalahkan MySQL untuk query dengan klausa JOIN yang kompleks, seperti dialami Tim Perdue saat mencoba kedua database untuk diimplementasikan di SourceForge.net.

Cara mmebuat database dan tabel pada mysq gak harus manual, karena mysql telah menyediakan menu-menu agar mempermudah pemakainya, tapi jika menggunakan postgre pemakainya harus menggunakan kode-kode secara manual(ketika). makanya dari sebagian programer lebih menyukai mySQl dari pada postgre

D. Kesimpulan
Nah sekarang udah tau kan perbedaan antara primary key dan foreign key.
Dari beberapa buku yang saya baca hampir semua software database mengenal atau mengerti SQL. Jadi,perintah SQL pada semua software database hampir sama. ehh dan jangan salah kira, bahwa Merancang database merupakan hal yang pertama kali harus dilakukan sebelum membuat suatu aplikasi berbasis database. Rancangan database yang baik akan menentukan seberapa baik sebuah aplikasi dibangun. Orang yang bertanggung jawab dalam merancang database biasanya disebut sebagai seorang sistem analis.

E. Kritik dan Saran
banyak kemiripan pada koding antara postgres dan mySQL dalam PERINTAH DASAR SQL,  jadi gak perlu susah payah searching tanya pak google haha..
sarannya kalau pembaca udah paham dalam koding antara postgres atau MySQL maka untuk mempelajari yang lain akan sangat mudah.. :)

sumber:

http://blog.koroid.com/coding/database/mysql/perbedaanpengertian-dan-fungsi-primary-key-foreign-key-unique-dan-index/
http://blog.akakom.ac.id/detotty/dasar-dasar-sql-structured-query-language/
http://www.google.co.id/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CBoQFjAA&url=http%3A%2F%2Fachmatim.net%2Fdownload%2F21%2F&ei=u-YsVO7KG82yuATZ2oDQBg&usg=AFQjCNFR3HZbvCBeKUtTij49XTAvmcWcEw&sig2=DUdRLQDXq2cFqjaqkgjfaA
http://ijongblue.blogspot.com/2009/10/pengertian-primary-key-dan-foreign-key.html
http://datashow2.blogspot.com/

Komentar

  1. maaf saya telat ngoreksi karena waktu malam takbir gag ada warnet yang buka maklum lah didaerah saya akses internet agak terbatas......okey laporanmu udah aku baca

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Pengertian Bahasa Lisan dan Tulis

Python Menghitung Jarak