Senin, 06 Oktober 2014

Laporan Praktikum 3 Perintah dasar SQL

 
NIM : 13650118

Perintah Dasar SQL

A.    Dasar Teori
SQL kependekan dari Structured Query Language, adalah bahasa standar yang digunakan untuk berkomunikasi dengan database relasional. Karena merupakan bahasa standar untuk mengakses database relasional, maka perintah-perintah dalam SQL dapat diterapkan untuk banyak database management system (DBMS). Hampir semua DBMS seperti MySQL, Microsoft SQL Server, Oracle, DB2, PostgreSQL dan lain sebagainya mengenal dan mengerti SQL. Perintah standar SQL pada beberapa DBMS hampir sama, meskipun masing-masing mungkin juga memiliki "dialect of SQL" sendiri yang akan memberikan tambahan atau perluasan pada perintah-perintah standar tersebut
Perintah-perintah standar dalam SQL dapat diklasifikasikan menjadi empat bagian yaitu Data Definition Language (DDL), Data Manipulation Language (DML), Data Query Language (DQL) dan Data Control Language (DCL).
  • Data Definition Language (DDL) adalah perintah-perintah SQL yang digunakan untuk mendefinisikan struktur dan skema database. Perintah-perintah SQL yang masuk klasifikasi ini antara lain adalah CREATE (membuat obyek di database), ALTER (merubah struktur database), DROP (menghapus obyek database), TRUNCATE (menghapus semua record dari sebuah tabel termasuk semua ruang yang dialokasikan), COMMENT (menambahkan komentar ke kamus data | data dictionary) dan RENAME (memberi nama ulang sebuah obyek).
  • Data Manipulation Language (DML) adalah perintah-perintah SQL yang digunakan untuk memanipulasi data di dalam obyek database. Perintah-perintah SQL yang masuk klasifikasi ini antara lain adalah SELECT (mengambil data dari database), INSERT (memasukkan data ke tabel), UPDATE (memperbarui data yang ada di sebuah tabel), DELETE (menghapus semua record dari sebuah tabel), MERGE-UPSERT (operasi insert dan update), CALL (memanggil PL/SQL atau subprogram Java), EXPLAIN PLAN (menjelaskan jalur akses data) dan LOCK TABLE (mengontrol konkurensi).
  • Data Control Language (DCL) adalah perintah-perintah SQL yang digunakan untuk mengontrol data dan server database. Perintah-perintah SQL yang masuk klasifikasi ini antara lain adalah GRANT (memberikan hak akses pengguna ke database) dan REVOKE (mencabut hak akses yang diberikan dengan perintah GRANT).
  • Transaction Control Language (TCL) adalah perintah-perintah SQL yang digunakan untuk mengontrol pemrosesan transaksional di dalam database. Perintah-perintah SQL yang masuk klasifikasi ini antara lain adalah COMMIT (menerapkan transaksi dengan menyimpan perubahan database), ROLLBACK (mengembalikan database ke kondisi awal sejak terakhir COMMIT), SAVEPOINT (mengidentifikasi titik dalam transaksi yang nanti bisa diputar kembali) dan SET TRANSACTION (Mengubah opsi transaksi seperti tingkat isolasi dan segmen rollback apa yang digunakan).
Pengertian Primary key Dan Foreign key.
. “Primary Key” adalah field kunci / utama dari suatu tabel yang menunjukkan bahwa field yang menjadi kunci tersebut tidak bisa diisi dengan data yang sama, / dengan kata lain Primary key menjadikan tiap record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik).
Primary Key berguna pada saat menampilkan record hasil pencarian (searching), pengurutan (sorting), dan berbagai operasi query lainnya. Dengan memilih rimary key, proses pencarian, pengurutan dan proses penampilan data dan lainnya berlangsung lebih cepat.
“Foreign key” adalah satu attribute yang melengkapi satu relationship yang menunjukan ke induknya.. Satu tabel tidak boleh memiliki lebih dari satu primary key, karena primary key merupakan variable data yang menjadi identitas utama dari tabel tersebut.
Hubungan Antar Tabel (Reference)
Dalam hal hubungan antar tabel, ada beberapa syarat yang harus terpenuhi seperti, antara tabel yang ingin dihubungkan 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. Misalnya, terdapat tabel barang dan macam_barang. Berikut query kedua tabel tersebut :
 create table macam_barang (id_mac integer not null, nama_mac varchar(15), guna_mac varchar(40), primary key (id_mac));
 create table barang (id_bar integer not null, nama_bar varchar(15), id_mac integer not null references macam_barang, primary key (id_bar, id_mac));
