Praktikum 1
Materi :
- melakukan koneksi MySQL ke server
- memutuskan koneksi MySQL dari server
Catatan : -
Dengan user merupakan if1YXXX (dengan Y merupakan digit terakhir angkatan, dan
XXX merupakan 3 digit terakhir NIM), dan password merupakan if1YXXX (dengan
Y merupakan digit terakhir angkatan, dan XXX merupakan 3 digit terakhir NIM)
Jika koneksi berhasil, pada layar akan muncul sebagai berikut :
shell> mysql -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or
\g.
Your MySQL connection id is 25338 to server version: 4.0.14log
Type 'help;' or '\h' for help. Type '\c' to clear the
buffer. mysql>
Praktikum 2
Materi :
- pembuatan basis data
- penggunaan basis data
- penghapusan basis data
Catatan :
- pada praktikum kali ini, tidak akan dibuat basis data baru
- pada praktikum kali ini, tidak akan dilakukan penghapusan basis data
Pada layar, akan ditampilkan basis data apa saja yang sudah ada.
Untuk membuat sebuah database pada MySQL, dapat dilakukan dengan perintah
berikut :
mysql> CREATE DATABASE IF NOT EXISTS test;
Untuk menggunakan basis data yang telah kita buat, dapat digunakan perintah :
mysql> USE test
Database changed
Pada praktikum kali ini, tidak akan dibuat basis data baru. Setiap user yang
memiliki login ke mysql sudah dibuatkan basis data untuk masing-masing
user, dengan nama basis data sama dengan nama user_id (if1YXXX).
mysql> USE ifYXXX
Database changed
Menghapus database
Untuk menghapus sebuah database, cukup dilakukan dengan perintah :
mysql> DROP DATABASE IF EXISTS test;
Jika kita melakukan perintah show databases, maka basis data test tidak
akan muncul lagi.
Pada praktikum kali ini, kita tidak akan melakukan perintah penghapusan
basis data
Praktikum 3
Materi :
- Pembuatan tabel secara manual
- Pembuatan tabel dengan menggunakan file script
- Penghapusan tabel
Catatan :
- Klausa yang berada di antara [] bersifat optional
- untuk praktikum selanjutnya akan digunakan skema basis data sebagai berikut
:
Hasil perintah di atas menunjukkan bahwa basis data kita masih kosong.
Untuk membuat tabel categories berdasarkan skema di atas, dapat dilakukan
dengan perintah berikut :
CREATE TABLE IF NOT EXISTS categories (
CategoryID smallint(6) NOT NULL default
'0', CategoryName varchar(255) default
NULL, Description varchar(255) default
NULL,
LATIHAN!!!
Dengan menggunakan skema store yang telah didefinisikan di atas, buatlah
semua tabel yang ada pada skema.
Menghapus tabel
Untuk menghapus satu atau lebih tabel pada MySQL, dapat dilakukan dengan
perintah berikut :
mysql>DROP
...]
TABLE
IF
EXISTS
table_name
[table_name,
Perintah DROP dapat dilakukan untuk menghapus satu atau lebih tabel sekaligus.
Pada praktikum kali ini, kita tidak akan melakukan perintah penghapusan tabel
Praktikum 4
Materi :
- melakukan pengisian tabel secara manual
- melakukan pengisian tabel dengan menggunakan file script
Catatan :
- klausa yang berada di antara [] bersifat optional
- pada praktikum kali ini akan digunakan skema basis data store
sintaks ini menggunakan perintah insert suatu nilai kedalam tabel, dapat pula
nama fieldnya didefinisikan/tidak didefinisikan
Field yang diisi didefinisikan pada klausa sebelum VALUES dan nilai dari
isian terletak sesudah VALUES, urutan nilai sama dengan urutan nama field.
insert into products VALUES (78,"Soap",10,"10 Bar",75000) ;
Field yang diisi secara berurutan dan nilai dari isian terletak sesudah VALUES,
semua field harus diisi dengan sebuah nilai.
3. Buatlah sebuah tabel bernama tabel_1 dengan definisi atribut dan tipe
atribut sama seperti tabel categories pada skema basis data store
CREATE TABLE tabel_1 (
CategoryID smallint(6) NOT NULL default '0',
CategoryName varchar(255) default
NULL, Description varchar(255) default
NULL, PRIMARY KEY (CategoryID)
);
Jika file Store_Data.sql merupakan file yang mendefinisikan isi dari tabel-tabel
yang telah dibuat, dan terletak pada folder C:/BasisData.
LATIHAN!!!
Isilah
tabel-tabel
Store_Data.sql
yang
telah
dibuat
dengan
menggunakan
file
Dengan
query
ini
dapat
dilakukan
penambahan/penghapusan
kolom,
pembuatan/penghapusan index, perubaan tipe kolom dan perubahan nama
kolom/tabel. Untuk melakukan query ini user harus memiliki kekuasaan untuk
select, insert, delete, update, create dan drop.
ADD adalah klausa untuk menambahkan sesuatu pada struktur tabel yang telah ada
CHANGE adalah klausa untuk merubah nama dan tipe dari sebuah kolom, sedangkan
MODIFY melakukan perubahan tipe tanpa melakukan perubahan nama. Jika
melakukan MODIFY dan CHANGE maka MySQL akan melakukan konversi tipe
pula sebaik mungkin.
ALTER COLUMN adalah klausa yang digunakan untuk memberi/menghapus nilai
default dari sebuah kolom.
DROP klausa untk menghapus struktur dari tabel.
RENAME adalah klausa untuk merubah nama tabel
3. Hapus field Country dari tabel employees karena karyawan berada pada
satu negara.
alter table employees drop Country ;
LATIHAN!!!
1. Tentukan bahwa primary key pada tabel pelanggan adalah CustomerID
dan CompanyName
2. Tambahkan field Deskripsi bertipe varchar (200) pada tabel
products.
3. Hapuskan field ContactTitle pada tabel pelanggan
Praktikum 5
Materi :
- Mengetahui perintah-perintah yang digunakan untuk menampilkan isi tabel
Catatan :
- klausa yang berada di antara [] bersifat optional
- pada praktikum kali ini akan digunakan skema basis data store
Perintah SELECT...FROM...WHERE
Klausa select digunakan untuk menampilkan record yang ada pada basis data
dengan suatu kriteria tertentu yang telah didefinisikan.
select [nama_field] [from [tabel] [where [kondisi]]]
[group by([nama_field])] [order by (nama_field) [desc | asc]] ;
nama_field "
MySQL versi 3.23 tidak mendukung query select into table, yang
merupakan query select yang hasilnya langsung di simpan pada suatu tabel.
Sebagai solusinya dapat digunakan query SELECT INTO OUTFILE...
atau CREATE TABLE ... SELECT untuk menyelesaikan keterbatasan
tersebut.
5 adalah konstanta
? select CategoryName,CURTIME() from categories ;
CategoryName adalah nama field yang ada pada tabel categories dan
CURTIME() adalah fungsi yang mengembalikan waktu saat ini.
? select * from cutomers;
Hasil query dari select * from customers disimpan pada tabel baru
yang bernama tabel1 bandungkan dengan isi tabel customer
LATIHAN!!!
1. Cari semua pegawai (First Name dan Last Name) yang memiliki
title/jabatan sebagai sales representative.
Perintah JOIN
Join menggunakan select sintaks,
select [nama_field] from [ekspresi_join];
operasi join biasanya dilakukan lebih dari satu tabel, dan proses join akan melakukan
persamaan pada sebuah field tabel1 dengan sebuah field tabel2.
ekspresi_join yang dapat didukung MySQL, adalah :
1. tabel1 CROSS JOIN tabel2
tabel1 STRAIGHT_JOIN tabel2
melakukan cross product terhadap kedua tabel, sehingga serupa dengan hasil
query select * from tabel1,tabel2;
2. tabel1 INNER JOIN tabel2 on tabel1.field1=tabel2.field2
melakukan
join
antara
tabel1
dan
tabel2,
dengan
syarat
tabel1.field1=tabel2.field2, sehingga record yang ditampilkan adalah
yang memiliki field1 yang terdefinisi/sama dengan tabel2.field2
3. tabel1 LEFT [OUTER] JOIN tabel2 on tabel1.field1=tabel2.field2
melakukan
join
antara
tabel1
dan tabel2, dengan
syarat
tabel1.field1=tabel2.field2, sehingga record yang ditampilkan adalah
semua field1 dan tidak selalu terdefinisi pada tabel2.field2. Sehingga
dimungkinkan tabel sisi kanan null karena tidak ada field1 yang sama
dengan field2
4. tabel NATURAL [LEFT [OUTER]] JOIN tabel
untuk natural join mirip dengan inner
join, melainkan
menggunakan kondisi join (ekspresi on). Sedangkan natural left
mirip dengan left join, melainkan tanpa menggunakan kondisi
Pemroses query secara otomatis melakukan penyamaan pada field
memiliki nama sama.
tanpa
join
join.
yang
mirip langkah 5
LATIHAN!!!
1. Tampilkan semua nama produk dan SupplierID (jika ada) dengan
klausa left join dan natural left join
2. Tampilkan nama produk yang yang belum memiliki supplier
(SupplierID tidak ada)
3. Tampilkan nama produk dan nama supplier yang telah memiliki
supplier dengan klausa inner join dan natural join
4. Tampilkan hasil cross product antara categories dan products
(3 cara)
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC |
DESC] ,...]
[LIMIT [offset,] rows]]
nama_field " kolom-kolom yang muncul pada hasil seleksi, dapat berupa
sebuah field pada tabel, fungsi atau konstanta
tabel " nama tabel yang terlibat pada proses seleksi, tidak hanya yang fieldnya
ditampilkan pada hasil seleksi
kondisi " persyaratan yang harus dipenuhi, jika record ingin ditampilkan
sebagai hasil dari seleksi
select " klausa seleksi
from " klausa yang menyatakan tabel mana saja yang terlibat pada proses seleksi
where " persyratan yang harus dipenuhi agar suatu record dapat ditempilkan
sebagai hasil
group by " pengelompokan hasil berdasarkan nama_field
order by " pengurutan hasil berdasar nama_field tertentu
limit " row yang akan ditampilkan
(Praktikum 3).
2. Penggunaan order by
from
products
order
by
products
order
by
UnitPriceTag
limit
from
4. Penggunaan group by
Menampilkan jumlah supplier yang menyediakan suatu barang
select ProductName,count(*) from supply_product a, products b
where a.ProductID=b.ProductID group by a.ProductID;
5. Penggunaan having
having memiliki fungsi yang mirip dengan where, melainkan klausa ini
dilakukan tanpa optimasi dan dilakukan sesaat sebelum di hasil query
diberikan ke pengguna.
Klausa ini biasanya digunakan bersamaan dengan klausa group by.
Menapilkan daftar barang dan harga penawaran termurah darai supplier,
dengan syarat harga penawaran termurah itu lebih besar dari 250.000,Jika menggunakan klausa where tidak bisa
select
ProductName,min(UnitPriceSupplier)
supply_product
a
left
join
products
a.ProductID=b.ProductID
group
by
a.ProductID
min(UnitPriceSupplier) > 250000;
from
on
having
LATIHAN!!!
1. Tampilkan Order ID dan total pembelian barang, yang merupakan 5 besar
order terbesar. " order by, limit
2. Tampilkan daftar pegawai dan jumlah order yang telah ditangani tiap pekerja
selama ini. " group by
3. query seperti no 1 tetapi dengan persyaratan bahwa rata rata harga
penawaran lebih besar dari 150.000,- " having
Praktikum 6
Materi :
- mengetahui perintah yang digunakan untuk melakukan pengubahan isi tabel
Catatan :
- klausa yang berada di antara [] bersifat optional
- pada praktikum kali ini akan digunakan skema basis data store
WHERE " sebuah ekspresi yang digunakan sebagai filter record mana saja yang
akan dihapus
LIMIT " jumlah n record pertama yang akan dihapus
Name1 adalah nama field yang akan diganti nilainya dan expr1 adalah nilai baru
dari field tersebut.
Perhatikan semula barang yang berharga 100000 ada 6 benda dan sekarang
tinggal 3 barang saja
LATIHAN!!!
1. Ubah Freight dari orders yang memiliki Freight = 0 menjadi
sebesar 70000
2. Tarif Freight dari orders yang memiliki OrderID antara 10301 s/d
Praktikum 7
Materi :
- mengetahui perintah yang digunakan untuk melakukan penghapusan isi tabel
Catatan :
- klausa yang berada di antara [] bersifat optional
- pada praktikum kali ini akan digunakan skema basis data store
WHERE " sebuah ekspresi yang digunakan sebagai filter record mana saja yang akan
dihapus
LIMIT " jumlah n record pertama yang akan dihapus
JANGAN pernah melakukan operasi DELETE tanpa ekspresi WHERE
jika anda tidak pernah menginginkan kehilangan semua record pada
tabel anda.
LATIHAN!!!
1. Hapus semua data customer pada tabel customers, yang berasal dari UK
2. Hapus semua data customer pada tabel customers, yang tidak memiliki
nomor fax
Praktikum 8
Materi :
- mengetahui perintah yang digunakan untuk melakukan pembuatan file script
yang berisi skema dan data dari database
Catatan :
- klausa yang berada di antara [] bersifat optional
- pada praktikum kali ini akan digunakan skema basis data store
database_name
>
Bila database bernama if12001 dan file sql yang dibuat bernama
if12001.sql. File if12001.sql akan berisi struktur pendefinisian tabel-tabel
yang ada pada database (seperti yang ada pada file Store_Skema.sql) dan
juga berisi data dari semua tabel yang ada (seperti yang ada pada file
Store_Data.sql)
LATIHAN!!!
Buatlah sebuah file dump (*.sql) yang berisi skema dan data dari database
yang anda gunakan selama praktikum ini
Selamat Bekerja!!!!
~Asisten IF3111 Basis Data~