Senin, 29 September 2014

Praktikum Desain basis Data 2



PRAKTIKUM DESAIN BASIS DATA
MEMBUAT  TABEL DAN  MANAGEMEN  TABEL
SQL SHELL Vs CMD MYSQL PADA XAMPP

Landasan Teori

 Pada pembahasan kali ini, kita akan memebahas sedikit tentang membuat tabel dan menejemen tabel. sebelum itu, sedikit cuplikan tentang SQL.

SQL adalah bahasa standar dalam basis data yang digunakan untuk melakukan manipulasi data. Hampir semua DBMS itu menggunakan SQL sebagai fasilitas untuk memanipulasi data seperti Oracle, SQLServer, MySQL, PostgreSQL, Foxpro dsb.

Pernyataan-pernyataan SQL itu dapat dikelompokkan menjadi 3 kelompok, yaitu DDL, DML dan DCL.

1. DDL (Data Definition Language)

DDL merupakan perintah-perintah yang biasa digunakan administrator database untuk mendefinisikan skema dan subskema database. DDL ini berfungsi untuk mendefinisikan atribut-atribut database, table, atribut kolom, batasan-batasan terhadap suatu atribut serta hubungan antar table.
Perintah yang termasuk DDL:
CREATE » untuk membuat, termasuk diantaranya membuat database dan tabel baru.
ALTER » untuk mengubah struktur tabel yang telah dibuat.
DROP » untuk menghapus database dan tabel.

2. DML (Data Manipulation Language)

DML merupakan merupakan perintah-perintah yang memungkinkan pengguna melakukan akses dan manipulasi data.DML ini digunakan untuk memanipulasi database yang telah didefinisikan dengan DDL.
Perintah yang termasuk DML:
INSERT » untuk menyisipkan atau memasukan dalam tabel
UPDATE » untuk memperbaharui data lama menjadi data terkini
DELETE » untuk menghapus datadari tabel
SELECT » untuk mengambil data atau menampilkan data dari satu tabel atau beberapa tabel.

3. DCL (Data Control Language)

DCL merupakan merupakan perintah-perintah yang digunakan untuk mengontrol data.
Perintah yang termasuk DCL:
GRAND » untuk memberikan hak atau izin akses oleh administrator server kepada user
REVOKE » untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.