Atau ketika kita lupa memberikan references pada tabel macam barang kita dapat memberikan query sebagai berikut :
 alter table barang add constraint relasi_barang foreign key (id_mac) references macam_barang (id_mac) 
Memasukkan Data
Sebuah data dapat dimasukkan ke dalam tabel menggunakan perintah INSERT. Namun hal yang perlu diperhatikan yaitu struktur tabel yang akan digunakan untuk memasukkan data. Sebagai contoh memasukkan data ke dalam tabel dengan nama identitas :
 
insert into identitas values (1, ’wahyu’ , ’1992-07-23’ , false , ’programer’);
Berikut penjelasan :
- Kolom pertama berisikan (1), karena tipe datanya adalah integer maka tanda petik tidak digunakan.
- Kolom kedua („wahyu‟) dan kelima („programer‟), karena tipe datanya varchar maka tanda petik diperlukan, bila tanpa ada tanda petik maka dianggap salah.
- Kolom ketiga (‟1992-07-23‟), tipe data Date dianggap sebagai sebuah string sehingga harus menggunakan tanda petik.
- Kolom keempat (false), tipe data kolom ini Boolean yang hanya mengijinkan inputan true atau false dan tidak perlu tanda petik.

Menampilkan data
Dalam database, perintah SQL untuk menampilkan data sebuah tabel bisa menggunakan SELECT. Berikut struktur SQL untuk penampilan data berdasarkan kolom tertentu :
Select nama_kolom from nama_tabel;
Jika ingin menampilkan keseluruhan kolom dan keseluruhan baris suatu tabel bisa mengganti nama_kolom menggunakan tanda asterisk (*).
Kemudian, bila ingin menampilkan berdasarkan baris tertentu bisa menggunakan perintah WHERE yang diletakkan dibelakang nama tabel dan isikan nama kolom beserta kata kunci sebagai dasar atau syarat dari pencarian baris. Untuk lebih jelasnya berikut struktur perintah SQL nya :
select nama_kolom from nama_tabel where nama_kolom = kata kunci;
Apabila ingin menampilkan data dari lebih dari satu tabel, struktur SQL nya terdapat sedikit perbedaan. Misalnya memakai tabel yang telah dibuat pada praktikum ke-2 yaitu mahasiswa dan fakultas (Dengan syarat adanya relasi antara kedua tabel tersebut). Berikut Struktur SQL nya :
select nama_kolom, nama_kolom, nama_kolom, nama_kolom from nama_tabel_1, nama_tabel_2 where nama_tabel_1.nama_kolom = nama_tabel_2.nama_kolom;

Menghapus Data
Pada database PostgreSQL, DELETE digunakan untuk menghapus data pada sebuah tabel. Berikut Struktur yang digunakan :
delete from namatabel ;
Arti dari struktur diatas yaitu menghapus semua baris data dari nama tabel yang tertulis. Namun bisa juga digunakan penghapusan berdasarkan spesifikasi baris atau baris tertentu saja. Berikut Strukturnya :
delete from nama tabel where namakolom = katakunci;

Modifikasi Data
Dalam memodifikasi database bisa menggunakan perintah UPDATE. Berikut contoh struktur SQL untuk memodifikasi data pada kolom tertentu berdasarkan baris tertentu :
update namatabel set namakolom = isidata where namakolom = katakunci;

