0% menganggap dokumen ini bermanfaat (0 suara)
524 tayangan

Modul SQL Bab3

Dokumen ini memberikan tutorial lengkap tentang penggunaan SQL Server 2000 melalui beberapa langkah dan contoh kode untuk membuat database, tabel, serta mengisi datanya.

Diunggah oleh

Muhammad Wali
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
524 tayangan

Modul SQL Bab3

Dokumen ini memberikan tutorial lengkap tentang penggunaan SQL Server 2000 melalui beberapa langkah dan contoh kode untuk membuat database, tabel, serta mengisi datanya.

Diunggah oleh

Muhammad Wali
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 25

1

Tutorial SQL
Bab Muhammad Wali
3 [email protected]

Modul dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),
dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam
setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari
Penulis

Pembahasan dalam buku ini mencakup beberapa Latihan dengan menggunakan SQL
Server 2000.

Latihan 3

Jalankan SQL server 2000 dengan cara memilih menu Start | All Programs | Microsoft SQL
Server | Query Analizer

Tutorial SQL
Muhammad Wali
2

Sehingga akan muncul tampilan sebagai berikut ;

Selanjutnya klik OK

Tutorial SQL
Muhammad Wali
3

Buat Database dengan nama “Latihan 3”

Selanjtnya ketikkan sintaks berikut untuk membuat tabel

create table ms_student(

Student_id char(5) primary key not null,

Student_name varchar (30),

Student_address varchar (50),

Student_phone varchar (13),

Student_email varchar (50),

Student_gender varchar (6),

Student_birth datetime,

);

create table ms_tutor(

Tutor_id char (5) primary key not null,

Tutor_name varchar (30),

Tutor_address varchar (50),

Tutor_phone varchar (13),

Tutor_email varchar (50),

Tutor_gender varchar (6),

Tutor_birth datetime,

);

Tutorial SQL
Muhammad Wali
4

create table ms_program(

Program_id char (5) primary key not null,

Program_name varchar(50),

Fee numeric,

Program_duration varchar (20),

);

create table ms_grade(

grade_id char(1) primary key not null,

nilai varchar(7),

discount varchar(4),

);

create table tr_jadwal (

Jadwal_id char (5) primary key not null,

Day_ varchar(10),

Time_ varchar(50),

Program_id char (5) foreign key references ms_program(Program_id) on update


cascade on delete cascade,

Room char (3),

tutor_id char(5) foreign key references ms_tutor(tutor_id) on update cascade on delete


cascade,

);

Tutorial SQL
Muhammad Wali
5

create table tr_regist (

regist_id char (6) primary key not null,

Student_id char(5) foreign key references ms_student(student_id) on update cascade on


delete cascade,

Jadwal_id char(5) foreign key references tr_jadwal(jadwal_id) on update cascade on


delete cascade,

grade_id char(1) foreign key references ms_grade(grade_id) on update cascade on


delete cascade,

);

create table tr_payment(

payment_id char(5) primary key not null,

regist_id char(6) foreign key references tr_regist(regist_id) on update cascade on delete


cascade,

Total_payment numeric,

Payment_date datetime,

);

create table trh_absensi(

absensi_id char (2) primary key not null,

jadwal_id char (5) foreign key references tr_jadwal(jadwal_id) on update cascade on


delete cascade,

Pertemuan1_date datetime,

Pertemuan2_date datetime,

Pertemuan3_date datetime,

Pertemuan4_date datetime,

Pertemuan5_date datetime,

Pertemuan6_date datetime,

Tutorial SQL
Muhammad Wali
6

Pertemuan7_date datetime,

Pertemuan8_date datetime,

Pertemuan9_date datetime,

Pertemuan10_date datetime,

Pertemuan11_date datetime,

Pertemuan12_date datetime,

);

