• Tidak ada hasil yang ditemukan

Basis Data TK1064 bagian 1

N/A
N/A
Protected

Academic year: 2018

Membagikan "Basis Data TK1064 bagian 1"

Copied!
10
0
0

Teks penuh

(1)

DDL &

DML In

MySQL

Basis Data

/TK1064 Bagian 1

Disampaikan Oleh

: Hanung N.

Prasetyo &

(2)

PANDUAN BASIS DATA

Berikut ini merupakan panduan dalam melakukan sintax MySQL dalam konteks meliputi Data Defnition language (DDL) dalam hal mendefnisikan tabel dan Data Manipulation Language (DML) dalam hal IUD (Input, Update, Delete).

Panduan ini sumbernya diambil dari beberapa tulisan di Internet (bukan tulisan asli penulis). Silakan digunakan sebagai bagian dari pembelajaran dikelas selama proses perkuliahan.

DDL & DML

CREATE TABLE

Format Pembuatan Table : CREATE TABLE Nama_Tabel ( Nama_kolom1tipe_kolom1,

Nama_kolom2tipe_kolom2, Constraint1, Constraint2 );

Format Constraint Primary Key:

CONSTRAINT Nama_Constraint PRIMARY KEY (Nama_Kolom); Format Constraint Foreign Key:

CONSTRAINT Nama_Constraint FOREIGN KEY (Nama_KolomFK) REFERENCES Nama_Tabel_Induk (Nama_KolomTI);

Contoh 1: Membuat Tabel Anggota dengan primary key pada kolom no_anggota

create table anggota( no_anggota number(6),

nama_anggota varchar(50) not null, alamat_anggota varchar (100),

constraint pk1 primary key(no_anggota) );

Contoh2: Membuat Tabel Peminjaman dengan 2 buah foreign key yang mengacu ke 2 buah tabel induk

create table peminjaman( id_buku char(4),

no_anggota number(6),

(3)

denda number(7,2),

constraint fk1 foreign key(id_buku) references buku(id_buku),

constraint fk2 foreign key(no_anggota) references anggota(no_anggota) );

NOTE: Pada saat membuat tabel yang memiliki foreign key, pastikan tabel induk sudah dibuat dan tipe data kolom induk sama persis dengan tipe data kolom FK, adapun nama kolom boleh berbeda.

ALTER TABLE

Format Menambah Kolom/Constraint Table : ALTER TABLE Nama_Tabel ADD (

Nama_kolom1tipe_kolom1, Nama_kolom2tipe_kolom2, Constraint1, Constraint2 );

Format Memodifkasi Kolom Table : ALTER TABLE Nama_Tabel MODIFY ( Nama_kolom1tipe_kolom1,

Nama_kolom2tipe_kolom2 );

Format Membuang Kolom/Constraint Table :

ALTER TABLE Nama_Tabel DROP COLUMN Nama_Kolom;

Atau

ALTER TABLE Nama_Table DROP CONSTRAINT Nama_Constraint;

Contoh1: Menambah kolom golongan darah dan sebuah foreign key ke tabel x kolom_anu

alter table anggota add( golongan_darah char(1),

constraint c foreign key (golongan_darah) references X(anu) );

Contoh2: Mengubah tipe data kolom golongan darah menjadi max 2 karakter

alter table anggota modify( golongan_darah varchar(2) );

Contoh3: Membuang kolom golongan_darah dari tabel anggota

(4)

drop column golongan_darah;

Contoh4: Membuang constraint c yang bertipe foreign key dari tabel anggota

alter table anggota drop constraint c;

DROP TABLE

Format Penghancuran Table : DROP TABLE Nama_Tabel;

Contoh: Menghancurkan tabel anggota berikut seluruh data yang ada di dalamnya

drop table anggota;

Note: Jika tabel A masih diacu oleh tabel B maka harus menghancurkan dulu tabel B sebelum tabel A.

INSERT

Format Menambah Data Jika Semua Kolom Ingin Diisi: INSERT INTO Nama_Tabel VALUES (

Data_kolom1, Data_kolom2, Data_kolom3 );

Format Menambah Data Jika Hanya Kolom Tertentu Yang Diisi: INSERT INTO Nama_Tabel (Nama_Kolom1, Nama_Kolom2)

VALUES ( Data_kolom1, Data_kolom2 );

Contoh1: Menambah data pada tabel anggota (semua kolom diisi sesuai urutan kolom pada tabel)

insert into anggota values( 101,

‘Ngatimin van der Woodsen’, ‘Jl. Entah Berantah nomor sekian’ );

Contoh2: Menambah data pada tabel anggota hanya pada kolom2 tertentu saja

(5)

‘B001’, 101,

