Laporan Praktikum Desain Basis Data – BAB III (Perintah Dasar SQL)

1. Dasar Teori

DBMS merupakan perantara bagi pemakai dengan basis data dalam disk. Cara berinteraksi pemakai degan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu dapat kita sebut sebagai bahasa basis data yang terdiri dari sejumlah perintah (statement) yang diformulasikan dan dapat dikenali/diproses oleh DBMS untuk melakukan suatu aksi tertentu. Contoh – contoh bahasa basis data adalah SQL, dBase, QUEL, dan sebagainya. SQL merupakan bahasa basis data yang paling populer saat ini.

Sebuah bahasa basis data biasanya dapat dipilah ke dalam 3 jenis, yaitu :

a. DDL (Data Definition Language)

b. DML (Data Manipulation Language)

c. DCL (Data Control Language)

1.1 Data Definition Language (DDL)

Struktur basis data yang menggambarkan skema basis data secara keseluruhan dan didesain dengan bahasa khusus yang disebut Data Definiton Language (DDL). Dengan bahasa inilah kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel, dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut Kamus Data (Data Dictionary.

Kamus Data menupakan suatu metadata (super-data) yaitu data yang mendeskripsikan data sesungguhnya. Kamus Data ini akan selalu diakses dalam suatu operasi basis data sebelum suatu file data yang sesungguhnya diakses.

1.2 Data Manipulation Language (DML)

DML adalah bahasa yang memperolehkan pemakai untuk akses atau manipulasi data sebagai yang telah diorganisasikan sebelumnya dalam model data yang tepat. Manipulasi data dapat berupa :

a. Penambahan data baru ke suatu basis data

b. Penghapusan data dari suatu basis data

c. Pengubahan data di suatu basis data

d. Pengambilan informasi yang tersimpan di database

Secara dasar ada dua tipe DML, yaitu Procedural dan Non-procedural.

a. Procedural, yang membutuhkan pemakai untuk menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya.

b. Non-procedural, yang membutuhkan pemakai untuk menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.

Paket bahasa Procedural DML adalah dBase III, FoxBase, sedangkan Non-procedural DML diberi nama SQL (Structural Query Language), QBE (Query By Example).

1.3 Data Control Language (DCL)

DCL adalah perintah-perintah yang digunakan untuk membantu mengontrol keamanan setiap database atau sebagian isi dari database dengan membuat hak – hak akses tertentu bagi setiap user.

Perintah tersebut adalah :

a. Grant
b. Revoke
1.4 Perintah – perintah yang digunakan masing – masing tipe bahasa basis data
Berikut ini adalah daftar perintah DDL, DML, DCL, TCL berikut contoh penggunaannya:
Perintah yang digunakan DDL adalah :
    • CREATE – untuk membuat object database, misalnya CREATE TABLE mahasiswa; (; bertujuan menutup command, setiap kali menjalankan pl/sql).
      • create table MAHASISWA(
        NPM number(8) NOT NULL,
        NAMA varchar(30) NOT NULL,
        KELAS varchar(6) NOTNULL,
        constraint pk_mahasiswa primary key(NPM)
        );
    • ALTER – menambah/mengubah struktur tabel database
      • alter table MAHASISWA
        modify KELAS char(6);
  • DROP – menghapus object database (perintah ini menghapus tabel yg tidak/belum ada relasinya)
    • drop table MAHASISWA;
  • TRUNCATE – menghapus/membersihkan seluruh tuple/record dari tabel
    • truncate table MAHASISWA;
  • COMMENT – menambah komentar di tabel tertentu
  • RENAME – untuk mengganti nama pada suatu object
Perintah yang digunakan DML adalah :
  • SELECT – mengambil data dari database
    • select * from MAHASISWA;
  • INSERT – memasukkan data kedalam database
    • insert into pembelian values (‘001′,’ballpoint’,’4′);
  • UPDATE – memperbaharui (update) data dalam tabel
    • update pembelian set jumlah=’4′ where id=’1′;
  • DELETE – menghapus sebagian/seluruh tuple/record dari tabel
    • delete from PEMBELIAN where id=’4′;
  • MERGE – UPSERT operation (insert or update)
  • CALL – call a PL/SQL or Java subprogram
  • EXPLAIN PLAN – explain access path to data
  • LOCK TABLE – control concurrency
Perintah yang digunakan DCL adalah :
  • GRANT – memberikan user hak akses ke database
  • REVOKE – menarik hak akses dari database dengan perintah GRANT
  • DENY – untuk melarang hak akses ke database

Aturan Penulisan Perintah SQL

  1. Perintah dapat ditulis dalam huruf besar maupun kecil.
  2. Setiap perintah diakhiri dengan tanda titik koma “ ; “
  3. Perintah dapat ditulis satu atau beberapa baris untuk memberikan komentar pada perintah SQL. Gunakan tanda minus “ – – “ untuk  komentar 1 baris, atau di antara tanda “ \* “ dan “ *\ “ untuk komentar beberapa baris.

Perintah Dasar SQL dengan Fungsinya

1. Create Database
Digunakan untuk membuat database baru.
Syntax dasar:
CREATE DATABASE database_nama
Contoh:
CREATE DATABASE databaseku

2. Create Table
Digunakan untuk membuat tabel data baru dalam sebuah database.
Syntax dasar:
CREATE TABLE
(
Column_name1 table_nama data_type
Column_name2 table_nama data_type
Column_name3 table_nama data_type
)
Contoh:
CREATE TABLE bukutamu
(
Id int,
Nama varchar (255),
Email varchar(50),
Kota varchar(255)
)

3. Select
Digunakan untuk memilih data dari table database.
Syntax dasar:
SELECT column_name(s)
FROM table_name
Atau
SELECT * FROM table_name
Contoh 1:
SELECT nama,email FROM bukutamu
Contoh 2:
SELECT * FROM bukutamu

4. Select Distinct
Digunakan untuk memilih data-data yang berbeda (menghilangkan 
duplikasi) dari 
sebuah table database.
Syntax dasar:
SELECT DISTINCT column_name(s)
FROM table_name
Contoh:
SELECT DISTINCT kota FROM bukutamu

5. Where
Digunakan untuk memfilter data pada perintah Select
Syntax dasar:
SELECT column name(s)
FROM table_name
WHERE column_name operator value
Contoh:
SELECT * FROM bukutamu
WHERE kota=’PAMULANG’

6. Order By
Digunakan untuk mengurutkan data berdasarkan kolom (field) 
tertentu. Secara default, urutan tersusun secara ascending 
(urut kecil ke besar). Anda dapat mengubahnya menjadi 
descending (urut besar ke kecil) dengan menambahkan
perintah DESC.
Syntax dasar:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
Contoh 1:
SELECT * FROM bukutamu
ORDER BY nama
Contoh 2:
SELECT * FROM bukutamu
ORDER BY id DESC
7. Insert Into
Digunakan untuk menambahkan data baru di tabel database.
Syntax dasar :
INSERT INTO table_name
VALUES (value1,value2,value3, . . .)
Atau
INSERT INTO table_name (column1,column2,column3, . . .)
VALUES (value1,value2,value3, . . .)
Contoh 1:
INSERT INTO bukutamu
VALUES (1,’Arlicious’,’arly@arlicious.com’,’Tangerang’)
Contoh 2:
INSERT INTO bukutamu (id,nama,email,kota)
VALUES (1,’Arlicious’,’arly@arlicious.com’,’Tangerang’)
8.  Update
Digunakan untuk mengubah/memperbarui data di tabel database.
Syntax dasar:
UPDATE table_name
SET column1=value,column2=value, . . .
WHERE some_column=some_value
Contoh :
UPDATE bukutamu
SET email=’arly@arlicious.com’, kota=’Tangerang’
WHERE

9.  Delete
Digunakan untuk menghapus data di table database. Tambahkan 
perintah Where untuk memfilter data-data tertentu yang akan 
dihapus. Jika tanpa perintah Where, maka seluruh data dalam 
tabel akan terhapus.
Syntax dasar :
DELETE FROM table_name
WHERE some_column=some_value
Contoh:
DELETE FROM bukutamu
WHERE id=1

10.  Inner Join
Digunakan untuk menghasilkan baris data dengan cara menggabungkan 
2 buah tabel atau lebih menggunakan pasangan data yang match 
pada masing-masing tabel. Perintah ini sama dengan perintah join 
yang sering digunakan.
Syntax dasar :
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2
column-name
contoh :
SELECT bukutamu.nama,bukutamu.email,order.no_order
FROM bukutamu
INNER JOIN order
ON bukutamu.id=order.id
ORDER BY bukutamu.nama
11.  Alter Table
Digunakan untuk menambah, menghapus, atau mengubah kolom (field) 
pada tabel yang sudah ada.
Syntax untuk menambah kolom :
ALTAR TABLE table_name
ADD column_name datatyoe
Contoh :
ALTER TABLE Persons
ADD DateOfBirth date
Syntax untuk menghapus kolom :
ALTER TABLE table_name
DROP COLUMN column_name
Contoh :
ALTER TABLE Persons
DROP COLUMN DateOfBirth
Syntax untuk mengubah kolom :
ALTER TABLE table_name
ALTER TABLE clumn_name datatype
Contoh :
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year
12.  Drop Table
Digunakan untuk menghapus tabel beserta seluruh datanya.
Syntax dasar :
DROP TABLE table_name
Contoh :
DROP TABLE mhs

13.  Drop Database()
Digunakan untuk menghapus database.
Syntax dasar :
DROP DATABASE database_name

2. Hasil Praktikum

Tugas Praktikum

Untitled

Pertama kita buat tabel “fakultas”, karena tabel ini akan menjadi reference untuk foreign key dalam tabel “mahasiswa”

cfak

Kemudian kita buat tabel “mahasiswa” dengan foreign key “id_fak” dari tabel “fakultas” sebagai data fakultas untuk mahasiswa..

cmah

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 masukkan data ke dalam tabel “fakultas” dengan kode ’65’ untuk ‘SAINTEK’ dan ’55’ untuk ‘PSIKOLOGI’.

insertfak

Kemudian kita masukkan data ke dalam tabel “mahasiswa”, tapi sebelumnya kita perlu menambah kolom ‘no_telp’ karena kolom ini belum dibuat di awal .

addtlp

Lalu kita ubah tipe data ‘no_telp’ dari integer ke ‘varchar’ karena integer hanya bisa menampung 10 karakter. Sedangkan no telepon berisi maksimal 12 karakter.

changetlp

Baru kita masukkan data ke dalam setiap kolom dalam tabel ‘mahasiswa’

insertmah

2. Tampilkan data mahasiswa berupa nim dan nama.

2

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

3

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

4

5.  Hapus data mahasiswa yang memiliki nim : 13

5

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

6

7.  Tampilkan data mahasiswa  dan  urutkan dari besar ke kecil  berdasarkan nim mahasiswa.

7
Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.

7-1

8.  Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.

8

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

9

Atau kita tampilkan data lengkapnya.

9-1

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

10

11.  Hapus data fakultas “SAINTEK”.

Pertama kita hapus dulu data di dalam tabel ‘mahasiswa’ yang berisi data fakultas yang tersambung dengan tabel ‘fakultas’ yang berisi “SAINTEK”.

Dan kemudian baru kita hapus data “SAINTEK” dari tabel ‘fakultas’.

11

Lalu kita cek isi dari kedua tabel yang sudah tidak memiliki data “SAINTEK”

11-1

3. Evaluasi Perbandingan PostgreSQL dan MySQL

Berikut ini adalah query yang digunakan dalam PostgreSQL

Server [localhost]:
Database [postgres]:
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.postgres=# \c linda13650052;
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.
You are now connected to database “linda13650052” as user “postgres”.
linda13650052=# create table fakultas (id_fak integer, nama_fak varchar, primary
key (id_fak));
CREATE TABLE
linda13650052=# create table mahasiswa (nim_mah integer not null, nama_mah varch
ar, alamat_mah varchar, id_fak integer not null references fakultas, primary key
(nim_mah));
CREATE TABLE
linda13650052=# insert into fakultas values(65, ‘SAINTEK’);
INSERT 0 1
linda13650052=# insert into fakultas values(55, ‘PSIKOLOGI’);
INSERT 0 1
linda13650052=# alter table mahasiswa add column “no_telp” integer;
ALTER TABLE
linda13650052=# insert into mahasiswa values(12, ‘edi’, ‘malang’, 65, 0856453428
);
INSERT 0 1
linda13650052=# insert into mahasiswa values(13, ‘sinta’, ‘jogja’, 65, 081334756
);
INSERT 0 1
linda13650052=# insert into mahasiswa values(14, ‘luki’, ‘ponorogo’, 55, 0825765
68);
INSERT 0 1
linda13650052=# select nim_mah, nama_mah from mahasiswa;
nim_mah | nama_mah
———+———-
12 | edi
13 | sinta
14 | luki
(3 rows)linda13650052=# select nim_mah,nama_mah,alamat_mah,nama_fak from mahasiswa,fakul
tas where mahasiswa.nim_mah = 12;
nim_mah | nama_mah | alamat_mah | nama_fak
———+———-+————+———–
12 | edi | malang | SAINTEK
12 | edi | malang | PSIKOLOGI
(2 rows)linda13650052=# select nim_mah,nama_mah,alamat_mah,id_fak,no_telp from mahasiswa
where nim_mah=12;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
———+———-+————+——–+———–
12 | edi | malang | 65 | 856453428
(1 row)linda13650052=# select nim_mah,nama_mah,nama_fak from mahasiswa,fakultas where m
ahasiswa.id_fak = fakultas.id_fak;
nim_mah | nama_mah | nama_fak
———+———-+———–
12 | edi | SAINTEK
13 | sinta | SAINTEK
14 | luki | PSIKOLOGI
(3 rows)linda13650052=# delete from mahasiswa where nim_mah = 13;
DELETE 1
linda13650052=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
———+———-+————+——–+———–
12 | edi | malang | 65 | 856453428
14 | luki | ponorogo | 55 | 82576568
(2 rows)linda13650052=# update mahasiswa set alamat_mah = ‘solo’,no_telp = 0857688788 wh
ere nim_mah = 12;
UPDATE 1
linda13650052=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
———+———-+————+——–+———–
14 | luki | ponorogo | 55 | 82576568
12 | edi | solo | 65 | 857688788
(2 rows)linda13650052=# select * from mahasiswa order by nim_mah desc;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
———+———-+————+——–+———–
14 | luki | ponorogo | 55 | 82576568
12 | edi | solo | 65 | 857688788
(2 rows)linda13650052=# select * from fakultas order by nama_fak asc;
id_fak | nama_fak
——–+———–
55 | PSIKOLOGI
65 | SAINTEK
(2 rows)linda13650052=# select * from mahasiswa, fakultas;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | id_fak | nama_fak
———+———-+————+——–+———–+——–+———–
14 | luki | ponorogo | 55 | 82576568 | 65 | SAINTEK
12 | edi | solo | 65 | 857688788 | 65 | SAINTEK
14 | luki | ponorogo | 55 | 82576568 | 55 | PSIKOLOGI
12 | edi | solo | 65 | 857688788 | 55 | PSIKOLOGI
(4 rows)

