Download Perintah Dasar MySQL (lanjutan)

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Materi
 Database Basics
 SQL Scripts untuk DDL dan DML
 Operasi CRUD
 Operasi antar tabel
Tujuan Instruksional Khusus
 Mahasiswa dapat merancang database sederhana
sesuai kasus masing-masing kelompok
Database Basics
 Database adalah suatu kumpulan data yang saling
berhubungan yang diorganisasi sedemikian rupa
sehingga kelak dapat dimanfaatkan dengan cepat dan
mudah dan disimpan dalam media penyimpanan
tertentu.
 Database dapat dianggap sebagai suatu tempat untuk
sekumpulan berkas data terkomputerisasi .
 Maksud dari database adalah untuk menyimpan
semua data yang diinginkan dalam satu lokasi,
sehingga pencarian data menjadi lebih mudah dan
redundant dapat tereliminasi
Database Basics
 Akses Data mencakup pemerolehan data maupun
pemanipulasian seperti menambah , mengubah , dan
menghapus data.
 Dalam implementasinya, data berbentuk tabel. Tabel
merupakan obyek database yang memuat record
(row/baris) dimana masing-masing record tersebut
merupakan gabungan dari beberapa sifat data yang identik.
 Nilai-nilai yang terkandung dalam sifat data
tersebut disebut field.
Database Basics
Field/Column
Record
SQL Scripts untuk DDL dan DML
 Structured Query Language (SQL) merupakan standar
dalam pengaksesan database relasional.
 Secara umum, SQL terbagi menjadi dua kategori
pernyataan yaitu :
1.
2.
DDL (Data Definition Language)
DML (Data Manipulation Language).
Data Definition Language
 DDL adalah perintah-perintah yang biasa digunakan
untuk mendefinisikan skema ke DBMS.
 Skema adalah deskripsi lengkap tentang struktur field,
record dan hubungan data pada basis data. Tugas
utama skema adalah menjabarkan struktur basis data
kepada DBMS
 Secara detail beberapa hal yang perlu dijabarkan pada
DBMS adalah : nama database, nama record dan fieldfield, nama field kunci, nama indeks dan field yang
menjadi indeks
DDL (lanjutan)
 Indeks merupakan suatu mekanisme
yang lazim
digunakan pada basis data, yang memungkinkan
pengambilan data dapat dilakukan dengan cepat.
 DDL juga dipakai untuk mendefinisikan subskema.
Subskema adalah view dari basis data.
 Subskema merupakan himpunan bagian dari skema,
dengan kata lain, subskema bisa mencakup sebagian atau
seluruh skema.
 Sebuah basis data hanya bisa mempunyai sebuah skema,
tetapi bisa memiliki banyak subskema, tergantung oleh
jumlah pengguna basis data.
Data Manipulation Language
 DML adalah perintah-perintah yang digunakan untuk
mengubah, memanipulasi data pada basis data.
 Tindakan seperti menghapus, mengubah dan
mengambil data menjadi bagian dari DML.
 Secara khusus bagian DML ada yang disebut dengan