(http://www.carawebs.info/2013/08/pengertian-ddl-dml-dcl.html)

TIPE DATA

Setiap data pasti memiliki tipe data. Berikut tipe data menurut dalam SQL, antara lain:

-CHAR atau CHARACTER
Menyatakan deretan karakter (huruf, bil, tanda baca, karakter khusus (ex:enter)) atau String

-VARCHAR
Untuk menyatakan string dengan panjang tidak tetap (nama, alamat, dll)

-INTEGER atau INT
Menyatakan tipe data bilangan bulat, defaultnya max 11 karakter

-FLOAT
Tipe data bilangan real/pecahan, lebar dibelakang koma 17 karakter

-DOUBLE
Tipe data bilangan real/pecahan dengan presisi/teliti lebih tinggi dari pada FLOAT, lebar dibelakang koma sampai 30 digit

-DATE
Untuk menyatakan tanggal (th-bl-tgl)

-TIME
Untuk menyatakan waktu

-BOOLEAN
Untuk menyatakan tipe nalar benar atau salahan masih banyak lagi..

(http://blog.akakom.ac.id/detotty/dasar-dasar-sql-structured-query-language/)

Tidak lupa kita akan membahas sedikit tentang primary key dan foreign key.
 
Primary key adalah satu atau lebih nilai pada kolom untuk membuat sebuah record unik. Biasanya primary key disebut id dan berurutan.

Foreign Key digunakan untuk merujuk ke record yang unik pada tabel lain (menggunakan primary key tabel yang lain).

Hasil Praktikum

Menggunakan PSQL

Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]: ayu
Password for user ayu:
psql (9.3.5)
WARNING: Console code page (850) 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 ayu13650039
WARNING: Console code page (850) 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 "ayu13650039" as user "ayu".
  
     1. Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya


ayu13650039=> create table identitas13650039 (id_idn integer Not Null, namaDepan
 varchar (10), namaBelakang varchar (10), tgl_lahir_idn date, status_idn boolean
, alamat_idn text);
CREATE TABLE
ayu13650039=> \z
                                 Access privileges
 Schema |       Name        | Type  | Access privileges | Column access privileges
--------+-------------------+-------+-------------------+-----------------------
---
 public | identitas13650039 | table |                   |
(1 row)


ayu13650039=> \d identitas13650039;
         Table "public.identitas13650039"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |
 alamat_idn    | text                  |

2.  Buatlah  sebuah  tabel  lagi  dengan  nama  pegawai  dan  nama  field  sama  dengan  tabel
identitas.

ayu13650039=> create table pegawai  (id_idn integer Not Null, namaDepan varchar
(10), namaBelakang varchar (10), tgl_lahir_idn date, status_idn boolean, alamat_
idn text);
CREATE TABLE
ayu13650039=> \z
                                 Access privileges
 Schema |       Name        | Type  | Access privileges | Column access privileges
--------+-------------------+-------+-------------------+-----------------------
 public | identitas13650039 | table |                   |
 public | pegawai           | table |                   |
(2 rows)


ayu13650039=> \d pegawai
              Table "public.pegawai"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |
 alamat_idn    | text                  |

3.  Hapus kolom “alamat_idn” dan tampilkan struktur dari tabel pegawai tadi.

ayu13650039=> alter table pegawai drop column alamat_idn;
ALTER TABLE
ayu13650039=> \d pegawai
              Table "public.pegawai"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |

4.  Tambahkan kolom “pekerjaan_idn” dengan type  data  varchar dan  tampilkan  struktur
tabel pegawai.

ayu13650039=> alter table pegawai add column pekerjaan_idn varchar;
ALTER TABLE
ayu13650039=> \d pegawai
              Table "public.pegawai"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |
 pekerjaan_idn | character varying     |

5.  Ubah  nama  tabel  pegawai  menjadi  pekerjaNIM  kemudian  ubah  nama  kolom
“pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.

ayu13650039=> alter table pegawai rename to pekerja13650039;
ALTER TABLE
ayu13650039=> \d pekerja13650039
          Table "public.pekerja13650039"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |
 pekerjaan_idn | character varying     |


ayu13650039=> alter table pekerja13650039 rename column pekerjaan_idn to alamat_idn;
ALTER TABLE
ayu13650039=> \d pekerja13650039
          Table "public.pekerja13650039"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |
 alamat_idn    | character varying     |

6.  Berikan  Primary  key  pada  tabel  pekerjaNIM  dan  ubah  type  data  pada  kolom
“alamat_idn” menjadi text. Kemudian tampilkan struktur tabel.

ayu13650039=> alter table pekerja13650039 add primary key (id_idn);
ALTER TABLE
ayu13650039=> alter table pekerja13650039 alter column alamat_idn type text;
ALTER TABLE
ayu13650039=> \d pekerja13650039
          Table "public.pekerja13650039"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |
 alamat_idn    | text                  |
Indexes:
    "pekerja13650039_pkey" PRIMARY KEY, btree (id_idn)

7.  Hapus tabel pekerjaNIM.

ayu13650039=> drop table pekerja13650039;
DROP TABLE
ayu13650039=> \z
                                 Access privileges
 Schema |       Name        | Type  | Access privileges | Column access privileges
--------+-------------------+-------+-------------------+-----------------------
---
 public | identitas13650039 | table |                   |
(1 row)


ayu13650039=> create temporary table mahasiswa_sementara (id integer primary key
, nama varchar (20), tgl_lahir date);
CREATE TABLE
ayu13650039=> \z
                                 Access privileges
 Schema |       Name        | Type  | Access privileges | Column access privileg
es
--------+-------------------+-------+-------------------+-----------------------
---
 public | identitas13650039 | table |                   |
(1 row)

8.  Buat  temporary  tabel  dengan  nama mahasiswa_sementara dengan  3  kolom  yaitu  id,
nama, tanggal lahir dan tampilkan tabel atau strukturnya.

ayu13650039=> \d mahasiswa_sementara;
     Table "pg_temp_3.mahasiswa_sementara"
  Column   |         Type          | Modifiers
-----------+-----------------------+-----------
 id        | integer               | not null
 nama      | character varying(20) |
 tgl_lahir | date                  |
Indexes:
    "mahasiswa_sementara_pkey" PRIMARY KEY, btree (id)

9.  Hapus  semua  hak  akses  tabel  tertentu  kepada  salah  satu  user  yang  telah  dibuat  dan
lakukan  pengecekan.  Kemudian  berikan  semua  hak  akses  kembali  dan  lakukan
pengecekan kembali. Hapus hak akses SELECT tabel tertentu kepada salah satu user dan
lakukan pengecekan.

ayu13650039=> revoke all on table identitas13650039 from ayu;
REVOKE
ayu13650039=> select * from identitas13650039;
ERROR:  permission denied for relation identitas13650039

ayu13650039=> grant all on table identitas13650039 to ayu;
GRANT
ayu13650039=> select * from identitas13650039;
 id_idn | namadepan | namabelakang | tgl_lahir_idn | status_idn | alamat_idn
--------+-----------+--------------+---------------+------------+------------
(0 rows)

10. Buat tabel baru dengan nama Gaji, dengan catatan pembuatan tabel berasal dari turunan
tabel  number  1  dan tambahkan  kolom  gaji  kotor,  pajak,  dan  gaji  bersih. Kemudian
tampilkan strukturnya.

ayu13650039=> create table gaji (gaji_kotor integer, pajak integer, gaji_bersih integer) inherits (identitas13650039);
CREATE TABLE
ayu13650039=> \d gaji
                Table "public.gaji"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_idn        | integer               | not null
 namadepan     | character varying(10) |
 namabelakang  | character varying(10) |
 tgl_lahir_idn | date                  |
 status_idn    | boolean               |
 alamat_idn    | text                  |
 gaji_kotor    | integer               |
 pajak         | integer               |
 gaji_bersih   | integer               |
Inherits: identitas13650039

ayu13650039=>

Hasil Pekerjaan Rumah

Menggunakan CMD mysql pada XAMPP

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Ayu>cd..

C:\Users>cd..

C:\>cd xampp\xampp terbaru\xampp\mysql\bin

C:\xampp\xampp terbaru\xampp\mysql\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.5.25a MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ayu13650039        |
| cdcol              |
| mysql              |
| performance_schema |
| phpmyadmin         |
| test               |
| webauth            |
+--------------------+
8 rows in set (0.00 sec)

mysql> use ayu13650039;
Database changed
  
      1. Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya


mysql> create table identitas13650039 (id_idn integer Not Null, namaDepan_idn varchar (10), namaBelakang_idn varchar (10), tgl_lahir_idn date, status_idn boolean, alamat_idn text);
Query OK, 0 rows affected (0.06 sec)

mysql> show tables;
+-----------------------+
| Tables_in_ayu13650039 |
+-----------------------+
| identitas13650039     |
+-----------------------+
1 row in set (0.00 sec)

mysql> desc identitas13650039;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id_idn           | int(11)     | NO   |     | NULL    |       |
| namaDepan_idn    | varchar(10) | YES  |     | NULL    |       |
| namaBelakang_idn | varchar(10) | YES  |     | NULL    |       |
| tgl_lahir_idn    | date        | YES  |     | NULL    |       |
| status_idn       | tinyint(1)  | YES  |     | NULL    |       |
| alamat_idn       | text        | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
6 rows in set (0.08 sec)

2.  Buatlah  sebuah  tabel  lagi  dengan  nama  pegawai  dan  nama  field  sama  dengan  tabel
identitas.

mysql> create table pegawai (id_idn integer Not Null, namaDepan_idn varchar (10)
, namaBelakang_idn varchar (10), tgl_lahir_idn date, status_idn boolean, alamat_idn text);
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+-----------------------+
| Tables_in_ayu13650039 |
+-----------------------+
| identitas13650039     |
| pegawai               |
+-----------------------+
2 rows in set (0.00 sec)

mysql> desc pegawai;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id_idn           | int(11)     | NO   |     | NULL    |       |
| namaDepan_idn    | varchar(10) | YES  |     | NULL    |       |
| namaBelakang_idn | varchar(10) | YES  |     | NULL    |       |
| tgl_lahir_idn    | date        | YES  |     | NULL    |       |
| status_idn       | tinyint(1)  | YES  |     | NULL    |       |
| alamat_idn       | text        | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

3.  Hapus kolom “alamat_idn” dan tampilkan struktur dari tabel pegawai tadi.

mysql> alter table pegawai drop column alamat_idn;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc pegawai;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id_idn           | int(11)     | NO   |     | NULL    |       |
| namaDepan_idn    | varchar(10) | YES  |     | NULL    |       |
| namaBelakang_idn | varchar(10) | YES  |     | NULL    |       |
| tgl_lahir_idn    | date        | YES  |     | NULL    |       |
| status_idn       | tinyint(1)  | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

4.  Tambahkan kolom “pekerjaan_idn” dengan type  data  varchar dan  tampilkan  struktur
tabel pegawai.

mysql> alter table pegawai add column pekerjaan_idn varchar;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at line 1
(butuh kejelasan panjang tipedata..)
mysql> alter table pegawai add column pekerjaan_idn varchar(10);
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc pegawai;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id_idn           | int(11)     | NO   |     | NULL    |       |
| namaDepan_idn    | varchar(10) | YES  |     | NULL    |       |
| namaBelakang_idn | varchar(10) | YES  |     | NULL    |       |
| tgl_lahir_idn    | date        | YES  |     | NULL    |       |
| status_idn       | tinyint(1)  | YES  |     | NULL    |       |
| pekerjaan_idn    | varchar(10) | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
6 rows in set (0.02 sec)

5.  Ubah  nama  tabel  pegawai  menjadi  pekerjaNIM  kemudian  ubah  nama  kolom
“pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.

mysql> alter table pegawai rename to pekerja13650039;
Query OK, 0 rows affected (0.01 sec)

mysql> alter table pekerja13650039 rename pekerjaan_idn to alamat_idn;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'alamat_idn' at line 1
mysql> alter table pekerja13650039 change pekerjaan_idn alamat_idn;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at line 1
(rename to à change + tipedata)
mysql> alter table pekerja13650039 change pekerjaan_idn alamat_idn text;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc pekerja13650039;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id_idn           | int(11)     | NO   |     | NULL    |       |
| namaDepan_idn    | varchar(10) | YES  |     | NULL    |       |
| namaBelakang_idn | varchar(10) | YES  |     | NULL    |       |
| tgl_lahir_idn    | date        | YES  |     | NULL    |       |
| status_idn       | tinyint(1)  | YES  |     | NULL    |       |
| alamat_idn       | text        | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
6 rows in set (0.02 sec)

6.  Berikan  Primary  key  pada  tabel  pekerjaNIM  dan  ubah  type  data  pada  kolom
“alamat_idn” menjadi text. Kemudian tampilkan struktur tabel.

mysql> alter table pekerja13650039 add primary key (id_idn);
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc pekerja13650039;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| id_idn           | int(11)     | NO   | PRI | NULL    |       |
| namaDepan_idn    | varchar(10) | YES  |     | NULL    |       |
| namaBelakang_idn | varchar(10) | YES  |     | NULL    |       |
| tgl_lahir_idn    | date        | YES  |     | NULL    |       |
| status_idn       | tinyint(1)  | YES  |     | NULL    |       |
| alamat_idn       | text        | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

7.  Hapus tabel pekerjaNIM.

mysql> drop table pekerja13650039;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+-----------------------+
| Tables_in_ayu13650039 |
+-----------------------+
| identitas13650039     |
+-----------------------+
1 row in set (0.00 sec)

8.  Buat  temporary  tabel  dengan  nama mahasiswa_sementara dengan  3  kolom  yaitu  id,nama, tanggal lahir dan tampilkan tabel atau strukturnya.

mysql> create temporary table mahasiswa_sementara (id integer, nama varchar (20), tgl_lahir date);
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+-----------------------+
| Tables_in_ayu13650039 |
+-----------------------+
| identitas13650039     |
+-----------------------+
1 row in set (0.00 sec)

mysql> desc mahasiswa_sementara;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | YES  |     | NULL    |       |
| nama      | varchar(20) | YES  |     | NULL    |       |
| tgl_lahir | date        | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

9.  Hapus  semua  hak  akses  tabel  tertentu  kepada  salah  satu  user  yang  telah  dibuat  dan lakukan  pengecekan.  Kemudian  berikan  semua  hak  akses  kembali  dan  lakukan pengecekan kembali. Hapus hak akses SELECT tabel tertentu kepada salah satu user dan lakukan pengecekan.

mysql> revoke all on table identitas13650039 from root;
Query OK, 0 rows affected (0.06 sec)

mysql> select * from identitas13650039;
Empty set (0.00 sec)

mysql> grant all on table identitas13650039 to root;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-----------------------+
| Tables_in_ayu13650039 |
+-----------------------+
| identitas13650039     |
+-----------------------+
1 row in set (0.00 sec)

10. Buat tabel baru dengan nama Gaji, dengan catatan pembuatan tabel berasal dari turunan tabel  number  1  dan tambahkan  kolom  gaji  kotor,  pajak,  dan  gaji  bersih. Kemudian tampilkan strukturnya.

mysql> create table gaji (gaji_kotor integer, pajak integer, gaji_bersih integer) inherits (identitas13650039);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'inherits (identitas13650039)' at line 1
mysql> create table gaji (gaji_kotor integer, pajak integer, gaji_bersih integer) inherits (identitas13650039);


Buat  database  dan  tabel  sistem  pada  pertemuan  1 menggunakan  query  dan  dilengkapi dengan tampilan strukturnya.

Sistem Penitipan Sepeda dengan SQL SHELL / PSQL

Sistem ini terdiri dari 3 tabel yaitu tabel penjaga, tabel sepeda motor dan tabel penitipan.
berikut query nya ...

Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]: ayu
Password for user ayu:
psql (9.3.5)
WARNING: Console code page (850) 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 sistem_penitipan_spd_motor (karena datebase sudah ada/dibuat, maka tinggal di conect.i kan)
WARNING: Console code page (850) 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 "sistem_penitipan_spd_motor" as user "ayu".