Pengurutan Data
Maksud dari pengurutan data dengan perintah ORDER BY adalah jika data sebuah tabel diurutkan dengan perintah tersebut, maka data tadi akan diurutkan dari atas ke bawah berdasarkan abjad. Hal ini juga berlaku jika data yang ada dalam bentuk angka. Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom :
select * from nama_tabel order by nama_kolom;
Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom secara descending:
select * from nama_tabel order by nama_kolom desc;
Berikut struktur perintah SQL untuk pengurutan berdasarkan beberapa kolom :
select * from nama_tabel order by nama_kolom asc, nama_kolom desc;
Berikut struktur perintah SQL untuk pengurutan berdasarkan nomor kolom :
select * from nama_tabel order by nomor_kolom desc;
*catatan : nomor_kolom dimulai dari kiri, misal terdapat kolom nim, nama. Maka jika ingin mengurutkan berdasarkan nama kita perlu mengganti nomor_kolom menjadi 2.


B. HASIL PRAKTIKUM DAN TUGAS RUMAH
HASIL PRAKTIKUM
1.      PostgreSQL

a.       Petama kita masuk dulu dalam akun Postgree SQL, kemudian gunakan SQL Shell


b.      Silahkan hubungkan SQL shell dengan salah satu database . saya ,membuat database baru. Berhubung ini merupakan praktikum ke 3 , jadi saya buat database dengan nama praktikum_3.
Cara mengkoneksikan yaitu : \c nama database;
Sqlshell siap digunakan, berikut perintah yang harus dikerjakan.
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

c.       Setelah terkoneksi kemudian kita buat terlebih dahulu tabel fakultas , karena kita akan merelasikan tabel fakultas , query nya yaitu :
Create table fakultas(id_fak integer not null, nama_fak varchar(25), primary key(id_fak));
Setelah berhasil maka akan muncul alter table
dan kita lihat tabel fakultas yang telah kita buat dengan perintah : \d fakultas;
 

Setelah itu kita masukkan data yang ada di dalam tabel fakultas, kita inisialisasikan 1 sebagai fakultas SAINTEK, dan 2 sebagai fakultas PSIKOLOGI .
Query nya : insert into fakultas values(1,’SAINTEK’);
                    insert into fakultas values(2,’PSIKOLOGI’);
 
Berikut isi dari tabel fakultas :
Ok fix tabel fakultas telah selesai .
Selanjutnya kita buat tabel mahasiswa  , yang terdiri dari beberapa field diantaranya yaitu : nim_mah,nama_mah,alamat mah,no_telp dan fakultas . Kemudian kita relasikan dengan tabel fakultas .
Berikut query nya : create table mahasiswa(nim_mah integer not null, nama_mah varchar(30), alamat_mah varchar(25), no_telp varchar(12),id_fak integer not null references fakultas, primary key(nim_mah,id_fak));
Memasukkan data ,
Setelah selesai membuat tabel selanjutnya kita akan memasukkan data yang ada di dalam tabel mahasiswa. kita masukkan data mahasiswa nya satu persatu , dengan menggunakan perintah insert ke tabel mahasiswa
Berikut Querynya:
Insert into mahasiswa values (12, ‘Edi’, ‘Malang’, ‘0856453428’,1);
Insert into mahasiswa values (13, ‘Sinta’, ‘Jogja’, ‘0813347565’,1);
Insert into mahasiswa values (14, ‘Luki’, ‘Ponorogo’, ‘0825765687’,2);
 
Inilah data dari tabel mahasiswa yang telah kita masukkan : 
query nya : select * from mahasiswa;
 
2.      Tampilkan data mahasiswa berupa nim dan nama :
Querinya : select * nim_mah, nama_mah from mahasiswa;
3.      Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.
Query nya : Select * from mahasiswa where nim_mah =12;
4.      Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
Querynya : Select nim_mah, nama_mah,nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
5.      Hapus data mahasiswa yang memiliki nim : 13
Query nya : delete from mahasiswa where nim_mah=13;
6.      Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12
Query nya: update mahasiswa set alamat=’solo’,no_telp=’0857688788’ where nim_mah=12;
 