DQL atau Query berarti pertanyaan atau permintaan.
Contoh Penggunaan DDL, DML dan DQL
DDL – Menciptakan Database bernama dbPenggajian
CREATE DATABASE dbPenggajian
DML – Memilih Database
Use dbPenggajian
DDL – Menciptakan tabel tLogin
CREATE TABLE tLogin (
UserID varchar(10) NOT NULL,
Password varchar(32) NOT NULL,
PRIMARY KEY (UserID)
) ENGINE=MyISAM;
Contoh Penggunaan DDL, DML dan DQL (lanjutan)
DML – Memasukan data ke tabel tLogin
INSERT INTO tlogin
(`UserID`, `Password`) VALUES
(‘moly', '1234'), (‘pegasus', ‘1235'),
(‘mercury', ‘1236');
DQL – Menampilkan seluruh data dari tabel tLogin
SELECT * FROM tLogin;
DDL – Menghapus tabel tLogin
DROP tLogin;
Operasi CRUD
 CRUD merupakan singkatan dari Create Read Update
Delete.
 Operasi CRUD merupakan operasi
membutuhkan sebuah database.
yang
total
Perintah Dasar MySQL
 Mengakses MySQL pertama kali
Untuk menjalankan MySQL pertama kali cukup
dengan mengetikkan perintah MySQL pada Command
Prompt sebagai berikut :
C:\>mysql\bin>mysql –u root –h localhost
atau jika menggunakan XAMPP
C:\>XAMPP\mysql\bin>mysql –u root –h localhost
Perintah Dasar MySQL (lanjutan)
 Lokasi MySQL berada pada direktori C:\mysql\bin.
Parameter mysql digunakan agar System Prompt
berpindah ke MySQL Prompt, dan parameter -u (User)
menunjuk kepada nama user yang akan login ke MySQL,
parameter -h (Host) adalah menunjuk kepada mesin
server yang menjalankan MySQL.
Biasanya juga
ditambahkan parameter -p (Password) adalah menunjuk
kepada password dari user yang akan login, jika
menggunakan password.
Perintah Dasar MySQL (lanjutan)
 Setelah memasukan Nama User, dan Host tekan enter
sehingga hasilnya sebagai berikut :
Welcome to the MySQL monitor. Commands end
with ; or \g.
Your MySQL connection id is 27
Server version: 5.1.30-community MySQL
Community Server (GPL
Type ‘help;’ or ‘\h’ for help. Type ‘\c’
to clear the buffer.
mysql>
Perintah Dasar MySQL (lanjutan)
 MySQL menampilkan selamat datang dilengkapi dengan
nomor urut koneksi ke server MySQL (Connection id is 27)
dan versi MySQL yang digunakan (version : 5.1.30community).
 Sebagai tanda bahwa MySQL server dalam keadaan siap
menjalankan tugasnya akan tampil MySQL Prompt yang
ditandai dengan mysql>
Perintah Dasar MySQL (lanjutan)
 Menampilkan Database menggunakan perintah SHOW
Databases;
Contoh :
mysql> SHOW DATABASES;
+-----------------------+
| Database
|
+-----------------------+
| information_schema
|
| mysql
|
| test
|
+-----------------------+
3 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan)
 Perintah Show Databases akan menghasilkan atau
menampilkan daftar database yang terdapat pada RDBMS
MySQL
 Baris ‘3 rows in set (0.00 sec)’ menampilkan
informasi tentang jumlah baris atau jumlah database yang
dihasilkan oleh perintah MySQL (Show Databases),
yang dilengkapi dengan jumlah waktu dalam satuan detik
yang digunakan untuk memproses perintah MySQL
tersebut.
Perintah Dasar MySQL (lanjutan)
 Perintah untuk membuat database baru adalah :
Create Database Nama_Database;
mysql> CREATE DATABASE dbMhs;
Query OK, 1 row affected (0.02 sec)
Perintah Dasar MySQL (lanjutan)
 Memilih atau menentukan database
Untuk menentukan atau memilih database yang akan
digunakan (contoh dbMhs) adalah dengan cara memberi
perintah USE/CONNECT Nama_Database;
mysql> USE dbMhs;
Database changed
Atau
:
mysql> CONNECT dbMhs;
Connection id: 3
Current database: dbMhs
Perintah Dasar MySQL (lanjutan)
 Perintah untuk membuat tabel baru adalah
Create Table Nama_Table;
mysql> CREATE TABLE tMhs (
 nim varChar(12) Not Null,
 nama varChar(20) Not Null);
Query OK, 0 rows affected (0.09 sec)
Perintah Dasar MySQL (lanjutan)
 Pada tabel tMhs tersebut dibuat 2 field yang masingmasing field diikuti oleh beberapa atribut, berikut
penjelasan masing masing field :
1. nim adalah field yang menampung data-data
nim mahasiswa dengan tipe data varchar dan
lebar data sebanyak 12 digit maksimal.
2. nama adalah field yang menampung data-data nama
mahasiswa dengan tipe data varchar dan lebar data
sebanyak 20 digit.
Perintah Dasar MySQL (lanjutan)
 Perintah untuk menampilkan struktur tabel ada dua
macam yaitu :
mysql> SHOW COLUMNS FROM tMhs;
atau
mysql> DESCRIBE tMhs;
+------------+-------------+------+-----+---------+----------+
| Field
| Type
| Null | Key | Default | Extra
|
+------------+-------------+------+-----+---------+----------+
| nim
| varchar(12) |
|
|
|
|
| nama
| varchar(20) |
|
|
|
|
+------------+-------------+------+-----+---------+----------+
2 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan)
 Perintah mengisi data