Tabel pertama
sistem_penitipan_spd_motor=> create table penjaga (id_penjaga integer, nama varc
har (20), alamat varchar (20), no_hp integer, jenis_kelamin varchar (10));
CREATE TABLE
sistem_penitipan_spd_motor=> \d penjaga
              Table "public.penjaga"
    Column     |         Type          | Modifiers
---------------+-----------------------+-----------
 id_penjaga    | integer               |
 nama          | character varying(20) |
 alamat        | character varying(20) |
 no_hp         | integer               |
 jenis_kelamin | character varying(10) |


sistem_penitipan_spd_motor=> Select * from penjaga;
 id_penjaga | nama | alamat | no_hp | jenis_kelamin
------------+------+--------+-------+---------------
(0 rows)

Tabel kedua
sistem_penitipan_spd_motor=> create table spd_motor (id_spd_motor integer primar
y key, nama_penitip varchar (20), no_hp integer, tipe_spd_motor varchar (10));
CREATE TABLE
sistem_penitipan_spd_motor=> \d spd_motor
              Table "public.spd_motor"
     Column     |         Type          | Modifiers
----------------+-----------------------+-----------
 id_spd_motor   | integer               | not null
 nama_penitip   | character varying(20) |
 no_hp          | integer               |
 tipe_spd_motor | character varying(10) |
