Soal SQL
Table : Customer
|
Table : Barang
|
Table : Penjualan
NoFaktur
|
TglFaktur
|
KdCustomer
|
P-001
|
10/5/2006
|
C-109
|
P-002
|
11/5/2006
|
C-003
|
P-003
|
11/5/2006
|
C-065
|
P-004
|
12/5/2006
|
C-109
|
1. Buatlah
tabel Customer dan tabel Penjualan di atas, lengkap dengan primary key
serta foreign key nya
2.
Isikan
data pada table customer sesuai dengan data di atas
3. Ubah
nama customer menjadi PT. Samudra Jaya dan kota menjadi Cirebon untuk kode
customer C-109
4.
Munculkan
tanggal transaksi yang dilakukan oleh customer PT. Samudra
5.
Munculkan
data barang yang stoknya di atas 15
6.
Munculkan
nama dan kota customer yang sudah melakukan transaksi pembelian barang
7. Munculkan
nama customer yang tinggal di kota Bandung dan nama customer yang tinggal di
Jakarta.
PEMBAHASAN SOAL
1. Untuk menjawab no. 1 , kita
gunakan perintah create table untuk membuat table nya, sedangkan untuk primary
key ketikkan "primary key" setelah jenis variabel. Dan untuk foreign
key ketikkan "foreign key(nama field) lalu referensi nya dari mana(nama
field)".
create table Customer(
KdCustomer
varchar(5) primary key not null,
NmCustomer
varchar(20) not null,
Kota
varchar(10) not null)
create table Penjualan(
NoFaktur varchar(5)
not null,
TglFaktur
varchar(10),
KdCustomer
varchar(5),
foreign
key(KdCustomer) references Customer(KdCustomer))
2. Untuk menjawab pertanyaan no. 2
gunakan perintah insert into untuk mengisi data pada tiap table.
Customer adalah nama tablenya.
sedangkan ('C-109',
'PT. Samudra', 'Garut') adalah isi dari setiap field yang ada.
INSERT INTO Customer VALUES ('C-109', 'PT. Samudra',
'Garut')
Lanjutkan sesuai dengan table di
atas..
3. Jika berkaitan dengan mengubah data gunakan perintah update (Nama
Table) set (Nama Field)where merupakan optional , artinya perintah update ini
akan di eksekusi jika nilai dari KdCustomer = "C-109"
update Customer set NmCustomer='PT. Samudra
Jaya',Kota='Cirebon'
where KdCustomer='C-109'
4.
Untuk menampilkan data gunakan perintah select (NamaField) from
(Nama Table)
select TglFaktur from Penjualan where KdCustomer='C-109'
5. Untuk menjawab soal no. 5 ,
seperti halnya langkah penyelesaian pada no. 4 diatas, hanya berbeda field mana
yang akan di tampilkan.
pada soal no. 5 ini kita akan
menampilkan seluruh field yang ada pada table, jadi kita gunakan perintah
select * from (Nama Table) . (*) artinya memilih semua field.
select * from Barang where Stok>15
6. Untuk soal no. 6 , langkah
pertama harus kita tentukan dulu tabel apa saja yang terkait dengan query.
Dalam hal ini kita akan menggunakan tabel Customer dan Penjualan. Tabel
Customer untuk menampilkan Nama Customer dan Kota. Sedangkan Tabel Penjualan
digunakan karena di dalamnya terdapat data-data transaksi yang dilakukan oleh
Customer.
select NmCustomer,Kota from Customer,Penjualan
where Customer.KdCustomer=Penjualan.KdCustomer
Maksud dari Customer.KdCustomer adalah mengambil data KdCustomer yang
berasal dari Table Customer , begitupun dengan Penjualan.KdCusromer
7. Untuk mencari Nama Customer yang
beralamat di bandung dan Jakarta kita kembali menggunakan perintah select
ditambah dengan optional yang mengacu pada Nama Kota.
select NmCustomer from Customer where Kota='Bandung' or
Kota='Jakarta'
Perintah di atas akan
menampilkan semua Nama Customer yang beralamat di Bandung dan Jakarta.
SKEMA TABEL-TABEL SEBAGAI BERIKUT
Mahasiswa(NPM,NAMA,LAHIR,AGAMA,ALAMAT,KOTA,KODE_POS,TELEPON)
Matakuliah(KODE_MK,NAMA_MK,SKS,STATUS)
Dosen(KODE_DOSEN,NAMA_DOSEN,ALAMAT,KOTA,KODE_POS,TELEPON)
Prestasi(NPM,KODE_DOSEN,KODE_MK,NIL_MID,NIL_FIN)
1.
Tambahkan atribut agama pada
table dosen.
2.
Tampilkan semua field pada
semua table mata kuliah yang mempunyai sks sama dengan 3 dan urutkan secara
menurun berdasarkan nama mata kuliah.
3.
Tampilkan semua field dari
table biodata yang tinggal di Jakarta dan mempunyai kode pos.
4.
Tampilkan NPM, nama dan nama
mata kuliah dari mahasiswa yang memiliki nilai final lebih kecil dari 60.
5.
Tampilkan NPM, nama, nama mata
kuliah dan nama dosen dari mahasiswa yang mengambil mata kuliah Perancangan
Sistem.
6.
Tampilkan NPM, nama, nama mata
kuliah dan nilai total dari mahasiswa yang memiliki nilai total lebih besar
dari 100 dan urutkan data berdasarkan nama mata kuliah.
7.
Tampilkan nama mahasiswa, nama
mata kuliah, nilai mid test dan nilai final test yang mengambil mata kuliah
dengan kode ‘TI221’
8.
Tampilkan jumlah dari mata
kuliah yang diajarkan pada table prestasi.
9.
Tampilkan kode dan nama dosen
yang mengajar lebih dari 1 mata kuliah.
10.
Tampilkan nama dan nilai mid
test lebih besar dari 75 (gunakan perintah sub select).
JAWAB
ALTER TABLE Dosen ADD(AGAMA char(16));
1.
SELECT * FROM Matakuliah WHERE
SKS=3 ORDER BY NAMA_MK DESC;
2.
SELECT * FROM Biodata WHERE
KOTA="Jakarta" AND KODE_POS NOT LIKE "% %";
3.
SELECT NPM, NAMA, NAMA_MK FROM
Mahasiswa,Matakuliah,Prestasi WHERE Mahasiswa.NPM=Prestasi.NPM AND
Prestasi.KODE_MK=Matakuliah.KODE_MK AND Prestasi.NIL_FIN<60;
4.
SELECT
NPM,NAMA,NAMA_MK,NAMA_DOSEN FROM Mahasiswa, Matakuliah, Dosen, Prestasi WHERE
Matakuliah.NAMA_MK = "Perancangan Sistem" AND Mahasiswa.NPM =
Prestasi.NPM AND Prestasi.KODE_DOSEN = Dosen.KODE_DOSEN AND Prestasi.KODE_MK =
Matakuliah.KODE_MK;
5.
SELECT
mahasiswa.npm, mahasiswa.nama, matakuliah.nama_mk, prestasi.nil_fin FROM
mahasiswa,matakuliah,prestasi WHERE mahasiswa.npm=prestasi.npm AND
matakuliah.kode_mk=prestasi.kode_mk AND prestasi.nil_fin > 100 ORDER BY
nama_mk ASC;
6.
SELECT mahasiswa.nama,
matakuliah.nama_mk, prestasi.nil_mid, prestasi.nil_fin FROM mahasiswa,
matakuliah , prestasi, WHERE mahasiswa.npm=prestasi.npm AND matakuliah.kode_mk=prestasi.kode_mk
AND prestasi.kode_mk='TI221';
7.
SELECT COUNT(kode_mk) FROM
prestasi;
8.
SELECT
COUNT(prestasi.kode_dosen) AS jumlah_mk, dosen.kode_dosen, dosen.nama_dosen
FROM dosen,prestasi WHERE dosen.kode_dosen = prestasi.kode_dosen GROUP BY
dosen.kode_dosen HAVING jumlah_mk > 1;
9.
SELECT mahasiswa.nama,
prestasi.nil_mid FROM mahasiswa,prestasi WHERE mahasiswa.npm=prestasi.npm AND
(SELECT prestasi.nil_mid > 75);
PERINTAH DASAR-DASAR SQL
Pada saat pengoperasian MySQL, kita perlu menggunakan perintah-perintah SQL atau SQL statement. Perintah atau statement SQL tersebut secara garis besar dibagi dalam 2 kelompok yaitu : Data Manipulation Language (DML) dan Data Definition Language (DDL).
Yang termasuk dalam DML adalah :
• SELECT – untuk mengekstrak atau memilih data dari sebuah database
• UPDATE – untuk mengupdate data dari sebuah database
• DELETE – untuk menghapus data dari sebuah database
• INSERT – untuk memasukkan data baru ke dalam sebuah database
Sedangkan DDL yang paling penting adalah :
• CREATE DATABASE – untuk membuat sebuah database baru
• ALTER TABLE – untuk menambah, menghapus atau memodifikasi kolom dari tabel yang sudah ada
• CREATE TABLE – untuk membuat tabel baru
• DROP TABLE – untuk menghapus sebuah tabel
• CREATE INDEX – untuk membuat index (kunci pencarian)
• DROP INDEX – untuk menghapus index
Perlu kita ingat bahwa perintah atau statement SQL tersebut tidak case sensitive dengan kata lain perintah yang anda tulis dalam huruf kapital maupun huruf kecil akan di terjemahkan sama.
Kemudian di setiap akhir dari perintah tersebut harus diberi tanda semi colon atau ; sehingga perintah akan dijalankan untuk setiap statement atau perintah tersebut.
Pada saat pengoperasian MySQL, kita perlu menggunakan perintah-perintah SQL atau SQL statement. Perintah atau statement SQL tersebut secara garis besar dibagi dalam 2 kelompok yaitu : Data Manipulation Language (DML) dan Data Definition Language (DDL).
Yang termasuk dalam DML adalah :
• SELECT – untuk mengekstrak atau memilih data dari sebuah database
• UPDATE – untuk mengupdate data dari sebuah database
• DELETE – untuk menghapus data dari sebuah database
• INSERT – untuk memasukkan data baru ke dalam sebuah database
Sedangkan DDL yang paling penting adalah :
• CREATE DATABASE – untuk membuat sebuah database baru
• ALTER TABLE – untuk menambah, menghapus atau memodifikasi kolom dari tabel yang sudah ada
• CREATE TABLE – untuk membuat tabel baru
• DROP TABLE – untuk menghapus sebuah tabel
• CREATE INDEX – untuk membuat index (kunci pencarian)
• DROP INDEX – untuk menghapus index
Perlu kita ingat bahwa perintah atau statement SQL tersebut tidak case sensitive dengan kata lain perintah yang anda tulis dalam huruf kapital maupun huruf kecil akan di terjemahkan sama.
Kemudian di setiap akhir dari perintah tersebut harus diberi tanda semi colon atau ; sehingga perintah akan dijalankan untuk setiap statement atau perintah tersebut.
Tidak ada komentar:
Posting Komentar