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.
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. ^_^
Tidak ada komentar:
Posting Komentar