Indexes:
    "spd_motor_pkey" PRIMARY KEY, btree (id_spd_motor)


sistem_penitipan_spd_motor=> Select * from spd_motor;
 id_spd_motor | nama_penitip | no_hp | tipe_spd_motor
--------------+--------------+-------+----------------
(0 rows)


Tabel ketiga
sistem_penitipan_spd_motor=> create table penitipan (id_penjaga integer, id_spd_
motor integer, nama_penitip varchar (20), wkt_penitipan date, wkt_pengambilan da
te, biaya_per_hari varchar (10), denda_per_hari varchar (10));
CREATE TABLE
sistem_penitipan_spd_motor=> \d penitipan
              Table "public.penitipan"
     Column      |         Type          | Modifiers
-----------------+-----------------------+-----------
 id_penjaga      | integer               |
 id_spd_motor    | integer               |
 nama_penitip    | character varying(20) |
 wkt_penitipan   | date                  |
 wkt_pengambilan | date                  |
 biaya_per_hari  | character varying(10) |
 denda_per_hari  | character varying(10) |


sistem_penitipan_spd_motor=> Select * from penitipan;
 id_penjaga | id_spd_motor | nama_penitip | wkt_penitipan | wkt_pengambilan | bi
aya_per_hari | denda_per_hari
------------+--------------+--------------+---------------+-----------------+---
-------------+----------------
(0 rows)

