TEKNIK INFORMATIKA-UNIVERSITAS ISLAM NEGERI SUSKA RIAU
Objectives Transact - SQL Deklarasi Variabel Menjalankan T-SQL Transact SQL Merupakan unit kerja logis yang berisi sekumpulan perintah. Merupakan perantara antara program aplikasi dengan SQL Server Teknik Dasar T-SQL Merupakan bahasa pemrograman Non Procedural, dimana alur pemrograman tidak seperti bahasa pemrograman biasa melainkan melalui Request dan Response Transact SQL mengembangkan kemampuan SQL sehingga T-SQL dapat melengkapi SQL dengan instruksi logik. Sehingga proses SQL Server dapat diproses lebih lanjut dengan menggunakan logic pemrograman procedural seperti fungsi, prosedur, loop, case, if dan lainnya. Deklarasi Variabel Pembuatan transact SQL harus dimulai dengan deklarasi variabel dan disusun dengan blok diagram. Variabel-variabel yang dipergunakan harus dideklarasikan dahulu. Deklarasi variabel selalu dimulai dengan kata kunci : Declare Nama variabel dalam T-SQL selalu dimulai dengan karakter @ Bentuk penulisan : Declare @nama_variabel tipe_data Declare @nama_variabel tipe_data Keterangan : @nama_variabel : nama dari variabel Tipe_data : tipe data dari variabel Contoh: Declare @kode Char(5), @nama Varchar(30), @Harga Int Contoh pengisian nilai ke variabel setelah dideklarasikan : Select @kode = ‘FD001’ Select @nama = ‘Flash Disk Kingston’ Select @harga = 150000 CONTOH, coba ketikkan perintah berikut di Query Analyzer
DECLARE @KODE CHAR(5), @NAMA VARCHAR(30), @GAJI INT
SELECT @KODE = 'K0008'
SELECT @NAMA = 'LINTANG' SELECT @GAJI = 4000000 PRINT 'DATA KARYAWAN' PRINT '=============' PRINT @KODE PRINT @NAMA PRINT @GAJI PRINT '=============' Selain menggunakan perintah select untuk memasukkan/setting variabel, dapat juga dipergunakan perintah SET Penggunaan SET lebih direkomendasikan dibandingkan menggunakan SELECT untuk variabel. Contoh : SET @nama = ‘Kiki’ Penggunaan SET :
DECLARE @KODE CHAR(5), @NAMA VARCHAR(30), @GAJI INT
SET @KODE = 'K0008'
SET @NAMA = 'LINTANG' SET @GAJI = 4000000 PRINT 'DATA KARYAWAN' PRINT '=====================' PRINT 'Kode :' + @KODE PRINT 'Nama :' + @NAMA PRINT 'Gaji :Rp.' + str(@GAJI) PRINT '=====================' Mengisi Variabel dengan nilai dari tabel Apabila anda ingin mengisi suatu variabel dengan nilai yang ada pada suatu tabel, dapat dilakukan dengan menggunakan perintah SELECT. Contoh penggunaan : Declare @nama varchar(15) Select @nama = nama From mahasiswa Contoh penggunaan dengan kondisi : Declare @nama varchar(15) Select @nama = nama From mahasiswa Where kode = ‘20063218’ Suatu variabel dapat dipergunakan untuk mengambil nilai dari suatu perintah query atau dari suatu tabel. Contoh : mencetak total gaji karyawan departemen IT yang memiliki kode divisi D0001
Declare @total int
select @total = sum(gaji) from karyawan where kode_divisi = 'D0001' print 'Total gaji karyawan departement IT adalah Rp.‘ + str(@total) Berikut data dari tabel karyawan Contoh lain, mengisi variabel dengan nilai data dari suatu tabel. Coba hitung berapa banyak transaksi yang dilakukan oleh pasien dengan kode PS005 pada tabel TrKlinik. Informasi yang ditampilkan adalah kode pasien dan total transaksi Seluruh data pada trklinik Contoh lain, mengisi variabel dengan nilai data yang diambil dari dua tabel. Tampilkan kode pasien ‘PS005’ dan nama pasien. Untuk menampilkan data kode dan nama pasien harus melakukan Join dua tabel TrKlinik dengan tabel Pasien. Informasi yang ditampilkan adalah kode pasien dan Nama Pasien Variabel Global Selain penggunaan variabel lokal. SQL Server juga menyediakan variabel global Variabel global merupakan variabel yang disiapkan SQL Server untuk memberikan informasi kepada Client. Mengambil nilai atau informasi dari suatu database. Sifatnya Read Only Nama variabel selalu diawali dengan @@ Daftar beberapa Variabel Global
Nama Variabel Keterangan
@@error Bernilai bulat yang menyatakan nomor error. Jika varaibel tersebut tidak sama dengan Nol, maka sistem memberikan indikasi terjadi error dan identifikasi error dinyatakan dengan angka @@cursor_rows Memberikan nilai balik dari cursor yang terakhir diproses @@rowcount Memberikan nilai balik berupa jumlah baris (rows) yang terpengaruh oleh instruksi terakhir. @@identity Memberikan nilai otomatis setiap kali proses Insert dilakukan. Nilai ini adalah nilai identitas dari record yang diproses @@spid Server process ID Dan Lain Lain ………………………………………………………. Untuk daftar variabel global yang lebih lengkap beserta informasinya dapat dilihat di Transact-SQL Help. Transact-SQL Help terdapat di SQL Query Analyzer Contoh 1 penggunaan variabel global : buat perintah query yang bertujuan untuk menghapus data dari tabel Pasien yang memiliki kode PS011. Lalu dilakukan pengecekan, jika tidak ada record yang memiliki kode PS011, maka data tidak jadi dihapus, dan diberi komentar “Data pasien tidak ada, tidak ada data yang dihapus” Tetapi bila ada record dengan kode PS011, maka data jadi dihapus, dan diberi komentar “Data pasien ada, dan telah dihapus” Sebelumnya dilihat dahulu seluruh data pada tabel pasien Dengan menggunakan @@rowcount, maka dapat diperiksa apakah ada baris/record pasien yang memiliki kode PS011. Jika ada maka @@rowcount bernilai sebanyak record yang ada Jika tidak ada maka @@rowcount bernilai 0 Contoh 2 penggunaan variabel global : buat perintah query yang bertujuan untuk menghapus data pasien yang memiliki kode PS011 dari tabel TrKlinik Lalu dilakukan pengecekan pada tabel TrKlinik, jika tidak ada record yang memiliki kode PS011, maka data tidak jadi dihapus, dan diberi komentar “Data pasien tidak ada, tidak ada data yang dihapus” Tetapi bila ada record dengan kode PS011, maka data jadi dihapus, dan diberi komentar “Data pasien ada, dan telah dihapus” Seluruh data pada trklinik Contoh 3 penggunaan variabel global : buat perintah query yang bertujuan untuk menghapus data pasien yang memiliki kode PS015 dari tabel TrKlinik Lalu dilakukan pengecekan pada tabel TrKlinik, jika tidak ada record yang memiliki kode PS015, maka data tidak jadi dihapus, dan diberi komentar “Data pasien tidak ada, tidak ada data yang dihapus” Tetapi bila ada record dengan kode PS015, maka data jadi dihapus, dan diberi komentar “Data pasien ada, dan telah dihapus” Seluruh data pada trklinik