Pada MySQL terdapat beberapa cara mengisi data ke
dalam table antara lain sebagai berikut :
INSERT INTO Nama_Tabel
Set Kolom1 = ‘Data_Kolom1’,
Kolom2 = ‘Data_Kolom2’;
mysql> INSERT INTO tMhs
 Set nim = ‘2005-12-001’,
 nama = ‘Prasti’;
Query OK, 1 row affected (0.00 sec)
Perintah Dasar MySQL (lanjutan)
 Perintah mengisi data
Berikut adalah cara lain dalam memasukan data ke dalam
suatu table :
mysql> INSERT INTO tMhs
VALUES(‘2002-12-003’,’Jeniffer’);
Query OK, 1 row affected (0.00 sec)
Perintah Dasar MySQL (lanjutan)
 Menampilkan Data
Data yang kita masukan ke dalam tabel dapat di
tampilkan menggunakan perintah sebagai berikut :
SELECT * FROM Nama_Tabel;
mysql> SELECT * FROM tMhs;
+---------------+---------------+
| nim
| nama
|
+---------------+---------------+
| 2002-12-001
| Prasti
|
| 2002-12-003
| Jeniffer
|
+---------------+---------------+
2 row in set (0.02 sec)
Perintah Dasar MySQL (lanjutan)
 Mengubah Struktur Tabel