linda13650052=# select nim_mah, nama_mah, alamat_mah, fakultas, no_telp from mah
asiswa, fakultas where mahasiswa.id_fak = fakultas.id_fak;
nim_mah | nama_mah | alamat_mah | fakultas | no_telp
———+———-+————+—————-+———–
14 | luki | ponorogo | (55,PSIKOLOGI) | 82576568
12 | edi | solo | (65,SAINTEK) | 857688788
(2 rows)

linda13650052=# select * from mahasiswa, fakultas where fakultas.nama_fak = ‘SAI
NTEK’;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | id_fak | nama_fak
———+———-+————+——–+———–+——–+———-
14 | luki | ponorogo | 55 | 82576568 | 65 | SAINTEK
12 | edi | solo | 65 | 857688788 | 65 | SAINTEK
(2 rows)

linda13650052=# select * from mahasiswa where mahasiswa.id_fak = 65;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
———+———-+————+——–+———–
12 | edi | solo | 65 | 857688788
(1 row)

linda13650052=# select * from mahasiswa where not mahasiswa.id_fak = 65;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
———+———-+————+——–+———-
14 | luki | ponorogo | 55 | 82576568
(1 row)

linda13650052=# delete from mahasiswa where id_fak = 65;
DELETE 1
linda13650052=# select * from mahasiswa;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp
———+———-+————+——–+———-
14 | luki | ponorogo | 55 | 82576568
(1 row)

