Hei hei heeeii.. Ketemu lagi sama laporan Desain Basis Data. Kita bakal ngebahas tentang Perintah Dasar SQL nih.
Dasar Teori
Relasi Antar Tabel
Apa itu Relasi Tabel ?
Relasi tabel adalah
hubungan antara beberapa tabel. Relasi antar tabel dihubungkan oleh primary key
dan foreign key. Primary key adalah suatu atribut yang tidak hanya mengindentifikasi
secara unik suatu kejadian tetapi juga mewakili setiap kejadian dari suatu
entitas.Sedangkan foregin key adalah atribut yang melengkapi relationship dan
menunjukan hubungan antara tabel induk dengan tabel anak. foreign key
ditempatkan pada tabel anak.
Untuk membuat relationship maka masing-masing tabel harus memiliki primary key dan foreign key untuk dapat menghubungkan antara tabel induk dengan tabel anak.
Untuk membuat relationship maka masing-masing tabel harus memiliki primary key dan foreign key untuk dapat menghubungkan antara tabel induk dengan tabel anak.
Misal kita mau buat
tabel barang dan macam_barang yang saling berelasi seperti berikut:
CREATE TABLE macam_barang (id_mac integer not null, nama_mac
varchar(15), guna_mac varchar(40), primary key (id_mac));
Setelah itu, buat tabel induknya. Jangan lupa tambahkan REFERNCES.
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));
Perintah INSERT
Perintah ini berfungsi untuk menambah informasi/data baru ke dalam tabel.
Sintaks dasarnya seperti berikut:
INSERT INTO nama_tabel (kolom) VALUES (value);
Perintah DELETE
Perintah delete berfungsi untuk menghapus informasi/data pada tabel. Ini nih sintaknya:
DELETE FROM nama_tabel;
Sintaks diatas digunakan untuk menghapus semua data pada tabel. Kalo
pengennya cuma menghapus data pada baris tertenntu, gini nih sintaksnya:
DELETE FROM nama_tabel WHERE nama_kolom=kata_kunci;
Perintah UPDATE
Perintah update ini, berfungsi untuk memperbaiki atau mengubah informasi/data
pada tabel. Sintaknya sebagai berikut:
UPDATE nama_tabel SET nama_kolom=value WHERE nama_kolom=kata_kunci;
Perintah SELECT
Perintah ini
berfungsi untuk menampilkan data dari tabel, sintaks dasarnya seperti berikut:
SELECT * FROM nama_tabel;
Sintaks diatas
digunakan untuk menampilkan semua data yang ada pada tabel. Kalo pengen nampilin
suatu kolom pada tabel tertentu aja bisa pake sintaks yang ini:
SELECT nama_kolom FROM nama_tabel;
Kalo cuma
pengen nampilin baris tertentu aja gimana?
Jangan
bingung.. tinggal tambah WHERE aja dibelakang sintaksnya kemudian isikan nama
kolom dan kata kuncinya.
SELECT nama_kolom FROM nama_tabel WHERE nama_kolom=kata_kunci;
Pengurutan Data
Pengurutan data ini menggunakan perintah ORDER BY. Perintah ini fungsinya buat mengurutkan data sesuai abjad dari atas ke bawah. Atau pengurutan angka dari atas ke bawah. Nih sintaksnya buat pengurutan data:SELECT * FROM nama_tabel ORDER BY nama_kolom;
Struktur perintah SQL untuk pengurutan berdasarkan kolom secara descending:
SELECT * FROM nama_tabel ORDER BY nama_kolom DESC;
Struktur perintah SQL untuk pengurutan berdasarkan kolom secara ascending: SELECT * FROM nama_tabel ORDER BY nama_kolom ASC;
Struktur perintah SQL untuk pengurutan berdasarkan nomor kolom:
SELECT * FROM nama_tabel ORDER BY nomor_kolom DESC;
Hasil Praktikum
Ini nih, hasil praktikum yang pake PosgreSQL:
Server [localhost]:
Database [postgres]: permata13650083
Port [5432]:
Username [postgres]:
Password for user postgres:
psql (9.3.5)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
permata13650083=# create table fakultas (id_fak integer not null, nama_fak varch
ar(20), primary key (id_fak));
CREATE TABLE
permata13650083=# create table mahasiswa (nim_mah integer not null, nama_mah var
char(20), alamat_mah text, id_fak integer not null references fakultas, primary
key (nim_mah, id_fak));
CREATE TABLE
permata13650083=# \d mahasiswa
Table "public.mahasiswa"
Column | Type | Modifiers
------------+-----------------------+-----------
nim_mah | integer | not null
nama_mah | character varying(20) |
alamat_mah | text |
id_fak | integer | not null
Indexes:
"mahasiswa_pkey" PRIMARY KEY, btree (nim_mah, id_fak)
Foreign-key constraints:
"mahasiswa_id_fak_fkey" FOREIGN KEY (id_fak) REFERENCES fakultas(id_fak)
permata13650083=# \d fakultas
Table "public.fakultas"
Column | Type | Modifiers
----------+-----------------------+-----------
id_fak | integer | not null
nama_fak | character varying(20) |
Indexes:
"fakultas_pkey" PRIMARY KEY, btree (id_fak)
Referenced by:
TABLE "mahasiswa" CONSTRAINT "mahasiswa_id_fak_fkey" FOREIGN KEY (id_fak) RE
FERENCES fakultas(id_fak)
permata13650083=# alter table mahasiswa add column no_telp integer;
ALTER TABLE
permata13650083=# insert into fakultas values (1, 'SAINTEK');
INSERT 0 1
permata13650083=# insert into fakultas values (2, 'PSIKOLOGI');
INSERT 0 1
permata13650083=# select * from fakultas;
id_fak | nama_fak
--------+-----------
1 | SAINTEK
2 | PSIKOLOGI
(2 rows)
permata13650083=# insert into mahasiswa values (12, 'Edi', 'Malang', 1, 08564534
28);
INSERT 0 1
permata13650083=# insert into mahasiswa values (13, 'Sinta', 'Jogja', 1, 0813347
565);
INSERT 0 1
permata13650083=# insert into mahasiswa values (14, 'Luki', 'Ponorogo', 2, 08257
65687);
INSERT 0 1
permata13650083=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
12 | Edi | Malang | 1 | 856453428
13 | Sinta | Jogja | 1 | 813347565
14 | Luki | Ponorogo | 2 | 825765687
(3 rows)
permata13650083=# select nim_mah, nama_mah from mahasiswa;
nim_mah | nama_mah
---------+----------
12 | Edi
13 | Sinta
14 | Luki
(3 rows)
permata13650083=# select * from mahasiswa where nim_mah=13;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
13 | Sinta | Jogja | 1 | 813347565
(1 row)
permata13650083=# select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas wh
ere mahasiswa.id_fak=fakultas.id_fak;
nim_mah | nama_mah | nama_fak
---------+----------+-----------
12 | Edi | SAINTEK
13 | Sinta | SAINTEK
14 | Luki | PSIKOLOGI
(3 rows)
permata13650083=# delete from mahasiswa where nim_mah=13;
DELETE 1
permata13650083=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
12 | Edi | Malang | 1 | 856453428
14 | Luki | Ponorogo | 2 | 825765687
(2 rows)
permata13650083=# update mahasiswa set alamat_mah='Solo', no_telp=0857688788 whe
re nim_mah=12;
UPDATE 1
permata13650083=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
14 | Luki | Ponorogo | 2 | 825765687
12 | Edi | Solo | 1 | 857688788
(2 rows)
permata13650083=# select * from mahasiswa order by nim_mah;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
12 | Edi | Solo | 1 | 857688788
14 | Luki | Ponorogo | 2 | 825765687
(2 rows)
permata13650083=# select * from fakultas order by 2 asc;
id_fak | nama_fak
--------+-----------
2 | PSIKOLOGI
1 | SAINTEK
(2 rows)
permata13650083=# select* from mahasiswa, fakultas;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | id_fak | nama_fak
---------+----------+------------+--------+-----------+--------+-----------
14 | Luki | Ponorogo | 2 | 825765687 | 1 | SAINTEK
12 | Edi | Solo | 1 | 857688788 | 1 | SAINTEK
14 | Luki | Ponorogo | 2 | 825765687 | 2 | PSIKOLOGI
12 | Edi | Solo | 1 | 857688788 | 2 | PSIKOLOGI
(4 rows)
permata13650083=#
Database [postgres]: permata13650083
Port [5432]:
Username [postgres]:
Password for user postgres:
psql (9.3.5)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
permata13650083=# create table fakultas (id_fak integer not null, nama_fak varch
ar(20), primary key (id_fak));
CREATE TABLE
permata13650083=# create table mahasiswa (nim_mah integer not null, nama_mah var
char(20), alamat_mah text, id_fak integer not null references fakultas, primary
key (nim_mah, id_fak));
CREATE TABLE
permata13650083=# \d mahasiswa
Table "public.mahasiswa"
Column | Type | Modifiers
------------+-----------------------+-----------
nim_mah | integer | not null
nama_mah | character varying(20) |
alamat_mah | text |
id_fak | integer | not null
Indexes:
"mahasiswa_pkey" PRIMARY KEY, btree (nim_mah, id_fak)
Foreign-key constraints:
"mahasiswa_id_fak_fkey" FOREIGN KEY (id_fak) REFERENCES fakultas(id_fak)
permata13650083=# \d fakultas
Table "public.fakultas"
Column | Type | Modifiers
----------+-----------------------+-----------
id_fak | integer | not null
nama_fak | character varying(20) |
Indexes:
"fakultas_pkey" PRIMARY KEY, btree (id_fak)
Referenced by:
TABLE "mahasiswa" CONSTRAINT "mahasiswa_id_fak_fkey" FOREIGN KEY (id_fak) RE
FERENCES fakultas(id_fak)
permata13650083=# alter table mahasiswa add column no_telp integer;
ALTER TABLE
permata13650083=# insert into fakultas values (1, 'SAINTEK');
INSERT 0 1
permata13650083=# insert into fakultas values (2, 'PSIKOLOGI');
INSERT 0 1
permata13650083=# select * from fakultas;
id_fak | nama_fak
--------+-----------
1 | SAINTEK
2 | PSIKOLOGI
(2 rows)
permata13650083=# insert into mahasiswa values (12, 'Edi', 'Malang', 1, 08564534
28);
INSERT 0 1
permata13650083=# insert into mahasiswa values (13, 'Sinta', 'Jogja', 1, 0813347
565);
INSERT 0 1
permata13650083=# insert into mahasiswa values (14, 'Luki', 'Ponorogo', 2, 08257
65687);
INSERT 0 1
permata13650083=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
12 | Edi | Malang | 1 | 856453428
13 | Sinta | Jogja | 1 | 813347565
14 | Luki | Ponorogo | 2 | 825765687
(3 rows)
permata13650083=# select nim_mah, nama_mah from mahasiswa;
nim_mah | nama_mah
---------+----------
12 | Edi
13 | Sinta
14 | Luki
(3 rows)
permata13650083=# select * from mahasiswa where nim_mah=13;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
13 | Sinta | Jogja | 1 | 813347565
(1 row)
permata13650083=# select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas wh
ere mahasiswa.id_fak=fakultas.id_fak;
nim_mah | nama_mah | nama_fak
---------+----------+-----------
12 | Edi | SAINTEK
13 | Sinta | SAINTEK
14 | Luki | PSIKOLOGI
(3 rows)
permata13650083=# delete from mahasiswa where nim_mah=13;
DELETE 1
permata13650083=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
12 | Edi | Malang | 1 | 856453428
14 | Luki | Ponorogo | 2 | 825765687
(2 rows)
permata13650083=# update mahasiswa set alamat_mah='Solo', no_telp=0857688788 whe
re nim_mah=12;
UPDATE 1
permata13650083=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
14 | Luki | Ponorogo | 2 | 825765687
12 | Edi | Solo | 1 | 857688788
(2 rows)
permata13650083=# select * from mahasiswa order by nim_mah;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
---------+----------+------------+--------+-----------
12 | Edi | Solo | 1 | 857688788
14 | Luki | Ponorogo | 2 | 825765687
(2 rows)
permata13650083=# select * from fakultas order by 2 asc;
id_fak | nama_fak
--------+-----------
2 | PSIKOLOGI
1 | SAINTEK
(2 rows)
permata13650083=# select* from mahasiswa, fakultas;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | id_fak | nama_fak
---------+----------+------------+--------+-----------+--------+-----------
14 | Luki | Ponorogo | 2 | 825765687 | 1 | SAINTEK
12 | Edi | Solo | 1 | 857688788 | 1 | SAINTEK
14 | Luki | Ponorogo | 2 | 825765687 | 2 | PSIKOLOGI
12 | Edi | Solo | 1 | 857688788 | 2 | PSIKOLOGI
(4 rows)
permata13650083=#
Sekarang kita coba buat pake MySQL.
Pertama, login dan konek ke database yang mau dipakek.
Buat tabel dulu seperti berikut:
Buat tabel anaknya dulu, yaitu tabel fakultas.
Kemudian buat tabel induknya (tabel mahasiswa). 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 : 08133475675
Fakultas : SAINTEK
Nim : 14
Nama : Luki
Alamat : Ponorogo
No.telp : 082576568798
Fakultas : PSIKOLOGI
Kita tambah kolom nomor telpon
dulu
Kemudian isi tabel fakultas.Dan isi tabel mahasiswa.
Tampilkan data mahasiswa berupa nim dan nama.
Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.
Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
Hapus data mahasiswa yang memiliki nim : 13
Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12
Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa.
Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.
Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.
Tampilkan seluruh mahasiswa yang
berada di fakultas “SAINTEK”
Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.
Hapus data fakultas “SAINTEK”.
Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.
Hapus data fakultas “SAINTEK”.
Untuk menghapus data di fakultas, kita harus menghapus relasi datanya yang ada di tabel induk terlebih dahulu.
Evaluasi Perbedaan DBMS MySQL dan PosgreSQL
Dari hasil praktikum ini,
ternyata hampir semua dasar-dasar perintah di PosgreSQL dan MySQL sama. Hanya
saja beberapa commandnya berbeda:
Kategori Perbedaan
|
PosgreSQL
|
MySQL
|
Koneksi
ke database
|
\c
nama_database
|
USE
nama_database
|
Menampilkan
struktur kolom pada tabel tertentu
|
\d
nama_tabel
|
SHOW
COLUMN FROM nama_tabel;
|
Pekerjaan Rumah
Tugas rumah kali ini adalah
menjelaskan
evaluasi dari DBMS MySQL dan PostgreSQL berdasarkan tugas praktikum yang
meliputi perbedaan atau kesamaan, kelebihan atau kekurangan.
Perbedaan
dari kedua DBMS (MySQL dan PosgreSQL) sudah dijelaskan diatas. Semua sintaks MySQL
dan PosgreSQL meliputi relasi antar tabel, pengisian data pada tabel, menghapus dan memodifikasi data pada tabel, serta menampilkan serta mengurutkan data yang digunakan dalam praktikum ini sama. Hanya commandnya aja
yang beda. Kalo menurut ana sih, command dari PosgreSQL lebih sederhana,
sehingga lebih mudah dan lebih cepat buat pengaksesannya.
Kesimpulan
Dari
praktikum yang membahas perintah dasar SQL ini, dapat diambil kesimpulan
sebagai berikut:
Untuk
dapat merelasikan dua tabel digunakan REFERENCES.
Mengisi
data pada tabel menggunakan Perintah INSERT
INSERT INTO nama_tabel (kolom) VALUES (value);
Menghapus
data pada tabel menggunakan Perintah DELETE
DELETE FROM nama_tabel;
Modifikasi
data pada tabel menggunakan Perintah UPDATE
UPDATE nama_tabel SET nama_kolom=value WHERE nama_kolom=kata_kunci
Menampilkan
data tabel menggunakan Perintah SELECT
SELECT * FROM nama_tabel;
Sekian dulu yaa laporan praktikum Perintah Dasar SQL ini, makasih buat yang udah baca. Semoga tulisan ini bermanfaat. Kalau ada kurang-kurangnya, komen-komen di bawah yaa..
Modu Praktikum Desain Basis Data.
http://dwirandyherdinanto.blogspot.com/2014/01/membuat-relasi-tabel-di-mysql.html.
http://siteblogforu.blogspot.com/2013/09/pengertian-dan-perintah-sql.html.
0 komentar:
Posting Komentar