Kadang-kadang dalam pembuatan suatu table ada fieldfield masih kurang sehingga perlu adanya penambahan
satu atau lebih field dalam sebuah table.
Untuk itu tidak perlu membuat table baru, karena MySQL
telah menyedia-kan perintah untuk menambah atau
menyisipkan field diantara field-field yang telah ada pada
suatu table.
Perintah Dasar MySQL (lanjutan)
mysql> ALTER TABLE tMhs
--> Add jurusan varChar(15) Not Null;
Query OK, 1 row affected (0.06 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> DESCRIBE tMhs;
+------------+-------------+------+-----+---------+----------+
| Field
| Type
| Null | Key | Default | Extra
|
+------------+-------------+------+-----+---------+----------+
| nim
| varchar(12) |
|
|
|
|
| nama
| varchar(20) |
|
|
|
|
| jurusan
| varchar(12) |
|
|
|
|
+------------+-------------+------+-----+---------+----------+
3 rows in set (0.02 sec)
Perintah Dasar MySQL (lanjutan)
 Secara default setiap field yang baru ditambahkan akan
menempati posisi terakhir seperti pada contoh di atas. Jika
Anda ingin menempatkan diantara field yang ada misalnya
field harus berada pada urutan ke 3 maka tambahkan perintah
AFTER kemudian nama field sebelumnya.
mysql> ALTER TABLE tMhs
 Add fakultas varChar(20) Not Null
 AFTER nim;
Query OK, 1 row affected (0.06 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> DESCRIBE tMhs;
Perintah Dasar MySQL (lanjutan)
 Sebaliknya jika field-field yang Anda buat ternyata
tidak berguna semuanya sehingga harus dihilangkan
dari struktur table maka perintahnya adalah sebagai
berikut :
mysql> ALTER TABLE tMhs DROP fakultas;
Query OK, 1 row affected (0.05 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> DESCRIBE tMhs;
Perintah Dasar MySQL (lanjutan)
 Mengubah Data
User bisa saja salah dalam menginputkan data ke dalam
table, sehingga perlu adanya pengubahan data dalam
field-field tertentu. Atau ada field baru ditambahkan ke
dalam table sehingga datanya harus dimasukkan. Untuk
keperluan ini MySQL telah menyediakan perintah sebagai
berikut :
UPDATE Nama_Tabel
SET Kolom = ‘Pengubahan_Data’
WHERE kriteria;
Perintah Dasar MySQL (lanjutan)
 Mengubah Data
Contoh :
mysql> UPDATE tMhs
Set nim = ‘2002-12-002’ WHERE nama = ‘Prasti’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Untuk melihat hasil pengubahan ketikan perintah berikut :
mysql> Select * FROM tMhs;
Perintah Dasar MySQL (lanjutan)
 Menampilkan data dengan kriteria tertentu dapat
dilakukan dengan menambahkan perintah WHERE.
mysql> SELECT * FROM tMhs
WHERE nama = ’Prasti’;
 Menampilkan data pada kolom tertentu.
Kadang-kadang kita hanya membutuhkan data-data
tertentu saja tanpa harus menampilkan semua isi data
pada setiap kolom(field).
Adapun perintahnya adalah Select Kolom1, Kolom2 From
Nama_Tabel;
Perintah Dasar MySQL (lanjutan)
 Adapun perintahnya adalah :
Select Kolom1, Kolom2 From Nama_Tabel;
Contoh :
mysql> SELECT nim, nama FROM tMhs;
+---------------+--------------+
| nim
| nama
|
+---------------+--------------+
| 2002-12-002
| Prasti
|
| 2002-12-003
| Jeniffer
|
+---------------+--------------+
2 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan)
 Menampilkan data secara berurutan.
Bila kita ingin menampilkan data secara berurut cukup
dengan menambahkan perintah ORDER BY sehinggga
penulisan perintahnya adalah sebagai berikut :
SELECT * FROM Nama_Tabel ORDER BY
Kolom_Yang_Akan_Diurut Jenis_Pengurutan
Perintah Dasar MySQL (lanjutan)
 Jenis pengurutan ada dua yaitu Ascending (urut naik) dan
Descending (urut turun). Contoh di bawah ini
menggunakan jenis pengurutan Ascending, perhatikan
nama berurut naik (alphabet) sedangkan pada kolom nim
menjadi tidak berurutan karena yang diurutkan adalah
kolom nama.
mysql> SELECT * FROM tMhs ORDER BY nama ASC;
+-------------+------------+
| nim
| nama
|
+-------------+------------+
| 2002-12-003 | Jeniffer
|
| 2002-12-002 | Prasti
|
+-------------+------------+
2 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan)
 Perintah untuk menghapus data adalah :
DELETE FROM Nama_Tabel WHERE KRITERIA
mysql> DELETE FROM tMhs WHERE nama = ‘Prasti’;
Query OK, 1 row affected (0.03 sec)
Catatan :
MySQL tidak akan menanyakan konfirmasi ulang kepada
Anda untuk menghapus atau membatalkan penghapusan
data. Untuk itu pastikan bahwa data yang akan dihapus
adalah data yang tepat. Sebab data yang telah dihapus
tidak dapat dikembalikan dengan cara apapun (tidak ada
perintah Undo atau Undelete seperti pada windows).
Perintah Dasar MySQL (lanjutan)
 Menghapus tabel dan Database
Penghapusan tabel dan database dilakukan dengan
perintah DROP
Contoh Menghapus tabel :
mysql> DROP TABLE tMhs;
Query OK, 0 row affected (0.00 sec)
Contoh Menghapus database :
mysql> DROP DATABASE dbMhs;
Query OK, 0 row affected (0.01 sec)
Perintah Dasar MySQL (lanjutan)
 Keluar dari MySQL
Untuk keluar dari MySQL kita dapat menggunakan salah
satu dari perintah berikut ini :
1. mysql> Quit
Bye
2. mysql> Exit
Bye
3. mysql> \q
Bye
Operasi antar tabel
 Pada kenyataannya bahwa pembuatan sebuah system
pasti tidak menggunakan satu table saja. Tentu ada
operasi antar table disana.
 Hal ini memungkinkan untuk menampilkan data dari
beberapa table dalam satu tampilan sekaligus.
 Penggabungan antar table ini disebut dengan JOIN,
sedangkan hubungan antar table disebut dengan
RELASI.
 Dalam melakukan relasi antar table, maka perlu
adanya join key yang nantinya akan menentukan
record antar table dapat saling berhubungan.
Operasi antar tabel
 Untuk memahami operasi antar tabel, maka siapkan
database dengan 3 buah tabel sbb :
 Nama database : dbPegawai
 Nama Tabel :
1.
2.
3.
tInfoPrib
tBagian
tPekerjaan
Operasi antar tabel
 Table tInfoPrib:
CREATE TABLE tInfoPrib (
Nip VARCHAR( 5 ) NOT NULL ,
Nama VARCHAR( 25 ) NOT NULL ,
Kota VARCHAR( 15 ) NULL ,
TglLahir DATE NOT NULL ,
JK CHAR( 1 ) NOT NULL ,
PRIMARY KEY ( Nip )
);
Operasi antar tabel
 Table tBagian :
CREATE TABLE tBagian (
KodeBag CHAR( 1 ) NOT NULL ,
NamaBag CHAR( 15 ) NOT NULL ,
UNIQUE ( NamaBag )
);
Operasi antar tabel
 Table tPekerjaan :
CREATE TABLE tPekerjaan (
Nip VARCHAR( 5 ) NOT NULL ,
KodeBag CHAR( 1 ) NOT NULL ,
Gaji INT NOT NULL ,
PRIMARY KEY ( Nip )
);
Operasi antar tabel
mysql> Select tInfoprib.nip, tInfoprib.nama, tpekerjaan.gaji
-> From tInfoprib, tpekerjaan
-> WHERE tInfoPrib.nip=tpekerjaan.nip;
Hasil :
+-------+------------------+---------+
| nip
| nama
| gaji
|
+-------+------------------+---------+
| 12345 | Dian Permana
| 1200000 |
| 12346 | Tamara Febrianti | 1000000 |
| 12347 | Dara Permatasari | 1200000 |
| 12348 | Dita Nurafni
| 1200000 |
| 12349 | Dhani Akbar
| 1000000 |
| 12350 | Aan Setiawan
| 1000000 |
| 12351 | Raul Sitompul
| 1400000 |
| 12352 | Rahmanda
| 1000000 |
| 12353 | Niken
| 1000000 |
+-------+------------------+---------+
9 rows in set (0.00 sec)
Operasi antar tabel
mysql> Select tPekerjaan.Nip, tBagian.NamaBag As Departemen
-> From tPekerjaan, tBagian
-> WHERE tpekerjaan.kodebag = tbagian.kodebag;
Hasil :
+-------+------------+
| Nip
| Departemen |
+-------+------------+
| 12345 | Produksi
|
| 12346 | Pemasaran |
| 12347 | Akuntansi |
| 12348 | SDM
|
| 12349 | Pemasaran |
| 12350 | Produksi
|
| 12351 | Produksi
|
| 12352 | Pemasaran |
| 12353 | Pemasaran |
| 12354 | Pemasaran |
+-------+------------+
10 rows in set (0.05 sec)
Operasi antar tabel
mysql> SELECT i.Nip, i.Nama, p.Gaji
-> FROM tInfoprib i, tPekerjaan p
-> WHERE i.nip=p.nip;
Hasil :
+-------+------------------+---------+
| Nip
| Nama
| Gaji
|
+-------+------------------+---------+
| 12345 | Dian Permana
| 1200000 |
| 12346 | Tamara Febrianti | 1000000 |
| 12347 | Dara Permatasari | 1200000 |
| 12348 | Dita Nurafni
| 1200000 |
| 12349 | Dhani Akbar
| 1000000 |
| 12350 | Aan Setiawan
| 1000000 |
| 12351 | Raul Sitompul
| 1400000 |
| 12352 | Rahmanda
| 1000000 |
| 12353 | Niken
| 1000000 |
+-------+------------------+---------+
9 rows in set (0.00 sec)
Operasi antar tabel
mysql> SELECT i.Nip, i.Nama, p.Gaji
-> FROM tInfoprib i, tPekerjaan p
-> WHERE i.nip=p.nip AND i.jk ='W';
Hasil :
+-------+------------------+---------+
| Nip
| Nama
| Gaji
|
+-------+------------------+---------+
| 12346 | Tamara Febrianti | 1000000 |
| 12347 | Dara Permatasari | 1200000 |
| 12348 | Dita Nurafni
| 1200000 |
| 12352 | Rahmanda
| 1000000 |
| 12353 | Niken
| 1000000 |
+-------+------------------+---------+
5 rows in set (0.00 sec)