7.      Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa.
Query nya: select * from mahasiswa order by nim_mah desc;
Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.
Query nya : select* from fakultas order by 2 asc;
8.      Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya
Query nya : select * from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
 

9.      Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.
Query nya : select * from mahsiswa,fakultas where mahasiwa.id_fak= fakultas.id_fak and nama_fak=’SAINTEK’;
 
10.  Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.
Select * from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak and nama_fak!=’SAINTEK’;
11. Hapus data fakultas “SAINTEK”.
Karena tabel mahasiswa dengan tabel fakultas berelasi , maka kita harus menghapus tabel mahasiswa terlebih dahulu. Karena tabel fakultas merupakan induknya.
Berikut query nya : delete* from mahasiswa where id_fak=1;
       delete* from fakultas where id_fak=1;
Selesai untuk yang menggunakan PostgreSQL, selanjutnya menggunakan mysql.. ok capcussss……

MY SQL : 
 
1.      Pertama masuk dulu  ke cmd, kemudian aktifkan my sql, setelah itu lakukan koneksi dengan mysql .
Caranya : kita cari instalasi dari xampp , kemudian kita copy k cmd .                      
berikut  : cd C:\xampplite\mysql\bin
                mysql –u root
 
Maka cmd kita telah terhubung dengan mysql . selanjutnya saya membuat database baru ,karena ini merupakan praktikum yang ke 3 , jadi saya beri nama praktikum_3.
 caranya : create database praktikum_3;
Kemudian kita gunakan database tersebut.
Caranya : use praktikum_3 ;

 


Ok sekarang kita tinggal membuat table nya ,

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 kali kita harus membuat tabel fakultas dulu, karena tabel fakultas akan kita relasikan dengan tabel mahasiswa. 
Query nya :
Create table fakultas(id_fak integer not null, nama_fak varchar(25), primary key(id_fak));
Kita tampilkan tabel yang telah kita buat, : show tables;

 
Setelah itu kita masukkan data pada kolom nama_ fak , kita inisialisasikan  1 merupakan fakultas SAINTEK , dan 2 merupakan fakultas PSIKOLOGI .
Kita menggunakan perintah  insert into fakultas values.
Query nya :    insert into identitas values (1,’SAINTEK’);
                        insert into identitas values(2,’PSIKOLOGI’);
kemudian tampilkan : select * from fakultas;
 
 Tabel fakultas telah selesai .
Selanjutnya ,kita buat tabel mahasiswa . karena tabel mahasiswa berelasi dengan tabel fakultas , maka kita harus mereference tabel fakultas dengan tabel mahasiswa.
Pada tabel mahasiswa terdiri dari beberapa field. Diantaranya : nim_mah, nama_mah, alamat_mah,no_telp dan id_fak.
Query nya : create table mahasiswa(nim_mah integer not null, nama_mah varchar(30), alamat_mah varchar(25), no_telp varchar(12),id_fak integer not null references fakultas, primary key(nim_mah,id_fak));
 
Setelah selesai membuat tabel selanjutnya kita akan memasukkan data yang ada di dalam tabel mahasiswa. kita masukkan data mahasiswa nya satu persatu , dengan menggunakan perintah insert ke tabel mahasiswa
Berikut Querynya:
Insert into mahasiswa values (12, ‘Edi’, ‘Malang’, ‘0856453428’,1);
Insert into mahasiswa values (13, ‘Sinta’, ‘Jogja’, ‘0813347565’,1);
Insert into mahasiswa values (14, ‘Luki’, ‘Ponorogo’, ‘0825765687’,2);
Setelah berhasil, kemudian kita cek tabel mahasiswa , dengan menggunakan perintah select * from mahasiswa.
Berikut isi dari tabel mahasiswa.

 
2.      Tampilkan data mahasiswa berupa nim dan nama :
Querinya : select * nim_mah, nama_mah from mahasiswa;
 