’31-JAN-1985’, ’23-FEB-1985’ );

Note:

Insert untuk semua kolom memperhatikan urutan kolom sesuai perintah DESC Nama_Tabel Untuk tipe data selain number penulisan data diapit dengan petik tunggal (‘)

Format Penulisan Date : DD-MON-YYYY (2 digit tanggal, 3 digit awal bulan dalam bhs inggris, 4 digit tahun)

UPDATE

Format Mengubah Data: UPDATE Nama_Tabel SET Nama_Kolom = data_baru WHERE syarat_perubahan_data;

Contoh1: Mengubah semua alamat anggota menjadi ‘Sukabirus’

update anggota set alamat_anggota = ‘Sukabirus’;

Contoh2: Mengubah no_anggota 101 menjadi 201

update anggota set no_anggota = 201 where no_anggota = 101;

Contoh3: Mengubah semua alamat anggota menjadi ‘Sukabirus’ jika nomor anggota antara 200 dan 300

update anggota set alamat_anggota = ‘Sukabirus’ where (no_anggota >= 200) and (no_anggota <= 300);

DELETE

Format Menghapus Data: DELETE FROM Nama_Tabel

WHERE syarat_perubahan_data; Contoh1: Menghapus seluruh isi tabel anggota

delete from anggota;

Contoh2: Meghapus data anggota yang nomor anggotanya 101

(6)

Contoh3: Menghapus semua data anggota yang nomor anggotanya mulai 200 sampai 300

delete from anggota

where (no_anggota >= 200) and (no_anggota <= 300);

Note: Jika fasilitas autocommit dimatikan maka penyimpanan terhadap perubahan data (insert, update, delete) akan terjadi setelah dilakukan perintah COMMIT atau DISC. Jika belum melakukan COMMIT ato DISC dan ingin mengembalikan data ke kondisi semula dapat digunakan perintah ROLLBACK.

SIMPLE QUERIES

SELECT... FROM... WHERE

Format Query Data: SELECT daftar_kolom FROM daftar_tabel

WHERE syarat_dan_atau_foreign_key

Fungsi Agregat: MIN(), MAX(), AVG(), SUM(), COUNT()

SELECT daftar_kolom_non_fungsi_ag, fungsi_ag(nama_kolom1), fungsi_ag(nama_kolom2)

FROM daftar_tabel

WHERE syarat_dan_atau_foreign_key GROUP BY daftar_kolom_non_fungsi_ag

(*) Fungsi agregat dapat digunakan sebagai pengganti daftar kolom, digunakan setelah SELECT...

(*) Jika setelah SELECT digunakan fungsi agregat bersama kolom yang lain yang bukan fungsi agregat maka HARUS menggunakan klausa GROUP BY. Perhatikan contoh 3,4,5 dan 6

Contoh1: Menampilkan nama dan alamat anggota yang diawali huruf A dan terdiri dari 5 huruf

select nama_anggota, alamat_anggota from anggota

where nama_anggota like 'A____';

Contoh2: Menampilkan nama anggota dan judul buku yang diawail huruf W dan terdiri dari MINIMAL 8 huruf

select nama_anggota, judul_buku from anggota, buku, peminjaman

where anggota.no_anggota = peminjaman.no_anggota and buku.id_buku = peminjaman.id_buku

and judul_buku like 'W_______%';

Contoh3: Menampilkan total denda yang pernah dibayar oleh Ngatimin (tanpa menampilkan nama Ngatimin)

(7)

from peminjaman, anggota

where anggota.no_anggota = peminjaman.no_anggota and nama_anggota = 'Ngatimin';

Contoh4: Menampilkan jumlah buku yang pernah dipinjam oleh Ngatiyem (tanpa menampilkan nama Ngatiyem)

select count(id_buku) as jmlbuku from peminjaman, anggota

where anggota.no_anggota = peminjaman.no_anggota and nama_anggota = 'Ngatiyem';

Contoh5: Menampilkan total denda yang pernah dibayar oleh Ngatimin (dengan menampilkan nama Ngatimin)

Select nama_anggota, sum(denda) as totaldenda from peminjaman, anggota

where anggota.no_anggota = peminjaman.no_anggota and nama_anggota = 'Ngatimin'

group by nama_anggota;

Contoh6: Menampilkan jumlah buku yang pernah dipinjam oleh Ngatiyem (dengan menampilkan nama Ngatiyem)

select nama_anggota, count(id_buku) as jmlbuku from peminjaman, anggota

where anggota.no_anggota = peminjaman.no_anggota and nama_anggota = 'Ngatiyem'

group by nama_anggota;

Contoh 7: Menampilkan judul buku dan tanggal peminjaman buku oleh Ngatimin yg tidak dikembalikan