sistem_penitipan_spd_motor=>


Perbandingan  PSQL dan CMD mysql pada XAMPP

Seperti yang telah diketahui pada query praktikum menggunakan SQL SHELL dan pekerjaan rumah menggunakan CMD mysql XAMPP, tidak banyak perbedaan yang ada. Akan tetapi perintah atau query pada CMD mysql pada XAMPP  harus lebih lengkap penulisannya. Dan pada query/perintah untuk menunjukkan table atau struktur tabel itu juga sedikit berbeda.

Disini hanya akan dijelaskan beberapa query yang berbeda, seperti :

1.
ayu13650039=> alter table pegawai add column pekerjaan_idn varchar;
ALTER TABLE

mysql> alter table pegawai add column pekerjaan_idn varchar;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at line 1
(pada query ini, perintah di cmd mysql harus lebih detail, yaitu harus ada tipedata dan panjang nya. Jika tidak ada maka akan ERROR. Bisa dilihat contoh yang atas dan bawah. Perbedaannya hanya pada panjang tipenya, tapi ini tidak bisa di remehkan spya query pada cmd mysql tidak Error. ^_^)
mysql> alter table pegawai add column pekerjaan_idn varchar(10);
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

2.
ayu13650039=> alter table pegawai rename to pekerja13650039;
ALTER TABLE
ayu13650039=> alter table pekerja13650039 rename column pekerjaan_idn to alamat_idn;
ALTER TABLE

