Dosen : Bp. Allen Boby Hartanto
MATKUL : Pemrograman SQL
® by Echa
A. Membuat Database
CREATE DATABASE db_toko;
B. Tabel Staff
CREATE TABLE `db_toko`.`staff`
( `id_staff` VARCHAR( 10 ) NOT NULL ,
`nama_staff` VARCHAR( 60 ) NOT NULL ,
`username` VARCHAR( 60 ) NOT NULL ,
`password` VARCHAR( 60 ) NOT NULL , PRIMARY KEY ( `id_staff` ) ) ;
Edit Tabel Staff
ALTER
TABLE `staff` ADD `jenis_kelamin` ENUM(‘p’,‘w’) NOT NULL AFTER `password`, ADD `tgl_lahir` DATE NOT NULL AFTER `jenis_kelamin`, ADD `alamat` VARCHAR(100) NOT NULL AFTER tgl_lahir`;C. Tabel Pelanggan
CREATE
TABLE `db_toko`.`pelanggan` (
`id_pelanggan` VARCHAR( 6 ) NOT NULL ,
`nama_pelanggan` VARCHAR( 60 ) NOT NULL , `alamat`
VARCHAR( 100) NOT NULL ,
`telephone` VARCHAR( 12 ) NOT NULL ,
PRIMARY KEY ( `id_pelanggan` ) )D. Tabel Barang
CREATE
TABLE `db_toko`.`barang` (
`kode_barang` VARCHAR( 6 ) NOT NULL ,
`nama_barang` VARCHAR( 100 ) NOT NULL ,
`stok` INT(100) NOT NULL ,
`satuan` VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( `kode_barang` ) )E. Tabel PenjualanCreate
table penjualan (
id_penjualan VARCHAR(6) PRIMARY KEY NOT NULL,
id_staff VARCHAR(10) not null,
id_pelanggan VARCHAR(6) not null,
tgl_strk datetime not null,
constraint fk_penjualan_staff Foreign key(id_staff) references staff(id_staff),
constraint fk_penjualan_pelanggan Foreign key(id_pelanggan) references pelanggan(id_pelanggan) )F. Tabel Detail PenjualanCREATE
TABLE detail_penjualan(
id_trns int NOT NULL AUTO_INCREMENT primary key,
id_penjualan VARCHAR(6) NOT NULL ,
kode_barang VARCHAR(6) NOT NULL ,
qty int(20) NOT NULL ,
harga decimal(17,2) NOT NULL,
total decimal(17,2) NULL,constraint
fk_detail_penjualan Foreign key(id_penjualan) references penjualan(id_penjualan), constraint fk_detail_barang Foreign key(kode_barang) references barang(kode_barang) )=======================ISI TABEL ========================
A. Insert Data Tabel Staff
INSERT INTO `db_toko`.`staff` (`id_staff`, `nama_staff`, `username`, `password`, `jenis_kelamin`, `tgl_lahir`, `alamat`) VALUES
('0001', 'Deswa', 'deswa_wa', '123', 'p', '1989-05-05', 'Puri Kembangan'),
('0002', 'Ririn', 'rina_rinarin', '345', 'w', '1992-11-04', 'Margonda Depok')
('0003', 'Irwan', 'wawan25', '789', 'p', '1990-05-05', 'Grogol Jaya'),
('0004', 'Sukijan', 'kiki_ij', '4321', 'p', ' 1990-05-05', 'Meruya Utara')
('0005', 'Sukirman', 'Uki_juki', '5632', 'p', '1993-08-07', 'Cawang');B. . Insert Data Tabel Pelanggan
INSERT INTO `db_toko`.`pelanggan` (`id_pelanggan`, `nama_pelanggan`, `alamat`, `telephone`) VALUES
(’10001′, ‘Reno’, ‘Serpong ‘, ’08121298821′),
(’10002′, ‘Kirey’, ‘Pasar Minggu’, ’08321678908′)
(’10003′, ‘Evan’, ‘Manggarai’, ’08215643789′),
(’10004′, ‘Dimas’, ‘Bogor’, ’087653423245′)
(’10005′, ‘Jihan’, ‘Lenteng Agung’, ’5769809090′);
C. . Insert Data Tabel BarangINSERT INTO `db_toko`.`barang` (`kode_barang`, `nama_barang`, `stok`, `satuan`)
VALUES
(‘B0001′, ‘Detergen’, ’100′, ‘pcs’),
(‘B0002′, ‘Minyak goreng’, ’50′, ‘pouch’)
(‘B0003′, ‘Pulpen’, ’70′, ‘pack’),
(‘B0004′, ‘Mie’, ’200′, ‘bh’)
(‘B0005′, ‘Sasa’, ’80′, ‘bh’),
(‘B0006′, ‘Aqua kecil’, ’200′, ‘btl’)
(‘B0007′, ‘Es krim’, ’50′, ‘bh’),
(‘B0008′, ‘Gula pasir’, ’300′, ‘kg’)
(‘B0009′, ‘Vaselin uk. 200 ml’, ’80′, ‘btl’),
(‘B0010′, ‘Coklat 100 gr’, ’65′, ‘bh’);
D. Insert Data Transaksi penjualanINSERT INTO `db_toko`.`penjualan` (`id_penjualan`, `id_staff`, `id_pelanggan`, `tgl_strk`) VALUES (‘P001′, ’0001′, ’10005′, ’2015-05-05 09:08:36′),
(‘P002′, ’0002′, ’10004′, ’2015-02-02 14:08:22′)
(‘P003′, ’0003′, ’10003′, ’2015-02-03 19:24:03′),
(‘P004′, ’0004′, ’10002′, ’2015-01-22 14:20:50′)
(‘P005′, ’0005′, ’10001′, ’2015-03-11 18:19:03′);
E. Insert Tabel Detail Penjualan
INSERT INTO `db_toko`.`detail_penjualan`
(`id_trns`, `id_penjualan`, `kode_barang`, `qty`, `harga`, `total`) VALUES
(’2′, ‘P002′, ‘B0010′, ’3′, ’50000′, NULL),
(’3′, ‘P003′, ‘B0009′, ’7′, ’56000′, NULL)
(’4′, ‘P004′, ‘B0008′, ’12′, ’12000′, NULL),
(’5′, ‘P005′, ‘B0007′, ’15′, ’60000′, NULL)
(’6′, ‘P003′, ‘B0005′, ’2′, ’50000′, NULL),
(’7′, ‘P001′, ‘B0004′, ’8′, ’10000′, NULL),
(’8′, ‘P002′, ‘B0006′, ’17′, ’25000.99′, NULL),
(’9′, ‘P002′, ‘B0002′, ’20′, ’5000.95′, NULL)
(’10′, ‘P002′, ‘B0001′, ’10′, ’18000′, NULL);
=================Membuat Trigger=================
≫ Triger Insert
DROP TRIGGER IF EXISTS `TG_jual`;CREATE TRIGGER `TG_jual` AFTER INSERT ON `detail_penjualan`
FOR EACH ROW BEGIN UPDATE barang set stok = stok-NEW.qty WHERE kode_barang=NEW.kode_barang; END
DELIMITER $$
≫Trigger Update
CREATE
TRIGGER `djual_after_upd_tr`
AFTER UPDATE ON `detail_penjualan`
FOR EACH ROW BEGIN UPDATE barang
SET stok = stok - NEW.qty + OLD.qty WHERE kode_Barang = OLD.kode_Barang; END;DELIMITER $$
≫Trigger Delete
CREATE
TRIGGER `TG_delete`
BEFORE DELETE ON `detail_penjualan`
FOR EACH ROW BEGIN UPDATE barang
SET stok = stok + OLD.qty WHERE kode_barang = OLD.kode_Barang; ENDDELIMITER $$
≫ Trigger Penjumlahan Harga
CREATE TRIGGER `TG_total_harga`
BEFORE INSERT ON detail_penjualan
FOR EACH ROW BEGIN SET new.Total = new.qty * new.harga; END
DELIMITER $$
============TAMPILAN SESUDAH TRIGGER===================
=========MEMBUAT TAMPILAN DATA SBB========
ID_penjualan
|
Tgl_penjualan
|
Jumlah Harga
|
Nama Pelanggan
|
Nama Staff
|
Total Barang
|
SELECT
penjualan.id_penjualan, penjualan.tgl_strk as tanggal_penjualan, sum(detail_penjualan.total) as
Jumlah_penjualan,pelanggan.nama_pelanggan, staff.nama_staff,sum(detail_penjualan.qty)as Total_Barang FROM
penjualan,detail_penjualan,pelanggan, staff
WHERE penjualan.id_penjualan=detail_penjualan.id_penjualan
AND pelanggan.id_pelanggan=penjualan.id_pelanggan AND staff.id_staff =penjualan.id_staff
GROUP BY penjualan.id_penjualan
WHERE penjualan.id_penjualan=detail_penjualan.id_penjualan
AND pelanggan.id_pelanggan=penjualan.id_pelanggan AND staff.id_staff =penjualan.id_staff
GROUP BY penjualan.id_penjualan



Tidak ada komentar:
Posting Komentar