select judul_buku, tanggal_pinjam from peminjaman, anggota, buku

where anggota.no_anggota = peminjaman.no_anggota and buku.id_buku = peminjaman.id_buku

and nama_anggota = 'Ngatimin' and tanggal_kembali is null;

SIMPLE ANONYMOUS PL/SQL

Panduan:

(8)

2. Bagian inti program selalu diawali dengan BEGIN dan diakhiri dengan END; serta / 3. PL/SQL dapat disimpan sebagai fle *.sql dan di-run sebagai script dengan perintah @

fullpath, dimana fullpath tidak boleh mengandung spasi contoh: @ D:\BelajarOracle\Pertemuan3\anu.sql;

4. Jika blok PL/SQL menmapilkan output ke layar maka setelah login kita harus mengaktifkan screen output dengan cara menjalankan perintah SET SERVEROUTPUT ON setelah login (cukup satu kali tiap login)

5. Aturan nama variabel: tidak boleh pakai spasi, diawali selain huruf atau mengandung simbol tanda baca

Format Deklarasi Variabel: Nama_Var Tipe_data;

atau

Nama_Var Nama_Tabel.Nama_Kolom%Type; Format Pembacaan Single Row Data: SELECT daftar_kolom

INTO daftar_variabel FROM daftar_tabel WHERE syarat;

(*) Format di atas tidak bisa digunakan jika hasil query lebih dari 1 baris, kecuali jika dilengkapi dengan exception

Format Penerimaan Input Dari User: Nama_Var := &prompt;

atau

Nama_Var := ‘&prompt’;

Note: Prompt bebas namun tidak boleh menggunakan spasi dan simbol selain alfanumerik. Jika Input bertipe selain tipe data number maka &prompt harus diapit petik tunggal (‘)

Contoh1: Menerima input jari-jari dan menampilkan luas serta keliling lingkaran

Declare

jari2 number(5,2); keliling number(7,2); luas number(7,2); begin

jari2 := &jari2;

keliling := 2 * 3.14 * jari2; luas := 3.14 * power(jari2,2);

(9)

dbms_output.put_line('keliling lingkaran = '||keliling); dbms_output.put_line('luas lingkaran = '||luas);

end; /

Contoh2: Menerima input nama anggota dan menampilkan alamatnya

Declare

cari varchar(30);

nama anggota.nama_anggota%type; alamat anggota.alamat_anggota%type; begin

cari := '&nama_yang_dicari';

select nama_anggota, alamat_anggota into nama, alamat

from anggota

where nama_anggota = cari;

dbms_output.put_line(nama||' tinggal di '||alamat); end;

/

PL/SQL WITH CONDITIONAL

IF... THEN...

IF... THEN... ELSE...

IF... THEN... ELSIF... ELSE...

CASE... WHEN...

(10)

FOR... LOOP

WHILE... LOOP

LOOP... EXIT WHEN...

PL/SQL WITH CURSOR

CURSOR WITHOUT EXCEPTION

Referensi

Dokumen terkait

Tanggal Perkiraan periode pernyataan kehendak pemegang saham 24 November – 01 Desember 2011 Public Sorini yang berkehendak untuk menjual sahamnya. Tanggal efektif penggabungan

perakaran, sekurang ‐ kurangnya kedalaman air tanah 3 meter dari permukaannya. Akar tanaman kopi membutuhkan oksigen yang tinggi, yang berarti tanah yang.. drainasenya kurang baik

Lain hal jika rata-rata skor tes awal kelompok kontrol berbeda secara signifikan dengan rata-rata skor tes awal kelompok eksperimen, maka harus dilakukan pengolahan data

(eftidir digunakan untuk infeksi saluran nafas atas dan ba&lt;ah sinusitis# eksaserbasi akut bronkitis kronis' yang disebabkan oleh bakteri. Ibat ini &#34;ugaa digunakan se)ara

Persyaratan kawasan minapolitan adalah : (a) kesesuaian dengan Rencana Strategis, Rencana Tata Ruang Wilayah (RTRW) dan/atau Rencana Zonasi Pengelolaan Wilayah

Puji syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan taufik, rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi dengan judul “ Pengaruh

Peraturan Pemerintah Nomor 79 Tahun 2005 tentang Pedoman Pembinaan dan Pengawasan Penyelenggaraan Pemerintah Daerah 54. Perpres Nomor 185 Tahun 2014 tentang Percepatan

Surat Perjanjian dibuat dan ditandatangani oleh Kedua Belah Pihak secara sadar dan tanpa tekanan dari Pihak manapun di Jakarta pada hari, tanggal dan bulan seperti tersebut di