linda13650052=# delete from fakultas where nama_fak = ‘SAINTEK’;
DELETE 1
linda13650052=# select * from fakultas;
id_fak | nama_fak
——–+———–
55 | PSIKOLOGI
(1 row)

linda13650052=#

Dan Berikut ini adalah query yang digunakan dalam MySQL

Setting environment for using XAMPP for Windows.L.kim@L C:\xampp
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.37 Source distributionType ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.mysql> use linda13650052;
Database changed
mysql> create table fakultas (id_fak integer, nama_fak varchar(10), primary key
(id_fak));
Query OK, 0 rows affected (0.12 sec)mysql> create table mahasiswa (nim_mah integer not null, nama_mah varchar(10), a
lamat_mah varchar(10), id_fak integer not null references fakultas, primary key
(nim_mah));
Query OK, 0 rows affected (0.08 sec)mysql> insert into fakultas values(65, ‘SAINTEK’);
Query OK, 1 row affected (0.10 sec)mysql> insert into fakultas values(55, ‘PSIKOLOGI’);
Query OK, 1 row affected (0.00 sec)mysql> alter table mahasiswa add no_telp integer;
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table mahasiswa modify no_telp varchar(12);
Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> insert into mahasiswa values(12, “edi”, “malang”, 65, “0856453428”);
Query OK, 1 row affected (0.01 sec)