3.      Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.
Query nya : Select * from mahasiswa where id_fak=12;
 

4.      Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
Querynya : Select nim_mah, nama_mah,nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
5.      Hapus data mahasiswa yang memiliki nim : 13
Query nya : delete from mahasiswa where nim_mah=13;
6.      Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12
Query nya: update mahasiswa set alamat=’solo’,no_telp=’0857688788’ where nim_mah=12;

7.      Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa.
Query nya: select * from mahasiswa order by nim_mah desc;

Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.
Query nya : select* from fakultas order by 2 asc;
 
8.      Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya
Query nya : select * from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;

 

9.      Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.
Query nya : select * from mahsiswa,fakultas where mahasiwa.id_fak= fakultas.id_fak and nama_fak=’SAINTEK’;
 
10.  Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.
Select * from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak and nama_fak!=’SAINTEK’;
 
11. Hapus data fakultas “SAINTEK”.
Karena tabel mahasiswa dengan tabel fakultas berelasi , maka kita harus menghapus tabel mahasiswa terlebih dahulu. Karena tabel fakultas merupakan induknya.
Berikut query nya : delete* from fakultas where id_fak=1;
       delete* from  mahasiswa where id_fak=1;

 
Berikut data dari tabel akhir pada tabel mahasiswa dan tabel fakultas
Tugas rumah
Dalam penggunaan PostgreSql dan mySql dari no 1 - 11dalam hal perintah query nya sama sekali tidak ada perbedaan, mungkin yang berbeda hanya pada saat pendeklarasian. Jika pada postgreSql jika kita ingin menggunakan database yang kita inginkan cukup tambahkan perintah \c nama tabel. Sedangkan dalam mysql use nama tabel. Setelah telah terkoneksi kita dapat melanjutkan soal yang di perintahkan

Evaluasi Perbandingan dari DBMS MySQL dan PostgreSQL
a.      Perbedaan dan kesamaan Antara MySQL dengan PostgreSQL:
-           dalam MySQL tidak memerlukan tanda titik koma pada akhir query sedangkan dalam PostgreSQL harus dan wajib pakai titik koma.
-          apabila kita menampilakn data pada Mysql dengan  menyebutkan kedua nama tabel maka yang keluar adalah field dari kedua tabel sehingga akan adanya data yang sama muncul.

Kelebihan dan kekurangan :
Kelebihan dalam postgreeSql yaitu kita sudah masuk langsung dalam postgress, kalau mySql kita harus  memasukkan query nya terlebih dahulu . dan dalam penggunaannya lebih mudah postgreSql dari pada mySql karena postgresql lebih simple dan mudah.
Kesimpulan
Setelah kita melakukan praktikum struktur dasar sql, kita dapat mengetahui perbedaan antara primary key dan foreign key itu seperti apa, dan dalam merelasikannya gimana.
Primary key adalah atribut (field) yang dipilih untuk menentukan struktur storage pada organisasi file multi key, adapun key lainnya disebut dengan secondary key. Pengertian lainya Primary Key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel. Nilai dari primary key adalah unik.
kemudian dalam hal membuat,menghapus,memodifikasi data,dll kita telah mengetahuinya baik dalam mySql  maupun Postgree . dan juga pendeklarasian antara kedua sql tidak berebeda jauh.
Saran dan kritik
Dalam praktikum kali ini , lebih mudah pekerjaannya, karena perintah query baik dari postgreSql maupun MySql nyaris sama semua dari no 1-11. Jadi kita tidak terlalu susah dalam mengafalkan query – query nya.Tetapi jangan menyepelekan gitu aja, kita tetep harus mencoba sampai bisa mahir, hehe
Daftar pustaka
Modul praktikum 3
http://www.termasmedia.com/database/mysql/416-mysql-klasifikasi-perintah-perintah-dasar-dalam-sql.html 
http://ramadanifitriana.blogspot.com/2013/04/pengertian-primary-key-dan-foreign-key.html






Tidak ada komentar:

Posting Komentar