mysql> alter table pegawai rename to pekerja13650039;
Query OK, 0 rows affected (0.01 sec)
( query rename fix)
mysql> alter table pekerja13650039 rename pekerjaan_idn to alamat_idn;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'alamat_idn' at line 1
mysql> alter table pekerja13650039 change pekerjaan_idn alamat_idn;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at line 1
( tapi pada query yang ini, berbeda dengan psql yang memakai perintah ‘rename to’ untuk mengganti nama kolom, pada cmd mysql memakai perintah ‘change’ tanpa ‘to’ dan harus dengan tipe data nya. Jika tanpa tipedata maka akan ERROR. Bisa dilihat pada query yang atas.)
mysql> alter table pekerja13650039 change pekerjaan_idn alamat_idn text;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

3. 
ayu13650039=> create table gaji (gaji_kotor integer, pajak integer, gaji_bersih integer) inherits (identitas13650039);
CREATE TABLE
(Pada query turunan juga berbeda antar keduanya. Pada CMD mysql XAMPP tidak menggunakan inherits untuk inheritance)
mysql> create table gaji (gaji_kotor integer, pajak integer, gaji_bersih integer) inherits (identitas13650039);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'inherits (identitas13650039)' at line 1


4. 
Pada PSQL/SQL SHELL untuk menunjukkan/memunculkan user, tabel dan strukturnya itu menggunakan \du, \d nama tabel, Select * from namatabel. Tetapi pada CMD mysql XAMPP itu dengan query ‘SHOW’. Seperti show databases, show tables, desc  namatabel (untuk mendeskripsikan tabel).

Kesimpulan

Setelah menjelaskan beberapa query dari praktikum dan pekerjaan rumah, begitu juga tentang perbandingan antara query SQL SHELL dan CMD mysql pada XAMPP, dapat disimpulkan bahwa query atau perintah dasar (seperti membuat tabel, menghapus tabel/kolom, menambah kolom, mengganti nama tabel/kolom, menambah primary key, membuat temporary tabel, membuat tabel turunan dari tabel lain, dll) yang dimiliki kedua DBMS itu tidak jauh beda. Yang mana hanya beberapa query yang berbeda. Walaupun perbedaannya sedikit, tapi itu tidak bisa diremehkan karena sekecil apapun kesalahan maka bisa menghasilkan ke-ERROR-an.

Kritik/saran

Kritik adalah sesuatu yang negatif tetapi untuk menunjang agar lebih baik. Pada blog ini juga masih banyak kekurangan dan harus di kritik. Jadi untuk kakak yang lebih mengerti, mohon bantuannya untuk mengoreksi blog ini.
Saran setelah pembelajaran ini ditujukan kepada para pemula (seperti saya ^_^)  untuk tetap memperhatikan query dan selalu terus mencoba jika query tersebut Error karena tiap query DBMS itu tidak jauh beda. Tidak lupa untuk mengingatkan untuk berdoa sebelum dan sesudah mengerjakan agar dapat mengerjakan dengan lancar dan berhasil.
Semoga ini memberi pencerahan bagi anda yang sedang pusing memikirkan query yang error padahal menurut anda query yang telah anda ketik itu benar.
 Terima kasih. ^_^