mysql> insert into mahasiswa values(13, “sinta”, “jogja”, 65, “08133475675”);
Query OK, 1 row affected (0.00 sec)

mysql> insert into mahasiswa values(14, “luki”, “ponorogo”, 55, “082576568798”);

Query OK, 1 row affected (0.00 sec)

mysql> select nim_mah, nama_mah from mahasiswa;
+———+———-+
| nim_mah | nama_mah |
+———+———-+
| 12 | edi |
| 13 | sinta |
| 14 | luki |
+———+———-+
3 rows in set (0.05 sec)

mysql> select nim_mah,nama_mah,alamat_mah,id_fak,no_telp from mahasiswa
-> where nim_mah=12;
+———+———-+————+——–+————+
| nim_mah | nama_mah | alamat_mah | id_fak | no_telp |
+———+———-+————+——–+————+
| 12 | edi | malang | 65 | 0856453428 |
+———+———-+————+——–+————+
1 row in set (0.09 sec)

mysql> select nim_mah,nama_mah,nama_fak from mahasiswa,fakultas where mahasiswa.
id_fak = fakultas.id_fak;
+———+———-+———–+
| nim_mah | nama_mah | nama_fak |
+———+———-+———–+
| 12 | edi | SAINTEK |
| 13 | sinta | SAINTEK |
| 14 | luki | PSIKOLOGI |
+———+———-+———–+
3 rows in set (0.04 sec)

