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