Transact-SQL

advertisement
Transact-SQL
Disampaikan oleh:
Agus Wahyu Widodo, ST
Program Studi Ilmu Komputer
Jurusan Matematika – FMIPA Unibraw
Agenda
•
•
•
•
•
•
•
•
•
•
•
Pengertian T-SQL
Bagaimana kerangka T-SQL
Pendefinisian variabel
Select statement dalam T-SQL
Print statement
Variabel global
If statement
While
Continue dan Break
Return statement
Case statement
Pemahaman Dasar (1)
• TRANSACT-SQL adalah bahasa pemrograman yang
dikembangan dari SQL. Seperti diketahui, SQL
adalah bahasa non procedural, artinya alur
program tidak seperti bahasa pemrograman biasa,
melainkan melalui "request" dan "response".
• Melalui instruksi SQL seseorang melakukan query
atau transaksi, yang kemudian akan menerima
jawaban dari Database Server berupa hasil atau
ResultSet.
• Query dan Transaksi dilakukan di bagian Client,
sedangkan pemrosesan dilakukan pada Server.
Pemahaman Dasar (2)
• TRANSACT-SQL mengembangkan kemampuan
SQL, sehingga TRANSACT-SQL dapat melengkapi
SQL dengan instruksi logic (procedural logic), yaitu
program aplikasi.
• Hasil proses SQL-Server (ResultSet) dapat dioleh
lebih lanjut dengan menggunakan logic
pemrograman procedural seperti Fungsi, Prosedur,
Loop, Case, If Then Else dan lainnya.
Kerangka TRANSACTSQL
• TRANSACT-SQL dimulai dengan deklarasi variable
dan disusul dengan Blok Program.
VARIABLE DECLARATION –
DECLARE
BLOK PROGRAM –
WITH OR WITHOUT BEGIN - END
Pendefinisian Variable TSQL
• Variable harus dideklarasikan sebelum digunakan.
• Nama variable selalu dimulai dengan karakter @.
• Variable dapat diberikan nilai melalui instruksi
SELECT ataupun SET.
• Contoh
o DECLARE
o /* deklarasi variable */
o @v1 int,
o @nama varchar(30)
o select @v1=100 /* memberikan nilai 100 ke v1 */
SELECT dalam T-SQL
• SELECT digunakan juga untuk eksekusi aritmatika
atau lainnya.
• Contoh:
o select @v1 = @v1 – 100
o select @tgl_skrg = now
• Variable dapat digunakan untuk mengambil nilai
dari sebuah query:
• Contoh: (1)
o declare @nama char(30)
o select @nama = namainstruktur
o from instruktur where inisial = 'YS'
• Contoh: (2)
o select @jml_maksimal = max(sallary) from SallaryEmployee
PRINT dalam T-SQL
• PRINT adalah fungsi yang menampilkan teks dan
variable pada console (layar).
• Contoh: (listingTSQL01.sql)
o
o
o
o
o
o
declare @nama char(30)
select @nama = namainstruktur
from instruktur where inisial = 'YS'
PRINT "Nama yang ditemukan adalah : "
PRINT @nama
PRINT "Nama yang ditemukan adalah : " + @nama
Variable Global
• Variable Global adalah variable yang disiapkan
oleh SQL-Server untuk memberikan informasi
kepada Client. Variable globar bersifat read-only.
• Nama variable global diawali dengan @@.
• Contoh:
• @@error
o Bilangan bulat, yang menyatakan nomor error. Jika
variable tersebut tidak sama dengan 0, maka sistem
memberikan indikasi bahwa terjadi error dan identitas error
dinyatakan dalam angka.
• @@cursor_rows
o Nilai balik dari cursor yang terakhir kali dioleh.
If - Statement
• Model 3
IF kondisi
BEGIN
Instruksi1
Instruksi2
..
..
END
• IF digunakan dalam
mengendalikan alur
program berdasarkan
kondisi.
• Model 1
IF kondisi
Instruksi
• Model 2
IF kondisi
Instruksi1
ELSE
Instruksi2
Contoh 1: If – Statement
• ListingTSQL02.sql
declare
@honor int,
@rata_rata int
select
@honor=100000
select
@rata_rata=200000
if @honor > @rata_rata
PRINT "Honor di atas rata-rata"
else
PRINT "Honor di bawah rata-rata"
Contoh 2: If – Statement
• Bila diaplikasikan pada tabel instruktur, maka nilai honor
dapat diambil dari instruktur (listingTSQL03.sql)
declare
@honor int,
@rata_rata int,
@instruktur char(2)
select
@instruktur = 'AW'
select
@honor=honor
from instruktur
where inisial = @instruktur
select
@rata_rata = 200000
if @honor > @rata_rata
PRINT "Honor di atas rata-rata"
else
PRINT "Honor di bawah rata-rata"
Contoh 3: If – Statement
• Nilai rata-rata dapat dihitung langsung dari tabel instruktur
sebagai berikut (listingTSQL04.sql)
declare
@honor int,
@rata_rata int,
@instruktur char(2)
select
@instruktur='DE'
select
@honor=honor, @nama=namainstruktur
from instruktur
where inisial=@instruktur
select
@rata-rata=AVG(honor) from instruktur
if @honor > @rata_rata
PRINT "Honor di atas rata-rata"
else
PRINT "Honor di bawah rata-rata"
Contoh 4: If – Statement
• Berikutnya, program mendemonstrasikan penggunaan blok IF
BEGIN END bila instruksi dalam IF lebih dari satu instruksi
(listingTSQL05.sql)
declare
@honor int,
@rata_rata int,
@instruktur char(2),
@nama varchar(16)
select
@instruktur='DE'
select
@honor=honor, @nama=namainstruktur
from instruktur
where inisial=@instruktur
select
@rata_rata=AVG(honor) from instruktur
if @honor > @rata_rata
BEGIN
PRINT "Nama Instruktur : " + @nama
PRINT "Honor di atas rata-rata"
END
else
BEGIN
PRINT "Nama Instruktur : " + @nama
PRINT "Honor di bawah rata-rata"
END
While – Statement
•
WHILE digunakan dalam mengeksekusi satu blok program berulangulang sampai kondisi pada WHILE menjadi false.
WHILE kondisi
BEGIN
..
..
END
•
Contoh:
•
Perhatikan bahwa fungsi str() diperlukan untuk mengkonvesi
bilangan integer menjadi string (teks).
declare @i int
select @i=5
while @i > 0
begin
PRINT "i = " + str(@i)
select @i= @i – 1
End
Continue dan Break
• Continue dan Break berkaitan dengan WHILE.
Continue melanjutkan alur program pada
pemeriksaan kondisi WHILE sedangkan Break
menghentikan alur program dari WHILE.
WHILE kondisi1
BEGIN
..
..
if kondisi2
CONTINUE
..
END
Return - Statement
• RETURN akan menghentikan program dari eksekusi.
RETURN dapat digunakan dalam memproses error.
IF @@error <> 0
BEGIN
PRINT "Error .. "
RETURN
END
Case Statement
• CASE menyederhanakan IF yang berlapis dengan
tujuan agar program dapat dimengerti/dibaca
dengan lebih mudah.
• Sintaks:
CASE
WHEN kondisi1 THEN
WHEN kondisi2 THEN
WHEN kondisi3 THEN
ELSE
END
Contoh 1: Case Statement
declare
@t char(1),
@hasil varchar(255)
select @t='B'
select @hasil =
case
when @t='A' then
'Karakter A'
when @t='B' then
'Karakter B'
else
'Tidak Diketahui'
end
PRINT "Hasil adalah : " + @hasil
Contoh 2: Case Statement
declare
@jk char,
@nama varchar(16),
@teks varchar(255)
select @jk=jenkel, @nama=nama from peserta
where nopeserta = 3
select @teks=
case @jk
when 'L' then 'Laki-laki'
when 'P' then 'Perempuan'
else '?'
PRINT @nama + " adalah " + @teks
Thanking You
Comment & Action Items
Download