mysql> delete from mahasiswa where nim_mah = 13;
Query OK, 1 row affected (0.05 sec)

mysql> select * from mahasiswa;
+———+———-+————+——–+————–+
| nim_mah | nama_mah | alamat_mah | id_fak | no_telp |
+———+———-+————+——–+————–+
| 12 | edi | malang | 65 | 0856453428 |
| 14 | luki | ponorogo | 55 | 082576568798 |
+———+———-+————+——–+————–+
2 rows in set (0.00 sec)

mysql> update mahasiswa set alamat_mah = “solo”, no_telp = “0857688788” where ni
m_mah = 12;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from mahasiswa;
+———+———-+————+——–+————–+
| nim_mah | nama_mah | alamat_mah | id_fak | no_telp |
+———+———-+————+——–+————–+
| 12 | edi | solo | 65 | 0857688788 |
| 14 | luki | ponorogo | 55 | 082576568798 |
+———+———-+————+——–+————–+
2 rows in set (0.00 sec)

mysql> select * from mahasiswa order by nim_mah desc;
+———+———-+————+——–+————–+
| nim_mah | nama_mah | alamat_mah | id_fak | no_telp |
+———+———-+————+——–+————–+
| 14 | luki | ponorogo | 55 | 082576568798 |
| 12 | edi | solo | 65 | 0857688788 |
+———+———-+————+——–+————–+
2 rows in set (0.01 sec)