create table trd_absensi(

absensi_id char (2) ,

student_id char (5) ,

Pertemuan_1 varchar(5),

Pertemuan_2 varchar(5),

Pertemuan_3 varchar(5),

Pertemuan_4 varchar(5),

Pertemuan_5 varchar(5),

Pertemuan_6 varchar(5),

Pertemuan_7 varchar(5),

Pertemuan_8 varchar(5),

Pertemuan_9 varchar(5),

Pertemuan_10 varchar(5),

Pertemuan_11 varchar(5),

Pertemuan_12 varchar(5),

primary key(absensi_id,student_id)

););

Tutorial SQL
Muhammad Wali
7

create table tr_result(

Result_id char (5) primary key not null,

program_id char (5) foreign key references ms_program(program_id) on update


cascade on delete cascade,

student_id char (5) foreign key references ms_student(student_id) on update cascade on


delete cascade,

Written_Test varchar (4),

Oral_Test varchar (4),

Note varchar (10),

);

Setelah selesai membuat tabel sekarang kita memasukkan data, berikut sintaks ya :

INSERT INTO ms_student VALUES ('80692','Yusmaneli','haji


senen','085920735341','[email protected]','Female','11/03/1989')

INSERT INTO ms_student VALUES ('80862','Stella clarissa','ks


tubun','081808887933','[email protected]','female','09/08/1988')

INSERT INTO ms_student VALUES ('82205','Agustino','jembatan


tiga','08180834234','[email protected]','male','07/08/1988');

INSERT INTO ms_student VALUES ('82312','Imelda putri','duta


indah','08569463434','[email protected]','female','12/07/1988');

INSERT INTO ms_student VALUES ('85131','Titis annisa astrini','pasar


minggu','08563434423','[email protected]','female','06/12/1987');

INSERT INTO ms_student VALUES ('81234','Hendri Tella','Aceh


Besar','0219886765','[email protected]','male','04/04/1989');

INSERT INTO ms_student VALUES ('84321','Lily Annisa Clarissa','Rawa


belong','081765342509','[email protected]','female','10/02/1987');
Tutorial SQL
Muhammad Wali
8

INSERT INTO ms_student VALUES ('87078','Kevin Pratama','Jeruk


Purut','02198765432','[email protected]','male','12/12/1986');

INSERT INTO ms_student VALUES ('83421','Juliana','kebun


jeruk','081834534443','[email protected]','female','02/02/1988');

INSERT INTO ms_student VALUES ('88139','Windika','gang


u','0878343434','[email protected]','male','02/07/1986');

__________________________________________________________________________

INSERT INTO ms_tutor VALUES ('D1908','muhammad wali','Haji


rabu','0818666673','[email protected]','Male','10/09/1970');

INSERT INTO ms_tutor VALUES


('D1989','Alexandra','Harmoni','0812624343','[email protected]','Male','08/05/1973');

INSERT INTO ms_tutor VALUES ('D0708','stefania


angelina','jl.anggrek','0813453434','[email protected]','Female','10/12/1969');

INSERT INTO ms_tutor VALUES


('D1507','Fauzan','serpong','08783435534','[email protected]','Male','08/07/1972');

INSERT INTO ms_tutor VALUES ('D0612','sabrina','Lebak


bulus','0859345344','[email protected]','Female','11/06/1977');

__________________________________________________________________________

INSERT INTO ms_program VALUES ('PC001','conversation',1500000,'12');

INSERT INTO ms_program VALUES ('PP001','toefl preparation',2000000,'12');

INSERT INTO ms_program VALUES ('PG001','general english',1000000,'12');

___________________________________________________________________________

INSERT INTO ms_grade VALUES ('A','85-100','10%');

Tutorial SQL
Muhammad Wali
9

INSERT INTO ms_grade VALUES ('B','75-84','5%');

INSERT INTO ms_grade VALUES ('C','0-74','0%');

__________________________________________________________________________

INSERT INTO tr_jadwal VALUES ('J0001','mon','13.00-15.00','PC001','101','D1908');

INSERT INTO tr_jadwal VALUES ('J0002','mon','15.00-17.00','PG001','105','D0612');

INSERT INTO tr_jadwal VALUES ('J0003','tue','09.00-11.00','PP001','101','D1989');

INSERT INTO tr_jadwal VALUES ('J0004','wed','13.00-15.00','PG001','103','D0612');

INSERT INTO tr_jadwal VALUES ('J0005','wed','15.00-17.00','PP001','104','D1989');

INSERT INTO tr_jadwal VALUES ('J0006','thu','09.00-11.00','PG001','102','D0612');

INSERT INTO tr_jadwal VALUES ('J0007','fri','15.00-17.00','PC001','101','D1908');

INSERT INTO tr_jadwal VALUES ('J0008','tue','13.00-15.00','PG001','104','D0612');

__________________________________________________________________________

INSERT INTO tr_regist VALUES ('reg001','80692','J0005','B');

INSERT INTO tr_regist VALUES ('reg002','80862','J0002','A');

INSERT INTO tr_regist VALUES ('reg003','82205','J0001','B');

INSERT INTO tr_regist VALUES ('reg004','82312','J0003','B');

INSERT INTO tr_regist VALUES ('reg005','85131','J0005','C');

INSERT INTO tr_regist VALUES ('reg006','81234','J0004','B');

INSERT INTO tr_regist VALUES ('reg007','84321','J0007','C');

INSERT INTO tr_regist VALUES ('reg008','87078','J0008','C');

Tutorial SQL
Muhammad Wali
10

INSERT INTO tr_regist VALUES ('reg009','83421','J0001','C');

INSERT INTO tr_regist VALUES ('reg010','88139','J0005','B');

__________________________________________________________________________

INSERT INTO tr_payment VALUES ('PO101','reg001',1900000,'1/3/2008');

INSERT INTO tr_payment VALUES ('PO102','reg002',900000,'1/10/2008');

INSERT INTO tr_payment VALUES ('PO103','reg003',1425000,'1/11/2008');

INSERT INTO tr_payment VALUES ('PO104','reg004',1900000,'2/2/2008');

INSERT INTO tr_payment VALUES ('PO105','reg005',2000000,'2/5/2008');

INSERT INTO tr_payment VALUES ('PO106','reg006',950000,'2/11/2008');

INSERT INTO tr_payment VALUES ('PO107','reg007',1500000,'1/8/2008');

INSERT INTO tr_payment VALUES ('PO108','reg008',1000000,'2/8/2008');

INSERT INTO tr_payment VALUES ('PO109','reg009',1500000,'1/9/2008');

INSERT INTO tr_payment VALUES ('PO110','reg010',1900000,'2/12/2008');

__________________________________________________________________________

INSERT INTO trh_absensi VALUES


('01','J0001','03/03/2008','03/10/2008','03/17/2008','03/24/2008','03/31/2008','04/07/2008','04/
14/2008','04/21/2008','04/28/2008','05/05/2008','05/12/2008','05/19/2008');

INSERT INTO trh_absensi VALUES


('02','J0002','03/03/2008','03/10/2008','03/17/2008','03/24/2008','03/31/2008','04/07/2008','04/
14/2008','04/21/2008','04/28/2008','05/05/2008','05/12/2008','05/19/2008');

Tutorial SQL
Muhammad Wali
11

INSERT INTO trh_absensi VALUES


('03','J0003','03/04/2008','03/11/2008','03/18/2008','03/25/2008','04/01/2008','04/08/2008','04/
15/2008','04/22/2008','04/29/2008','05/06/2008','05/13/2008','05/27/2008');

INSERT INTO trh_absensi VALUES


('04','J0004','03/05/2008','03/12/2008','03/19/2008','03/26/2008','04/02/2008','04/09/2008','04/
16/2008','04/23/2008','04/30/2008','05/07/2008','05/14/2008','05/21/2008');

INSERT INTO trh_absensi VALUES


('05','J0005','03/05/2008','03/12/2008','03/19/2008','03/26/2008','04/02/2008','04/09/2008','04/
16/2008','04/23/2008','04/30/2008','05/07/2008','05/14/2008','05/21/2008');

INSERT INTO trh_absensi VALUES


('06','J0006','03/06/2008','03/13/2008','03/27/2008','04/03/2008','04/10/2008','04/17/2008','04/
24/2008','05/08/2008','05/15/2008','05/22/2008','05/29/2008','06/05/2008');

INSERT INTO trh_absensi VALUES


('07','J0007','03/14/2008','03/28/2008','04/04/2008','04/11/2008','04/18/2008','04/25/2008','05/
02/2008','05/09/2008','05/16/2008','05/23/2008','05/30/2008','06/06/2008');

INSERT INTO trh_absensi VALUES


('08','J0008','03/04/2008','03/11/2008','03/18/2008','03/25/2008','04/01/2008','04/08/2008','04/
15/2008','04/22/2008','04/29/2008','05/06/2008','05/13/2008','05/27/2008');

__________________________________________________________________________

INSERT INTO trd_absensi VALUES


('01','80692','hadir','hadir','hadir','hadir','Izin','hadir','hadir','hadir','hadir','hadir','hadir','hadir');

INSERT INTO trd_absensi VALUES


('02','80862','hadir','hadir','hadir','Izin','hadir','hadir','hadir','hadir','hadir','Izin','hadir','hadir');

INSERT INTO trd_absensi VALUES


('03','82205','hadir','hadir','hadir','hadir','hadir','hadir','hadir','Alpha','hadir','hadir','hadir','hadir')
;

Tutorial SQL
Muhammad Wali
12

INSERT INTO trd_absensi VALUES


('04','82312','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir');

INSERT INTO trd_absensi VALUES


('05','85131','hadir','Izin','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir');

INSERT INTO trd_absensi VALUES


('06','81234','hadir','hadir','hadir','hadir','Alpha','hadir','Alpha','Alpha','hadir','hadir','aLpha','had
ir');

INSERT INTO trd_absensi VALUES


('07','84321','hadir','hadir','hadir','hadir','hadir','Izin','hadir','hadir','hadir','hadir','hadir','hadir');

INSERT INTO trd_absensi VALUES


('08','87078','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir','hadir');

INSERT INTO trd_absensi VALUES


('09','83421','hadir','hadir','Alpha','hadir','hadir','hadir','Alpha','hadir','hadir','hadir','Izin','hadir')
;

INSERT INTO trd_absensi VALUES


('10','88139','hadir','hadir','hadir','hadir','hadir','Alpha','hadir','hadir','Izin','hadir','hadir','hadir');

__________________________________________________________________________

INSERT INTO tr_result VALUES ('RE001','PP001','80692','NULL','B','GOOD');

INSERT INTO tr_result VALUES ('RE002','PG001','80862','c','B','AVERAGE');

INSERT INTO tr_result VALUES ('RE003','PC001','82205','B','A','GOOD');

INSERT INTO tr_result VALUES ('RE004','PP001','82312','C','C','NULL');

INSERT INTO tr_result VALUES ('RE005','PP001','85131','B','NULL','GOOD');

INSERT INTO tr_result VALUES ('RE006','PG001','81234','C','C','NULL');

INSERT INTO tr_result VALUES ('RE007','PC001','84321','NULL','A','EXCELLENT');


Tutorial SQL
Muhammad Wali
13

INSERT INTO tr_result VALUES ('RE008','PG001','87078','A','C','NULL');

INSERT INTO tr_result VALUES ('RE009','PC001','83421','A','b','GOOD');

INSERT INTO tr_result VALUES ('RE010','PP001','88139','B','C','AVERAGE');

__________________________________________________________________________

Jika belum pernah menjalankan, sebaiknya Anda ketik dan jalankan terlebih dahulu sebelum
melangkah pada contoh kasus selanjutnya. Sebagai pemanasan awal, ketiklah beberapa
sintaks data manipulation di bawah ini pada menu Query Analyzer. Jika selesai, coba
jalankan dan lihat bagaimana hasilnya.

Select * From ms_student

Select * From ms_tutor

Select * From ms_program

Select * From ms_grade

Select * From tr_jadwal

Select * From tr_payment

Select * From trh_absensi

Select * From trd_absensi

Select * From tr_result

Pada Bab sebelumnya kita telah membuat beberapa tabel untuk setiap contoh. Pada Bab ini
kita berlatih berbagai sintaks SQL DML. Beberapa contoh sintaks sebaiknya anda lakukan
langsung di komputer adalah :

1. Menampilkan seluruh data student


SELECT Student_id,Student_name,Student_address,
Student_Phone,Student_email,Student_gender,

Tutorial SQL
Muhammad Wali
14

Student_birth,datetime

FROM ms_student;

Atau

SELECT *

FROM ms_student;

Tanda * artinya menampilkan seluruh data (baris dan kolom) pada suatu tabel.

2. Kegunaan DISTINC
Tampilkan id program dari jadwal tersedia
SELECT DISTINCT Program_id
FROM tr_jadwal;

Tutorial SQL
Muhammad Wali
15

Fungsi DISTINCT adalah untuk menghilangkan baaris yang duplikat. Coba Anda
ketik sintaks berikut dan jalankan pada komputer anda. Perbedaan apa yang anda lihat
SELECT Program_id
FROM tr_jadwal

3. Field yang dapat dikalkulasikan

Istilah asingnya adalah calculated, computed atau derived field.

 Tampilkan daftar pembayaran, dengan menampilkan payment_id,regist_id dan


total_payment + 100

SELECT payment_id, regist_id, total_payment + 100


FROM tr_payment

 Tampilkan daftar pembayaran, dengan menampilkan payment_id,regist_id dan


10 % total_payment

SELECT payment_id, regist_id, 0,1 * total_payment


FROM tr_payment

Tutorial SQL
Muhammad Wali
16

4. Penggunaan Perbandingan sebagai pencarian dalam kondisi


Tampilkan kode payment, kode registrasi, dan jumlah pembayaran yang lebih dari
1.000.000.

SELECT payment_id,regist_id,total_payment
FROM tr_payment
WHERE total_payment > 1000000

Ini adalah contoh perbandingan biasa, bukan majemuk, yang tidak mengandung unsur
OR atau AND
Tutorial SQL
Muhammad Wali
17

5. Penggunaan perbandingan Majemuk sebagai pencarian dalam kondisi

Tampilkan seluruh alamat student yang tinggal di Aceh Besar atau Sabang.

SELECT *

FROM ms_student

WHERE student_address = 'Aceh Besar' OR student_address='Sabang';

Tampilkan seluruh alamat student yang tinggal di Aceh Besar dan Sabang.

SELECT *

FROM ms_student

WHERE student_address = 'Aceh Besar' AND student_address='Sabang';

Bagaimana hasilnya silakan anda coba?

6. Penggunaan BETWEEN sebagai pencarian dalam kondisi


Tampilkan kode payment, kode registrasi, dan jumlah pembayaran yang lebih besar
dari 1.000.000 dan kurang 2.000.000

SELECT payment_id, regist_id, total_payment


FROM tr_payment
WHERE BETWEEN 1000000 AND 2000000

Atau

SELECT payment_id, regist_id, total_payment


FROM tr_payment
WHERE total_payment > 1000000 AND
Total_payment < 2000000

Silakan lihat hasilnya.....


Tutorial SQL
Muhammad Wali
18

7. Mengurutkan Satu Kolom


Tampilkan kode siswa, nama siswa, dan grade siswa dengan urutan nama siswa dari
kecil ke besar

SELECT s.Student_id, s.Student_name, r.grade_id


FROM ms_student S, tr_regist R
WHERE s.Student_id=r.Student_id
ORDER BY Student_name ASC;

8. Penggunaan COUNT (*)


Tampilkan banyaknya total pembayaran yang lebih dari 1500000

SELECT COUNT (*) AS Banyaknya_Pembayaran


FROM tr_payment
WHERE Total_payment > 1500000;

Tutorial SQL
Muhammad Wali
19

9. Penggunaan SUM dan COUNT


Tampilkan kode pembayaran , kode regist,count dan Sum dari total pembayaran
SELECT COUNT (Total_Payment) AS Jumlah_payment,
SUM (Total_payment) AS Totalpayment
FROM tr_payment;

Tutorial SQL
Muhammad Wali
20

10. Penggunaan MIN,MAX,AVG


Tampilkan minimal payment, maksimal payment, rata-rata payment
SELECT MIN (total_payment) AS min_payment,
MAX (total_payment) AS max_payment,
AVG (total_payment) AS avg_payment
FROM tr_payment;

11. Penggunaan GROUP BY


Tampilkan jadwal_id berdasarkan program
SELECT program_id, COUNT (program_id) AS mycount
FROM tr_jadwal
GROUP BY program_id;

Tutorial SQL
Muhammad Wali
21

Fungsi GROUP BY adalah untuk mendapatkan subtotal dengan ketentuan SELECT


harus berupa single valued per group dan clause SELECT hanya dapat mengandung
nama kolom, fungsi aggregat, konstanta, dan ekspresi (dapat terdiri atas kombinasi
nama, kolom, fungsi aggregat dan konstanta)

12. Penggunaan ALL


Tampilkan payment_id yang total paymentnya lebih besar dari total payment dengan
regist_id reg003 dan reg002.
SELECT *
FROM tr_payment
WHERE Total_payment > ANY (SELECT total_payment
FROM tr_payment
WHERE regist_id IN (‘reg003’,’reg002’))

13. Join Sederhana


Tampilkan jadwal_id, day_,time_,j.program-id, and progra_name.

SELECT jadwal_id, j.program_id, program_name


FROM tr_jadwal j,ms_program p
WHERE j.program_id=p.program_id;

Tutorial SQL
Muhammad Wali
22

14. Penggunaan UNION, dan INTERSECT


Tampilkan seluruh student_id yang telah aktif atau baru mendaftar

(SELECT student_id
FROM ms_student
WHERE student_id IS NOT NULL)
UNION
(SELECT student_id
FROM tr_regist
WHERE student_id IS NOT NULL);

Tampilkan seluruh student_id yang telah aktif dan telah membayar

SELECT s.student_id
FROM ms_student s,tr_regist r
WHERE s.student_id=r.student_id

Tutorial SQL
Muhammad Wali
23

15. Penggunaan INSERT, UPDATE, dan DELETE


 INSERT-DEFAULT

Masukkan baris baru ke dalam tabel ms_student untuk kolom-kolom tertentu

INSERT INTO ms_student1 Values (‘92999’,’Ziauddin’,’Jl. Takengon –


Bireun’,NULL,NULL,’Male’,’29-Sep-1986’);

 UPDATE

Ubahlah seluruh alamat siswa pada tabel ms_student1 menjadi ‘Jl. Cut Mutia’

UPDATE ms_student1 SET student_address = ‘Jl. Cut Mutia’;

Ubahlah alamat menjadi ‘Jl. Cut Mutia’ untuk student_id 90999

UPDATE ms_student1 SET student_address = ‘Jl.Cut Mutia’

WHERE student_id = ‘90999’;

Ubahlah alamat menjadi ‘Jl.Cut Mutia’ dan Nama menjadi ‘Lala’ untuk student_id
90999.

UPDATE ms_student1 SET student_address = ‘Jl.Cut Mutia’,

student_name = ‘Lala’

WHERE student_id = ‘90999’;

 DELETE
Hapus seluruh ms_student1 yang ada hubunganya dengan nomor siswa 91999
DELETE FROM ms_student1
WHERE ms_student=’91999’;

Hapus seluruh baris ms_student1


DELETE FROM ms_student1;

Tutorial SQL
Muhammad Wali
24

Anda bisa menggunakan sintax tersebut pada Oracle, SQL Server dan lain-lain. Selamat
mencoba.

Referensi :

http://Desaincek.wordpress.com

Tutorial SQL
Muhammad Wali
25

Tutorial SQL
Muhammad Wali

Anda mungkin juga menyukai