mysql> select * from fakultas order by nama_fak asc;
+——–+———–+
| id_fak | nama_fak |
+——–+———–+
| 55 | PSIKOLOGI |
| 65 | SAINTEK |
+——–+———–+
2 rows in set (0.00 sec)

mysql> desc mahasiswa
-> ;
+————+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————+————-+——+—–+———+——-+
| nim_mah | int(11) | NO | PRI | NULL | |
| nama_mah | varchar(10) | YES | | NULL | |
| alamat_mah | varchar(10) | YES | | NULL | |
| id_fak | int(11) | NO | | NULL | |
| no_telp | varchar(12) | YES | | NULL | |
+————+————-+——+—–+———+——-+
5 rows in set (0.21 sec)

mysql> select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where fakulta
s.id_fak = mahasiswa.id_fak;
+———+———-+———–+
| nim_mah | nama_mah | nama_fak |
+———+———-+———–+
| 12 | edi | SAINTEK |
| 14 | luki | PSIKOLOGI |
+———+———-+———–+
2 rows in set (0.06 sec)

mysql> select nim_mah, nama_mah, alamat_mah, no_telp, nama_fak from mahasiswa, f
akultas where fakultas.id_fak = mahasiswa.id_fak;
+———+———-+————+————–+———–+
| nim_mah | nama_mah | alamat_mah | no_telp | nama_fak |
+———+———-+————+————–+———–+
| 12 | edi | solo | 0857688788 | SAINTEK |
| 14 | luki | ponorogo | 082576568798 | PSIKOLOGI |
+———+———-+————+————–+———–+
2 rows in set (0.00 sec)

mysql> select * from fakultas order by 2 asc;
+——–+———–+
| id_fak | nama_fak |
+——–+———–+
| 55 | PSIKOLOGI |
| 65 | SAINTEK |
+——–+———–+
2 rows in set (0.00 sec)

mysql> select * from mahasiswa, fakultas;
+———+———-+————+——–+————–+——–+———–+

| nim_mah | nama_mah | alamat_mah | id_fak | no_telp | id_fak | nama_fak |

+———+———-+————+——–+————–+——–+———–+

| 12 | edi | solo | 65 | 0857688788 | 65 | SAINTEK |

| 14 | luki | ponorogo | 55 | 082576568798 | 65 | SAINTEK |

| 12 | edi | solo | 65 | 0857688788 | 55 | PSIKOLOGI |

| 14 | luki | ponorogo | 55 | 082576568798 | 55 | PSIKOLOGI |

+———+———-+————+——–+————–+——–+———–+

4 rows in set (0.00 sec)

mysql> select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where fakulta
s.id_fak = mahasiswa.id_fak and nama_fak = ‘SAINTEK’;
+———+———-+———-+
| nim_mah | nama_mah | nama_fak |
+———+———-+———-+
| 12 | edi | SAINTEK |
+———+———-+———-+
1 row in set (0.06 sec)

mysql> select * from mahasiswa, fakultas where fakultas.id_fak = mahasiswa.id_fa
k and nama_fak = ‘SAINTEK’;
+———+———-+————+——–+————+——–+———-+
| nim_mah | nama_mah | alamat_mah | id_fak | no_telp | id_fak | nama_fak |
+———+———-+————+——–+————+——–+———-+
| 12 | edi | solo | 65 | 0857688788 | 65 | SAINTEK |
+———+———-+————+——–+————+——–+———-+
1 row in set (0.00 sec)

mysql> select * from mahasiswa, fakultas where not fakultas.id_fak = mahasiswa.i
d_fak and nama_fak = ‘SAINTEK’;
+———+———-+————+——–+————–+——–+———-+
| nim_mah | nama_mah | alamat_mah | id_fak | no_telp | id_fak | nama_fak |
+———+———-+————+——–+————–+——–+———-+
| 14 | luki | ponorogo | 55 | 082576568798 | 65 | SAINTEK |

+———+———-+————+——–+————–+——–+———-+
1 row in set (0.00 sec)

mysql> delete from mahasiswa where id_fak = 65;
Query OK, 1 row affected (0.04 sec)

mysql> delete from fakultas where nama_fak = ‘SAINTEK’;
Query OK, 1 row affected (0.00 sec)

mysql> select * from mahasiswa;
+———+———-+————+——–+————–+
| nim_mah | nama_mah | alamat_mah | id_fak | no_telp |
+———+———-+————+——–+————–+
| 14 | luki | ponorogo | 55 | 082576568798 |
+———+———-+————+——–+————–+
1 row in set (0.00 sec)

mysql> select * from fakultas;
+——–+———–+
| id_fak | nama_fak |
+——–+———–+
| 55 | PSIKOLOGI |
+——–+———–+
1 row in set (0.00 sec)

mysql>

Sebenarnya perintah – perintah SQL dalam PostgreSQL dan MySQL tidak terlalu berbeda, karena kedua DBMS ini sama – sama menggunakan bahasa basis data SQL. Perbedaannya hanya terletak pada beberapa karakter, misalnya untuk PostgreSQL dalam menentukan tipe data varchar tidak harus menggunakan batasan karakter, sedangkan dalam MySQL harus menggunakan batasan karakter. Untuk kekurangannya dalam PostgreSQL lebih mudah karena tidak harus menentukan panjang karakter, namun hal ini bisa memakan memori yang cukup banyak karena banyaknya memori kosong yang tidak diperlukan dalam suatu kolom tersebut. Sedangkan dalam MySQL lebih sedikit ribet karena harus menentukan panjang karakter, namun hal ini bisa membantu untuk mengurangi memori kosong yang tidak terpakai.

4. Kesimpulan

Berdasarkan Praktikum yang telah dilakukan dapat diambil kesimpulan bahwa untuk berkomunikasi dengan DBMS kita memerlukan sebuah bahasa khusus, misalnya yang digunakan disini yaitu bahasa SQL. Bahasa SQL memiliki beberapa perintah dasar yang perlu diketahui oleh pengguna agar bisa berinteraksi dengan baik. Misalnya untuk membuat tabel menggunakan perintah “create table nama_table (nama_kolom tipe_data ket)” atau untuk memasukkan data kedalam tabel dengan perintah “insert into nama_table values(isi_kol1, isi_kol2,)” dan perintah – perintah dasar lainnya yang sudah dipraktekkan menggunakan DBMS PostgreSQL dan MySQL yang merupakan DBMS berbahasa SQL. Dengan melakukan praktikum mengenai perintah dasar SQL, praktikan jadi mengetahui mengenai perintah dasar yang perlu diketahui untuk berkomunikasi dengan bahasa basis data, dalam hal ini berkomunikasi maksudnya memanajemen database maupun manipulasi database.

Kritik

Dalam MySQL harus menentukan panjang karakter, sehingga sedikit memperumit, karena belum mengetahui panjang karakter yang dibutuhkan.

Saran

Saran saya adalah untuk membuat database dengan MySQL, sebaiknya mengenali dulu berapa panjang karakter yang kita butuhkan. Atau jika tidak mau ribet, gunakan saja PostgreSQL.

Manfaat bagi pembaca

Diharapkan dengan adanya postingan laporan ini, pembaca bisa mengetahui tentang bahasa basis data beserta perintah – perintah dasarnya.

DAFTAR PUSTAKA

Fathansyah. 2012. Basis Data. Bandung : Informatika

Kristanto, Harianto. 2002. Konsep dan Perancangan Database. Yogyakarta : Andi

http://widiapriyadi.blogspot.com/2013/04/ddl-dml-dcl-dan-tcl.html

http://achmatim.net/2009/12/09/pengenalan-perintah-dasar-sql-di-mysql/

http://arliciously.blogspot.com/2013/03/perintah-perintah-dasar-mysql.html

Advertisements

2 thoughts on “Laporan Praktikum Desain Basis Data – BAB III (Perintah Dasar SQL)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s