Mod SQL Server 2000

49
Diktat Mata Kuliah SQL SERVER Hal : 1 Robbi Rahim, S.Kom BAB I MENGENAL MICROSOFT SQL SERVER 2000 Microsoft SQL Server 2000 adalah salah satu Relational Database Management System (RDBMS) yang popular saat ini. Fungsi utamanya adalah sebagai database server yang mengatur semua proses penyimpanan data dan transaksi suatu aplikasi. Popularitas SQL Server akhir-akhir ini mulai menanjak dan setara dengan pesaing terdekatnya yaitu ORACLE. Saat ini versi terbaru adalah SQL Server 2005, walaupun SQL Server 2000 sudah ketinggalan bukan berarti tidak memiliki fasilitas yang baik dari SQL Server 2005. Versi 2000 memiliki feature-feature lengkap untuk membangun aplikasi dari skala kecil sampai skala besar. SQL Server memiliki beberapa versi antara lain : SQL Server Personal Edition SQL Server Developer Edition SQL Server Enterprise Edition SQL Server Standart Edition SQL Server Desktop Engine SQL Server For Windows CE Edition Masing-masing versi memiliki perbedaan dalam hal maksimum database, RAM, jumlah koneksi serta beberapa feature lanjutan. Versi Personal, Developer, dan Desktop dapat diinstall di OS Desktop seperti Windows 2000 Professional dan XP, sedangkan versi Enterprise dan Standard hanya dapat diinstal di Windows 2000/2003 Server serta NT Server. Versi Windows CE biasa digunakan untuk PDA dan Pocket PC. 1.1 PERSYARATAN MICROSOFT SQL SERVER 2000 Sebelumnya telah dijelaskan bagaimana menginstal Microsoft SQL Server 2000, pada dasarnya ada spesifikasi yang harus dipenuhi baik dari sisi hardware, sistem operasi maupun infrastrukturnya. Secara sederhana saya memberikan contoh Network dan beberapa hardware yang harus dipenuhi apabila anda akan mengimplementasikan Microsoft SQL Server. 1.1.1 PERSYARATAN SERVER Server yang digunakan minimal harus mampu bekerja dengan baik dan siap melayani data selama 24 jam kalau server tersebut digunakan sebagai web server. Oleh karena itu untuk server ini harus benar-benar canggih sesuai kebutuhan untuk aplikasi database modern. Apabila anda akan mengimplementasikan Microsoft SQL Server di kantor anda, maka diperlukan suatu jaringan LAN (Local Area Network) agar Microsoft SQL Server bisa digunakan secara maksimal. Adapun persyaratannya sebagai berikut : 1.2 Pentium III, IV dan yang setara dengan itu. 1.3 RAM 256 MB atau lebih 1.4 Hard Disk 40 GB atau lebih 1.5 NIC (Network Interface Card) 1.6 Sistem Operasi Microsoft Windows 2000 Server atau Microsoft Windows.Net 1.1.2 PERSYARATAN CLIENT System komputerisasi berbasis client/server sudah bisa dikatakan demikian apabila sudah ada koneksi antara dua atau lebih komputer yang bekerja secara bersama, sehingga terjadi komunikasi dan tukar menukar data. Maka dalam jaringan selain diperlukan suatu server juga diperlukan komputer sebagai client.

Transcript of Mod SQL Server 2000

Page 1: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 1

Robbi Rahim, S.Kom

BAB IMENGENAL MICROSOFT SQL SERVER 2000

Microsoft SQL Server 2000 adalah salah satu Relational Database Management System (RDBMS) yangpopular saat ini. Fungsi utamanya adalah sebagai database server yang mengatur semua proses penyimpanandata dan transaksi suatu aplikasi. Popularitas SQL Server akhir-akhir ini mulai menanjak dan setara denganpesaing terdekatnya yaitu ORACLE.

Saat ini versi terbaru adalah SQL Server 2005, walaupun SQL Server 2000 sudah ketinggalan bukanberarti tidak memiliki fasilitas yang baik dari SQL Server 2005. Versi 2000 memiliki feature-feature lengkapuntuk membangun aplikasi dari skala kecil sampai skala besar.

SQL Server memiliki beberapa versi antara lain : SQL Server Personal Edition SQL Server Developer Edition SQL Server Enterprise Edition SQL Server Standart Edition SQL Server Desktop Engine SQL Server For Windows CE Edition

Masing-masing versi memiliki perbedaan dalam hal maksimum database, RAM, jumlah koneksi sertabeberapa feature lanjutan.

Versi Personal, Developer, dan Desktop dapat diinstall di OS Desktop seperti Windows 2000Professional dan XP, sedangkan versi Enterprise dan Standard hanya dapat diinstal di Windows 2000/2003Server serta NT Server. Versi Windows CE biasa digunakan untuk PDA dan Pocket PC.

1.1 PERSYARATAN MICROSOFT SQL SERVER 2000

Sebelumnya telah dijelaskan bagaimana menginstal Microsoft SQL Server 2000, pada dasarnya adaspesifikasi yang harus dipenuhi baik dari sisi hardware, sistem operasi maupun infrastrukturnya. Secarasederhana saya memberikan contoh Network dan beberapa hardware yang harus dipenuhi apabila andaakan mengimplementasikan Microsoft SQL Server.

1.1.1 PERSYARATAN SERVERServer yang digunakan minimal harus mampu bekerja dengan baik dan siap melayani dataselama 24 jam kalau server tersebut digunakan sebagai web server. Oleh karena itu untuk serverini harus benar-benar canggih sesuai kebutuhan untuk aplikasi database modern. Apabila andaakan mengimplementasikan Microsoft SQL Server di kantor anda, maka diperlukan suatujaringan LAN (Local Area Network) agar Microsoft SQL Server bisa digunakan secara maksimal.Adapun persyaratannya sebagai berikut :1.2 Pentium III, IV dan yang setara dengan itu.1.3 RAM 256 MB atau lebih1.4 Hard Disk 40 GB atau lebih1.5 NIC (Network Interface Card)1.6 Sistem Operasi Microsoft Windows 2000 Server atau Microsoft Windows.Net

1.1.2 PERSYARATAN CLIENTSystem komputerisasi berbasis client/server sudah bisa dikatakan demikian apabila sudah adakoneksi antara dua atau lebih komputer yang bekerja secara bersama, sehingga terjadikomunikasi dan tukar menukar data. Maka dalam jaringan selain diperlukan suatu server jugadiperlukan komputer sebagai client.

Page 2: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 2

Robbi Rahim, S.Kom

1.2 Pentium II, III atau Pentium IV dan yang setara dengan itu.1.3 RAM 128 MB1.4 Hard Disk 10 GB atau lebih1.5 NIC (Network Interface Card)1.6 Sistem Operasi Microsoft Windows 2000 Professional atau Microsoft Windows XP

1.1.3 PERSYARATAN NETWORKSeperti telah dijelaskan sebelumnya bahwa Microsoft SQL Server merupakan aplikasi databaseberbasis client/server. Maka apabila akan mengimplementasikan Microsoft SQL Server diperlukansuatu jaringan, baik LAN maupun lainnya.

1.2 INSTALASI SQL SERVER 2000

Instalasi SQL Server 2000 sangat mudah. Dalam contoh ini penulis menggunakan versi personal, yangsudah mencukupi untuk bekerja dan membuat aplikasi. Versi ini 100% kompatibel dengan versi lainyang lebih tinggi (Standard dan Enterprise). Database dan semua obyeknya dapat direstore ke versitersebut tanpa ada masalah.

Pada saat memulai, Anda harus menentukan lokasi instalasi apakah di local computer, atau dikomputer lain dalam jaringan, kemudian klik tombol next.

Selanjutnya pilih Create New Instance agar SQL Server membuat instalasi baru.

Page 3: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 3

Robbi Rahim, S.Kom

Langkah berikutnya adalah menentukan komponen yang akan diinstal. Pilih server and Client Toolsyang meliputi database engine sebagai inti SQL Server dan client tools yang berfungsi sebagai interfaceuntuk mengatur dan setup SQL Server.

Apabila Anda belum memiliki instalasi SQL Server di komputer tersebut, pilih “Default”. Jika sudah adaSQL Server di komputer, Anda dapat membuat instance baru sehingga terdapat 2 SQL Server di komputerAnda.

Tipe instalasi Typical sudah cukup mewakili untuk berbagai feature yang dibutuhkan dalam membuataplikasi.

Page 4: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 4

Robbi Rahim, S.Kom

Pada bagian service setting, pilih local system account. Artinya SQL Server menggunakan accountsystem di OS untuk menjalankan servicenya. Anda dapat juga menggunakan account yang terdapat didomain/ Active Directory maupun account user tertentu untuk menjalankan service tersebut. Penjelasanlebih detil mengenai hal ini akan dibahas di bab selanjutnya tentang SQL Server Lanjutan

Untuk mode autentikasi, sebaiknya dipilih Windows Authentication yang lebih menjamin keamanankarena terintegrasi dengan Windows. Antara mode Windows dan Mixed masing-masing memilikikelebihan yang akan dijelaskan pada bab selanjutnya.

1.3 INTERFACE SQL SERVER

Ada 3 interface utama saat kita bekerja dalam SQL Server :

1.3.1 ENTERPRISE MANAGER

Merupakan interface utama dan paling sering digunakan oleh administrator database. Bagian inimengandung sebagaian besar fungsi-fungsi pokok dalam mengatur database.

Page 5: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 5

Robbi Rahim, S.Kom

Di dalam folder database ditampilkan berbagai database yang ada. Database master,model, msdb, dan tempdb merupakan default system database yang diperlukan agar SQLServer dapat berfungsi baik. Keempat database ini tidak boleh dihapus ataupun dimodifikasitanpa pengetahuan yang mencukupi tentang sistem SQL Server.Sedangkan NorthWind dan pubs adalah database sampel yang dapat digunakan untuk berlatihperintah SQL maupun administration job. Dalam bab selanjutnya, kita akan banyakmenggunakan NorthWind sebagai kasus. Di dalam folder Security terdapat tool Login yangberisi daftar user di dalam database. Di bagian ini semua manajemen menyangkut user accountdilakukan.Fungsi-fungsi lain dalam Enterprise Manager akan dibahas pada artikel berikutnya tentangSQL Server Lanjutan.

1.3.2 QUERY ANALYZER

Tool in merupakan interface utama dalam melakukan pemrograman di SQL Server. Bahasayang digunakan adalah Transact SQL (T-SQL). Anda dapat membuat perintah untukmengambil data, sortir, manipulasi data serta melakukan perhitungan tertentu terhadapsekumpulan data dalam database. Script yang telah dibuat dapat disimpan sebagai Viewataupun Stored Procedure, sesuai dengan kebutuhan dalam pembuatan aplikasi

1.3.3 SERVICE MANAGER

Digunakan untuk mengatur service yang ada di SQL Server, apakah akan dijalankan ataudimatikan. Sebuah service juga dapat disetup agar berjalan otomatis sebagai Windows service,atau dijalankan secara manual.

Page 6: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 6

Robbi Rahim, S.Kom

Ada 3 service standar dalam setiap instalasi default SQL Server: Distributed Transaction Coordinator SQL Server SQL Server Agent

1.4 KOMPONEN DASAR MICROSOFT SQL SERVER 2000

Apabila anda akan mempelajari atau bekerja dengan SQL Server 2000 ada beberapa komponen pentingyang perlu diketahui. Komponen-komponen ini merupakan inti dari sebuah database dalam Microsoft SQLServer.

1. DATABASEDatabase mengandung objek-objek yang digunakan untuk mewakili, menyimpan dan mengaksesdata. Yang dimaksud dengan database dalam SQL Server adalah kumpulan Tabel, View, Indeks,Trigger, Procedure dan objek-objek lain yang terkandung di dalamnya.

2. TABELTabel sebenarnya merupakan sarana untuk menyimpan baris-baris atau record-record data danhubungannya dengan tabel lain. Jadi yang dimaksud dengan tabel disini adalah inti dari sebuahdatabase. Tabel menyimpan data yang dikelompokan di dalam bentuk baris dan kolom sepertilayaknya lembar kerja. Setiap baris mewakili record dan setiap kolom adalah atribut atau field sertasetiap field mengandung satu jenis informasi.

3. DATABASE DIAGRAMDatabase Diagram secara grafis menampilkan objek database sehingga dapat dimanipulasi tanpamenggunakan bahasa Transact-SQL. Dengan bahasa Transact-SQL menjadi Microsoft SQL Servermampu menghasilkan diagram database yang canggih. Diagram database ini adalah representasigrafik dari Tabel, Indeks, dan View yang disimpan oleh database dan bisa dimanipulasi denganteknik drag and drop dan interaksi dengan kotak dialog.

4. INDEKSIndeks adalah file-file tambahan yang meningkatkan kecepatan akses dari baris-baris tabel. Jadiindeks adalah file khusus yang bekerja sama dengan tabel. Tujuannya adalah untuk mempercepatproses pengaksesan record atau sekelompok record tertentu.

5. VIEWView adalah tabel virtual yang isinya ditentukan oleh Query ke dalam database. View ini bukanlahtabel fisik melainkan sekumpulan instuksi yang memberikan hasil berupa serangkaian data. Dengademikian View ini bisa dikatakan cara untuk melihat data yang berbeda didalam satu atau lebih tabel.

6. STORED PROCEDUREData didalam database bisa diakses hanya melalui eksekusi perintah Transact-SQL. Ketika kitamembuat aplikasi untuk berfugsi sebagai antar muka database, kita bisa memilih untuk membuatprogram SQL yang disimpan secara lokal dan dikirimkan ke server untuk dieksekusi, atau membuatdan memelihara program di dalam server itu sendiri didalam prosedur-prosedur tersimpan yang bisadipicu oleh program didalam komputer client.

Page 7: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 7

Robbi Rahim, S.Kom

7. TRIGGERTrigger adalah prosedur tersimpan yang secara otomatis dijalankan apabila data didalam tabelberubah karena eksekusi perintah SQL seperti Insert, Update, atau Delete. Salah satu darikegunaannya yang paling umum adalah untuk menerapkan pembatasan hak akses.

Page 8: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 8

Robbi Rahim, S.Kom

BAB IITIPE DATA & JENIS PERINTAH SQL SERVER

2.1 TIPE DATA SQL SERVER

Setiap kolom didalam table mempunyai nilai yang terkait dengan tipe data tertentu. Himpunan yangberupa nilai kolom yang valid atau yang dapat diterima disebut dengan domain. Jika suatu kolom mempunyainilai diluar domain dianggap sebagai pelanggaran integritas data.

Beberapa kelompok tipe data berikut ini yang berlaku di SQL Server 2000 antara lain :

1. Kelompok Tipe Data Integer

Tipe Data KeteranganBit Mendefenisikan bilangan bulat 0 atau 1.Int Mendefenisikan nilai integer yaitu bilangan bulat dengan batasan nilai antara -

2.147.483.648 sampai 2.147.483.647.Smallint Mendefenisikan nilai integer yaitu bilangan bulat dengan batasan nilai antara -

32.768 sampai 32.767.Tinyint Mendefenisikan nilai integer yaitu bilangan bulat dengan batasan nilai antara 0

sampai 255.Decimal Mendefenisikan bilangan pecahan, baik fixed decimal atau floating point.Money Mendefenisikan nilai data moneter dari -922.377.203.685.477 sampai

922.377.203.685.477Smallmoney Mendefenisikan nilai data moneter dari -214.748 sampai 214.748Float Mendefenisikan bilangan mulai -1.79E+308 sampai 1.79E+308Real Mendefenisikan bilangan mulai -3.40E+38 sampai 3.40E+38Datetime Mendefenisikan data tanggal dan jam (waktu) mulai 1 januari 1753 sampai

dengan 31 desember 9999, dengan akurasi sampai 3.33 milidetikSmalldatetime Mendefenisikan data tanggal dan jam (waktu) mulai 1 januari 1900sampai dengan

6 juni 2079 dengan ketelitian sampai 1 menit

2. Kelompok Tipe Data Sting

Tipe Data KeteranganChar(n) Mendefenisikan nilai string sepanjang n karakter sampai dengan batas maksimal

sebesar 8000 byte. Jika nilai n tidak disebutkan maka panjang karakternya adalah1.

Varchar(n) Mendefenisikan nilai string sepanjang n karakter sampai dengan batas maksimalsebesar 8000 byte.

Text Menfenisikan semua jenis data yang berupa text seperti memo, dokumen, listingprogram dimana ukurannya dapat mencapai 2.147.483.647 byte

3. Kelompok Tipe Data Unicode Character String

Unicode adalah karakter internasioanal yang menampung 16 bit per karakter. Unicode digunakan olehbahasa non latin seperti jepang, jerman, cina dan sebagainya.

Page 9: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 9

Robbi Rahim, S.Kom

Tipe Data KeteranganNchar Karakter Unicode mempunyai ukuran tetap hingga 4000 byteNvarchar Karakter Unicode mempunyai ukuran yang bervariasi hingga 4000 byteText Karakter Unicode mempunyai ukuran hingga 1.073.741.823 byte

4. Kelompok Tipe Data Binary String

Tipe Data KeteranganBinary Mendefenisikan bilangan dengan ukuran tetap hingga 8000 byteVarBinary Mendefenisikan bilangan dengan ukuran bervariasi hingga 8000 byteImage Mendefenisikan binary data untuk menyimpan image(gif, jpg,tif) dengan ukuran

yang bervariasi hingga 2.147.483.647 byte

2.2 JENIS-JENIS PERINTAH SQL

Banyak perintah dan fungsi SQL Server yang dapat digunakan untuk mendefenisikan maupunmemanipulasi database. Suatu rangkaian aktivitas yang berhubungan dengan pemulihan dan pengoptimalanperintah query didalam database pada SQL Server 2000 ini dituliskan lewat fasilitas yang memiliki antarmukagrafis yaitu Query Analyzer. Beberapa aktivitas yang dimaksud, antara lain :

1. Melakukan query pada database SQL Server dengan menggunakan perintah-perintah SQL untukmelihat teks atau grid.

2. Melihat representasi grafis dari langkah-langkah untuk mengakses query.3. Mengakses Help Online untuk bahasa Transact SQL.4. Melakukan analisa kenerja indeks.5. Menjalankan skrip Transact SQL dari prosedut tersimpan.

Secara umum perintah-perintah pada SQL Server dibagi menjadi dua kelompok, yaitu :

2.2.1 DDL (Data Defenition Language)Data Defenition Language merupakan bagian dari SQL yang digunakan untuk mendefenisikan data

dan objek database. Perintah digunakan untuk mendefenisikan suatu objek, yaitu membuat, mengubah,menghapus dan memberikan izin.

Beberapa perintah pada SQL Server 2000 yang termasuk Data Defenition Language, antara lain :

Perintah KegunaanCreate Table Membuat tabelCreate Index Membuat indexCreate View Membuat viewAlter Table Mengubah atau menyisipkan ke dalam tableDrop Table Menghapus tableDrop Index Menghapus indexDrop View Menghapus vuewGrant Memberi izin akses kepada user

Page 10: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 10

Robbi Rahim, S.Kom

2.2.2 DML (Data Menipulation Language)Data Manipulation Language merupakan bagian dari SQL yang digunakan untuk manipulasi data.

Perintah-perintah ini bertugas melakukan query dan perubahan yang dilakukan didalam suatu tabel.Beberapa perintah pada SQL Server 2000 yang termasuk Data Manaipulation Language, antara lain :

Perintah KegunaanSelect Digunakan untuk memilih data dari suatu table atau viewInsert Menyispkan baris dari suatu tableDelete Menghapus baris dari suatu tableUpdate Mengubah isi dari kolom (field) pada suatu tableCommnit Menuliskan perubahan ke dalam diskRollback Membatalkan perubahan yang dilakukan setelah perintah Commit yang terakhir

Page 11: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 11

Robbi Rahim, S.Kom

BAB IIIPEMBUATAN DATABASE & TABEL

Pada bab ini akan dijelaskan bagaimana cara membuat database dan tabel pada SQL Server 2000dengan menggunakan fasilitas SQL Server Enterprise Manager.

3.1 MEMBUAT DATABASE

Buka Enterprise Manager lalu expand Microsoft SQL Server > SQL Server Group. Lanjutan dengan membuka Server LOCAL, atau sesuai nama komputer anda, lalu buka folder

database. Klik kanan pada folder tersebut kemudian pilih New Database.

Isikan nama database yang akan dibuat misalnya, ASPNET

Page 12: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 12

Robbi Rahim, S.Kom

Lanjutkan dengan membuka tab Data Files, di bagian ini terdapat bebrapa option yang dapat dijelaskansebagai berikut :

a) File Name dan Location, untuk memberi nama file dan meletakan file database tersebut suatulokasi folder yang diinginkan.

b) File Growth, mengatur penambahan ukuran file database. Dapat diitetapkan denganpersentase tertentu atau berdasarkan jumlah megabytes tertentu.

c) Maximum File Size, ukuran file dapat dibatasi pada tingkat tertentu atau unlimited. Pada tab Transaction Log terdapat option yang sama seperti pada tab data files. Apabila membuat

database di SQL Server maka akan terdiri dariminimum 2 file yaitu :a) Data File, adalah untuk menyimpan data fileb) Transaction Log, adalah file yang menyimpan histori transaksi dan semua kejadian di database

tersebut.Pada tab ini biarkan semuanya dalam keadaan default.

Setelah proses pengisiran option selesai, klik OK dan database baru akan terlihat didalam EnterpriseManager.

3.2 MEMBUAT TABEL

Untuk tabel dalam Microsoft SQL Server bisa dilakukan dengan beberapa cara, antara lain denganmemanfaatkan SQL Enterprise Manager, Wizard dan Transact-SQL (T-SQL) serta pembuatan indeks(PrimaryKey) . Namun dalam modul ini saya memberikan contoh membuat tabel dengan memanfaatkan SQL EnterpriseManager dan Transact-SQL.

3.2.1 Membuat Tabel dengan SQL Enterprise Manager

Sebuah database terdiri dari satu atau lebih table untuk menyimpan data. Untuk membuat table, klikkanan nama database tersebut kemudian pilih New > Table.

Kemudian diisi nama-nama kolom/field untuk table tersebut. Berikut contoh pengisian untuk tabledengan nama pelanggan yang berisi 6 field, lengkap dengan tipe data masing-masing.

Page 13: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 13

Robbi Rahim, S.Kom

Dapat dilihat bahwa setiap field memiliki tipe data dan ukurannya masing-masing. Penting untukdiperhatikan bahwa setiap field harus menggunakan tipe data dan ukuran secara tepat, sesuai dengankebutuhannya. Apalagi tipe data dan ukurannya terlalu besar, maka database akan cepat membengkak danmemakan memori lebih banyak dari yang diperlukan.

Selain itu juga perlu ditetapkan field mana yang harus diisi dan mana yang tidak. Pada contoh tersebutfield IDPelanggan, Nama dan Email harus diisi dengan mengisi setup Allow Null=False. Artinya field tersebuttidak diperbolehkan Kosong.

Untuk pembuatan indeks (Primary Key) pilih dulu field yang akan dijadikan indeks kemudian klik kananpada field tersebut terus pilih Set Primary Key.

3.2.2 Membuat Tabel dengan Transact SQL (T-SQL)

Pada dasarnya tabel yang dibuat dengan SQL Enterprise Manager maupun dengan memanfaatkanTransact-SQL sama saja. Untuk lebih jelasnya perhatikan contoh berikut :

USE ASPNETGOCREATE TABLE PELANGGAN_2 (IDPelanggan SmallInt PRIMARY KEY,Nama Varchar(25) NOT NULL,Alamat Varchar(35),Kota Varchar(15),Telepon Varchar(15),Email Varchar(25) NOT NULL,)

Untuk mengetikan perintah diatas jalankan SQL Query Analyzer kemudian ketikan perintah diatassetelah selesai klik ikon Execute Query atau F5.

Page 14: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 14

Robbi Rahim, S.Kom

LATIHAN

1. Buatlah 2 buah tabel didalam database ASPNET dengan nama Barang, Satuan, dengan ketentuan sebagaiberikut : Untuk Tabel BARANG buat field-nya sebagai berikut :

Nama Field Tipe Data Ukuran Allow NullKdBarang Varchar 5 FalseNamaBarang Varchar 25 FalseHargaBarang Money 8 FalseStok SmallInt 2 FalseKdSatuan Varchar 5 False

Untuk Tabel SATUAN buat field-nya sebagai beikut :

Nama Field Tipe Data Ukuran Allow NullKdSatuan Varchar 5 FalseNamaSatuan Varchar 25 False

Page 15: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 15

Robbi Rahim, S.Kom

BAB IVOPERASI DATABASE

Pada bab sebelumnya sudah dijelaskan perbedaan antara perintah DDL (Data Defenition Language) danDML (Data Manipulation Language), pada bab ini akan dijelaskan bagaimana pengolahan data pada suatutable merupakan salah satu fasilitas SQL Server yang memanfaatkan SQL DML (Data Manipulation Language).Ada beberapa proses yang dapat dikerjakan berkaitan dengan data yang telah direkam, yaitu Insert, Update,Delete dan Select.

MENYISIPKAN DATA (INSERT)

Salah satu perintah yang dapat digunakan untuk menambah data (record) baru pada suatu table adalahInsert. Untuk pemakaian Insert, tabel dimana data akan ditempatkan harus sudah dibuat terlebih dahulu.

Adapun aturan penulisan dari perintah Insert pada suatu tabel sebagai berikut :

INSERT INTO TARGET (Field1,Field2,…….) VALUES (Value1, Value2,…….)

Komponen-komponen yang ada pada perintah Insert Into dapat dijabarkan seperti pada tabel berikut ini :

Komponen KeteranganTarget Nama dari tabel yang akan ditambah recordnyaField1, Field2 Nama dari masing-masing field yang ke dalam ekspresi value1… value2 akan diisikanValue1, Value2 Ekspresi yang akan dimasukan ke dalam field1…field2. setiap ekspresi memilki pasangan

dengan field dan akan ditempatkan berdasarkan urutan penulisannya yaitu field1=value1,field2=value2, dan seterusnya. Bila diantara field dan value tidak berhubungan makaperintah insert gagal

Perlu diketahui bahwa field yang mempunyai atribut Not Null (Allow Null=False), pada perintah Insertdilakukan harus terisi atau terisi dengan nilai default.

Berikut ini adalah contoh dari format penulisan perintah Insert pada tabel Barang dengan satu record baru,yaitu :

INSERT INTO BARANG (KdBarang, NamaBarang, HargaBarang, Stok, KdSatuan) VALUES (‘PK121’,’T-Shirt’, 125000, 3, ’KS001’)

Format lain dalam memasukan data adalah dengan tidak menuliskan nama-nama field dari tabel yangdieksekusi. Banyaknya nilai (values) yang dimasukkan akan disesuaikan dengan banyaknya field yang ada,termasuk juga urutan dari field dengan urutan data yang dimasukkan.

INSERT INTO BARANG VALUES (‘PK121’, ’T-Shirt’, 125000, 3, ’KS001’)

Proses menyisipkan data pada SQL Server tidak selalu harus dilakukan per record (satu per satu) tetapibisa dilakukan sekian record sekaligus dalam sekali eksekusi. Anda bisa menambahkan perintah “GO” diantaraproses yang ada (tetapi perintah ini bersifat optional), seperti contoh beikut :

INSERT INTO BARANG VALUES (‘PK121’, ’T-Shirt’, 125000, 3, ’KS001’)GOINSERT INTO BARANG VALUES (‘PK122’, ’Celana’, 150000, 5, ’KS002’)

Page 16: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 16

Robbi Rahim, S.Kom

Sedang bila record yang disisipkan tidak sebanyak field yang ada maka bentuk penulisannya sebagai berikut :

INSERT INTO BARANG (KdBarang, NamaBarang, HargaBarang) VALUES (‘PK121’, ’T-Shirt’, 125000,3, ’KS001’)

4.2 MODIFIKASI DATA (UPDATE)

Setiap data yang sudah disimpan dapat dimodifikasi/diubah sesuai dengan criteria yang ada, denganperintah Update.

Adapun aturan penulisan dari perintah Update pada suatu tabel, sebagai berikut :

UPDATE INTO TARGET SET FIELD1=VALUE1, FIELD2=VALUE2 WHERE FIELD=PREDIKAT

Komponen-komponen yang ada pada perintah Update dapat dijabarkan seperti pada tabel berikut ini :

Komponen KeteranganTarget Nama dari tabel yang akan di update recordnyaField1, Field2 Nama dari masing-masing field yang akan diganti dengan ekspresi value1, value2 dan

seterusnya.Value1, Value2 Ekspresi yang akan menggantikan nilai ke dalam field1…field2.Predikat Kualifikasi untuk record yang akan dirubah.

Untuk mengubah nilai suatu field, bentuk penulisan dari perintah update sebagai berikut :

UPDATE BARANG SET HargaBarang=200000 WHERE KdBarang=’PK122’

Sedang bila data dalam field yang ingin diganti lebih dari satu, bentuk penulisan querynya sebagai berikut :

UPDATE BARANG SET HargaBarang=200000, Stok=200 WHERE KdBarag=’PK122’

Nilai pengganti suatu field dapat berupa nilai yang sudah pasti atau nilai hasil operasi Aritmatika, seperticontoh berikut ini :

UPDATE BARANG SET HargaBarang=HargaBarang + (HargaBarang * (10/100)) WHEREKdBarang=’PK122’

Tetapi yang perlu diperhatikan ketika anda melakukan proses Update, jangan sampai syarat pada predikatdihilangkan. Proses ini berakibat seluruh data dalam tabel tersebut akan diganti semua, seperti contoh berikutini :

UPDATE BARANG SET HargaBarang=200000

Akibat dari pemakaian query diatas, seluruh data HargaBarang dalam tabel BARANG akan diganti dengan200000.

4.3 MENGHAPUS DATA (DELETE)

Proses menghapus data dlaam suatu tabel dapat dilakukan dengan perintah DELETE. Adapun aturanpenulisan dari perintah Delete pada suatu record sebagai berikut :

DELETE FROM TARGET WHERE FIELD=PREDIKAT

Page 17: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 17

Robbi Rahim, S.Kom

Komponen-komponen yang ada pada perintah Delete dapat dijabarkan seperti pada tabel berikut ini :

Komponen KeteranganTarget Nama dari tabel yang akan di delete recordnyaPredikat Kualifikasi untuk record yang akan dihapus

Seperti pada proses Update, predikat sangat menentukan kualifikasi record yang akan dihapus. Tanpaperinth “WHERE” maka seluruh record pada tabel yang bersangkutan akan dihapus. Pada contoh berikut iniakan dihapus data/record BARANG yang mempunyai kode “PK122”, seperti berikut ini :

DELETE FROM BARANG WHERE KdBarang=’PK122’

Perlu diperhatikan pemakaian perintah “DELETE” tanpa diikuti oleh perintah “WHERE” kecuali dikehendakiuntuk menghapus seluruh data.

DELETE FROM BARANG

4.4 MENAMPILKAN DATA (SELECT)

Perintah SELECT digunakan untuk menampilkan baris-baris data dari satu atau lebih tabel. Perintah inimerupakan perintah yang banyak digunakan dalam menampilkan data suatu atau beberapa tabel.

Adapun aturan penulisan dari perintah Select pada suatu tabel sebagai berikut :

SELECT FIELD1, FIELD2,… FROM TARGET WHERE PREDIKAT GROUP BY GROUP-FIELD ORDERBY ORDER-FIELD

Komponen-komponen yang ada pada perintah Select dapat dijabarkan seperti pada tabel berikut ini :

Komponen KeteranganField1, Field2 Nama dari masing-masing field dimana datanya akan ditampilkanTarget Nama dari tabel yang akan ditampilkan recordnyaPredikat Kualifikasi untuk record yang akan ditampilkanGroup-Field Nama field yang dijadikan kunci pengelompokanOrder-Field Field yang dipakai untuk kunci pengurutan

Pada proses pengambilan data terdapat suatu operasi yang bertujuan untuk mengambil data secarahorizontal, yang disebut dengan operasi Selection. Pada proses ini bisa dilibatkan “Kriteria” sehingga hanyadata tertentu saja yang memenuhi criteria yang akan diambil.

Berikut ini adalah contoh untuk menampilkan seluruh data dari tabel BARANG tanpa ada kriteria, yaitu :

SELECT * FROM BARANG

Sedang operasi yang bertujuan untuk mengambil data secara vertical pada suatu tabel yang mempunyaibaris-baris data yang unik disebut dengan operasi Projection.

Berikut ini adalah contoh untuk menampilkan data dari field “NamaBarang” dan “HargaBarang” dari tabelBARANG tanpa ada kriteria, yaitu :

SELECT NAMABARANG, HARGABARANG FROM BARANG

Page 18: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 18

Robbi Rahim, S.Kom

4.5 SELECTION

Operasi seleksi merupakan operasi yang paling banyak digunakan dalam mencari data dari suatu ataubeberapa tabel dengan kriteria yang kita inginkan. Beberapa kriteria-nya antara lain :

4.5.1 Klausa WHERE

Klausa Where digunaka untuk menentukan batasan baris data yang akan ditampilkan.Umumnya klausa Where dikombinasikan dengan operator lain, misalnya operator relasi seperti =, <>,>, >=, <, dan <=. Operator relasi ini dapat dikenakan pada data number, string maupun date.

Perintah query berikut, bertujuan untuk mengambil data yang harganya lebih besar dari1500000 (Satu Juta Lima Ratus Ribu Rupiah), yaitu :

SELECT * FROM BARANG WHERE HARGABARANG > 1500000

Jika data yang digunakan untuk kriteria adalah string, data tersebut harus dilengkapi dengantanda petik satu (‘ ‘) atau dua (“ “), seperti contoh berikut ini.

SELECT * FROM BARANG WHERE KODEBARANG=’001’

4.5.2 Operator And, Or, Not

Operator “AND” digunakan untuk menguji beberapa ekspresi logika yang diberikan, semuanyamemiliki nilai True(Benar). Pada contoh berikut ini ditampilakn seluruh data barang yang harganyaantara 500 Ribu sampai 1 Juta Rupiah

SELECT * FROM BARANG WHERE HARGABARANG >= 500000 AND HARGABARANG <=1000000

Operator “OR” digunakan untuk menguji apakah salah satu atau kedua ekspresi logika yangdiberikan memiliki nilai True(Benar). Pada contoh berikut ini ditampilkan seluruh data barang yangharganya kurang dari 1 Juta rupiah atau jumlahnya lebih dari 25 buah.

SELECT * FROM BARANG WHERE HARGABARANG < 1000000 OR Stok > 25

Operator “Not” digunakan untuk mendapatkan nilai kebalikan dari suatu logika atau ekspresi.Pada contoh berikut ini akan diambil data yang jumlahnya lebih besar dari 25

SELECT * FROM BARANG WHERE NOT STOK <= 25

4.5.3 Operator Beetwen dan Not Beetwen

Perintah select dapat juga digunakan untuk menampilkan data yang berada pada jangkauankriteria tertentu. Untuk itu operator yang digunakan adalah Between…And yang memiliki aturanpenulisan sebagai berikut :

SELECT FIELD1, FIELD2,… FROM TARGET WHERE PREDIKAT BETWEEN NILAI1 AND NILAI2

Komponen-komponen yang ada pada perintah Select dengan operator Between dapatdijabarkan seperti pada tabel berikut ini :

Page 19: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 19

Robbi Rahim, S.Kom

Komponen KeteranganField1, Field2 Nama dari masing-masing field dimana datanya akan ditampilkanTarget Nama dari tabel yang akan ditampilkan recordnyaPredikat Kualifikasi untuk record yang akan ditampilkanNilai1, Nilai2 Ekspresi yang berisi nilai awal dan akhir evaluasi

Perintah query pada contoh berikut bertujuan untuk mengambil data yang harganya antara 1 jutasampai 2 juta, yaitu :

SELECT * FROM BARANG WHERE HARGABARANG BETWEEN 1000000 AND 2000000

Sedang bila harga yang diinginkan selain 1 juta sampai 2 juta, maka penulisan querynya sebagaiberikut :

SELECT * FROM BARANG WHERE HARGABARANG NOT BETWEEN 1000000 AND 2000000

4.5.4 Distinct

Jika perintah Select tidak menyertakan Field dengan Constraint Primary Key (akan dibahaspada bab selanjutnya), kemungkinan tabel yang ditampilkan berisi data yang sama (duplikat). Denganpredikat Distinct maka semua record yang isinya merupalan duplikasi field yang dipilih akan diabaikan.Data dari hasil proses query yang menggunakan predikat Distinct tidak apat diubah(Update) danrefleksinya tidak dapat digunakan oleh user lain. Perhatikan contoh berikut ini yang menggunakan tabelPengarang dimana Pengarang berasal dari kota yang beraneka ragam. Dengan mengikutkan predikatDistinct maka data kota tidak ada yang ditampilkan secara dobel.

SELECT DISTINCT KOTA FROM PENGARANG

4.5.5 In dan Not In

Tampilan baris data (record) dapat dibatasi berdasarkan suatu kelompok tertentu, yaitu denganmenyertakan kondisi IN. Bentuk penulisan dari perintah select dengan kondisi IN atau NOT IN, adalah.

SELECT FIELD1, FIELD2,… FROM TARGET WHERE PREDIKAT IN (NILAI1, NILAI2…)

Komponen-komponen yang ada pada perintah Select dengan operator IN dapat dijabarkanseperti pada tabel berikut ini :

Komponen KeteranganField1, Field2 Nama dari masing-masing field dimana datanya akan ditampilkanTarget Nama dari tabel yang akan ditampilkan recordnyaPredikat Kualifikasi untuk record yang akan ditampilkanNilai1, Nilai2 Ekspresi pilihan dari evaluasi

Perintah query pada contoh berikut bertujuan untuk mengambil data Supplier yang kota asalnyaMedan, Pakam, Binjai, yaitu :

SELECT * FROM SUPPLIER WHERE KOTA IN (“Medan”, “Pakam”, “Binjai”)

Page 20: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 20

Robbi Rahim, S.Kom

Sedangkan kondisi NOT IN akan bernilai kebalikan dari IN. dan pada contoh jika dikehendakimenampilkan data Supplier kotanya selain Medan, Pakam, Binjai, yaitu :

SELECT * FROM SUPPLIER WHERE KOTA NOT IN (“Medan”, “Pakam”, “Binjai”)

4.5.6 Like dan Not Like

Kondisi LIKE dan NOT LIKE dipakai untuk mendukung proses pencarian data dengan nilaistring tertentu, bisa berdasarkan Prefix (kata depan), Suffix (kata akhir) atau kata tengah. Formatpenulisan LIKE dan NOT LIKE, sebagai berikut :

SELECT FIELD1, FIELD2 FROM TARGET WHERE EKSPRESI LIKE NILAI1

Komponen-komponen yang ada pada perintah Select dengan operasi LIKE dan NOT LIKEdapat dijabarkan seperti pada tabel berikut ini :

Komponen KeteranganField1, Field2 Nama dari masing-masing field dimana datanya akan ditampilkanTarget Nama dari tabel yang akan ditampilkan recordnyaNilai Ekspresi string yang dapat berisi karakter WILDCARD (% _ , []) dan teks yang

akan dicari pada ekspresi.

Pada contoh berikut ditampilakn sederetan data yang nama barangnya diawali oleh huruf “R”,yaitu:

SELECT * FROM BARANG WHERE NAMA LIKE ‘R%’

Sedangkan jika kondisi sebaliknya yaitu nama barang yang diawali dengan selain huruf “R”, yaitu :

SELECT * FROM BARANG WHERE NAMA NOT LIKE ‘R%’

Pemakaian tanda Underscore/garis bawah ( _ ) digunakan untuk mengabaikan satukarakter/digit. Padacontoh berikut ini akan ditampilkan sederetan data dengan mengabaikan karakter pertama dankarakter berkutnya adalah “K123”, yaitu :

SELECT * FROM BARANG WHERE NAMA NOT LIKE ‘_K123’

4.5.7 Is Null dan Not Null

Kondisi NULL adalah nilai yangbelum diisi, tetapi nilai Null tidak identik dengan spase (blank).Pada contoh berikut ditampilkan sederetan data yang statusnya kosong (Null), yaitu :

SELECT * FROM BARANG WHERE STATUS IS NULL

4.5.8 Pemakaian Bracket

Karakter Bracket ( [ ] ) digunakan untuk menunjukan bahwa satu karakter yang dipilih harusberada pada daftar. contoh berikut akan menampilkan huruf “P” sampai “W”, yaitu :

SELECT * FROM BARANG WHERE NAMA NOT LIKE ‘[P-Q]%’

Page 21: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 21

Robbi Rahim, S.Kom

LATIHAN

1. Desain suatu database dengan nama INVENTORY dan kerjakan beberapa perintah berikut yang berkaitandengan database tersebut. Spesifikasi dari database INVENTORY antara lain :

File MDF, ukurannya 20 MB dengan ukuran maksimum 40 MB dan pertambahan ukuran file 1 MB File LDF, ukurannya 4 MB dengan ukuran maksimum 8 MB dan pertambahan ukuran filenya 1 MB

Untuk itu aktifkan Query Analyzer dan ketikan kode-kode perintah berikut ini :

Create Database INVENTORY ON PRIMARY(Name = INV_DATA,Filename = “C:\SQL\DATA\INVENTORY.MDF”,Size = 20 MB,Maxsize = 40 MB,Filegrowth = 1 MB)

LOG ON (Name = INV_LOG,Filename = ”C:\SQL\DATA\INVENTORY.LDF”,Siize = 4 MB,Maxsize = 8 MB,Filegrowth = 1 MB)

2. Desain suatu tabel dengan nama BARANG, dengan ketentuan sebagai berikut : Struktur tabel BARANG seperti berikut ini :

Column Name Data Type SizeKode Varchar 5Nama Char 30Harga IntJumlah IntDisc Int

Field Kode sebagai kunci dengan ketentuan tidak boleh dobeldan tidak boleh kosong. Field Nama di set tidak boleh dikosongkan. Field Disc di set default dengan nilai O (nol).

Create Table BARANG (Kode Varchar(5) Primary Key,Nama Char(5) Not Null,Harga Int,Jumlah Int,Disc Int Default 0)

3. Inputkan bebrapa data ke tabel BARANG dan sekaligus tampilkan isi dari tabel tersebut.Kode Nama Harga Jumlah Disc

EL123 Televisi 2100000 4 10MK123 Roti Tawar 3500 30 0PK456 Sepatu 875000 30 0EL456 VCD Player 1450000 8 5EL789 Radio 380000 5 0

Page 22: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 22

Robbi Rahim, S.Kom

INSERT INTO BARANG VALUES (‘EL123’, ‘Televisi’, 2100000, 4, 10)INSERT INTO BARANG VALUES (‘MK123’, ‘Roti Tawar’, 3500, 30, 0)INSERT INTO BARANG VALUES (‘PK456’, ‘Sepatu’, 875000, 30,0)INSERT INTO BARANG VALUES (‘EL456’, ‘VCD Player’, 1450000, 8, 5)INSERT INTO BARANG VALUES (‘EL789’, ‘Radio’, 380000, 5, 0)

4. Desain suatu tabel dengan nama PENJUALAN, dengan ketentuan sebagai berikut : Struktur tabel PENJUALAN seperti berikut dibawah ini :

Column Name Data Type SizeNo_Jual Varchar 6Tgl_Jual DatetimeKd_Brg Varchar 5Jml_Jual Int

Field No_Jual, Tgl_Jual dan Kd_Brg di set tidak boleh kosong. Sedang Field Jml_Jual di set default dengan nilai 0 (nol)

5. Inputkan beberapa data ke tabel PENJUALAN dan sekaligus tampilkan data dari tabel tersebut.No_Jual Tgl_Jual Kd_Brg Jml_Brg

000001 03/17/2004 MK123 2000001 03/17/2004 EL456 1000001 03/17/2004 PK456 1000002 03/18/2004 EL123 1000003 03/20/2004 MK123 5

Page 23: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 23

Robbi Rahim, S.Kom

BAB VFUNGSI PADA SQL SERVER

Fungsi di Microsoft SQL Server 2000 berfungsi untuk memudahkan para programmer untuk mencari jalantercepat dalam merumuskan suatu masalah, ada beberapa dungsi yang terdapat didalam SQL Server 2000antara lain :

1. Fungsi Aggregate2. Fungsi String3. Fungsi Tanggal dan Waktu4. Fungsi Matematika

Fungsi-fungsi tersebut memiliki beberapa perintah yang bisa dipadukan dengan perintah-perintah SQL DML,adapun perintah dari masing-masing fungsi tersebut adalah sebagai berikut :

FUNGSI AGGREGATE

Fungsi Aggregate adalah suatu fungsi yang digunakan untuk mendapatkan suatu nilai yang merupakanhasil dari perhitungan sekelompok baris data. Beberapa contoh dari fungsi Aggregate yang seringdigunakan dalam perintah query, diantaranya :

AVG(Ekspresi)

Fungsi AVG digunakan untuk menghasilkan nilai rata-rata dari suatu data bilangan, dimanaekspresi adalah nilai numerik atau nama field yang memiliki nilai numerik atau rumus yangmenghasilkan nilai numerik. Nilai hasil perhitungan fungsi AVG adalah nilai seluruh data dibagidengan jumlah data. Apabila terdapat nilai Null pada satu atau lebih data, nilai Null tersebuttidak digunakan dalam perhitungan dan jumlah data tidak akan ditambahkan. Contoh :

SELECT AVG(Jumlah) AS [RATA RATA JUMLAH] FROM BARANG

Count(*) atau Count(Ekspresi)

Fungsi Count digunakan untuk menghitung banyaknya baris data (record) dalam suatu tabel.Nilai ekspresi(*) bisa diisi dengan nama field atau tanda bintang. Apabila ekspresinya bernilaiNull maka baris data tersebut tidak ikut dihitung. Contoh :

SELECT COUNT(*) FROM BARANG

SELECT COUNT(Nama)FROM BARANG

Max(Ekspresi)

Fungsi Max digunakan untuk mencari nilai tertinggi dari suatu data bilangan dimana ekspresiadalah nilai numerik atau nama field yang memiliki nilai numerik atau rumus yangmenghasilkan nilai numerik. Contoh :

SELECT MAX(Jumlah)FROM BARANG

Page 24: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 24

Robbi Rahim, S.Kom

Min(Ekspresi)

Fungsi Min digunakan untuk mencari nilai terendah dari suatu data bilangan dimana ekspresiadalah nilai numerik atau nama field yang memiliki nilai numerik atau rumus yangmenghasilkan nilai numerik. Contoh :

SELECT MIN(Jumlah)FROM BARANG

Sum(Ekspresi)Fungsi Sum digunakan untuk menghasilkan nilai penjumlahan dari suatu data bilangan,dimana ekspresi adalah nilai numerik atau nama field yang memiliki nilai numerik atau rumusyang menghasilkan nilai numerik. Apabila terdapat nilai Null pada satu atau lebih data, nilaiNull tersebut tidak ikut dijumlahkan. Contoh :

SELECT SUM(Jumlah)FROM BARANG

FUNGSI STRING

Fungsi String adalah suatu fungsi yang diperuntukan bagi data yang mempunyai tipe data teks(String).Umumnya tipe data string diawali dengan tanda petik satu(‘ ’) atau tanda petik dua(“ ”). Data String jugabisa diambil dari field-field pada suatu tabel yang mempunyai tipe data String (Char, Varchar dansebagainya). Bebrapa contoh dari fungsi String diantaranya :

Left(String,N)

Fungsi Left digunakan untuk memotong/mengambil nilai dari suatu string sebanyak N digit dariposisi kiri. Contoh :

SELECT LEFT(Nama,3) FROM BARANG

Right(String,N)

Fungsi Left digunakan untuk memotong/mengambil nilai dari suatu string sebanyak N digit dariposisi kanan. Contoh :

SELECT RIGHT(Nama,3) FROM BARANG

SubString(String,S,N)

Fungsi SubString digunakan untuk memotong/mengambil nilai dari suatu string mulai dariposisi S dihitung dari arah kiri ke kanan sebanyak N digit ke arah kanan. Contoh :

SELECT SUBSTRING(Nama,2,3) FROM BARANG

Len(String)

Fungsi Len digunakan untuk menghitung banyaknya karakter pada suatu data String termasukspasi. Contoh :

SELECT LEN(Nama) FROM BARANG

Page 25: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 25

Robbi Rahim, S.Kom

Upper(String)

Fungsi Upper digunakan untuk mengubah tampilan data String menjadi data dengan hurufcapital(uppercase). Contoh :

SELECT UPPER(Nama) FROM BARANG

Lower(String)

Fungsi Lower digunakan untuk mengubah tampilan data String menjadi data dengan hurufkecil(lowercase). Contoh :

SELECT LOWER(Nama) FROM BARANG

LTrim(String)

Fungsi LTrim digunakan untuk membuang spasi kosong yang ada disebelah kiri data String.Contoh :

SELECT LTrim(Nama) FROM BARANG

RTrim(String)

Fungsi RTrim digunakan untuk membuang spasi kosong yang ada disebelah kanan dataString. Contoh :

SELECT RTrim(Nama) FROM BARANG

Str(Number,N,D)

Fungsi Str digunakan untuk menampilakn baris daya Number menjadi bentuk String, denganpanjang N dan banyaknya decimal D. Contoh :

SELECT STR(123.45,6,2) FROM BARANG

Replace(String,Text1,Text2)

Fungsi Replace digunakan untuk mengganti satu atau sederetan karakter pada Text1 denganText2 pada suatu baris data. Contoh :

SELECT REPLACE(Nama,’a’,’U’) FROM BARANG

FUNGSI TANGGAL DAN WAKTU

Fungsi tanggal merupakan suatu fungsi yang diperuntukan bagi data variable atau field yang berkaitandengan data tanggal. Demikian pula dengan fungsi wakti yaitu fungsi yang diperuntukkan bagi data, variableatau field yang berkaitan dengan data waktu. Fungsi tanggal dan fungsi waktu dapat ula diterapkan untuk datadari tanggal system komputer yang sedang aktif.

Page 26: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 26

Robbi Rahim, S.Kom

GetDate()

Fungsi ini akan menghasilkan data tanggal dan jam system komputer yang sedang aktif.Fungsi ini tidak memerlukan argument. Contoh :

SELECT GETDATE()

Day(Date)

Fungsi ini akan menghasilkan nilai tanggal dari suatu baris data dengan tipe data DateTime.Contoh :

SELECT DAY(GETDATE())

Month(Date)

Fungsi ini akan menghasilkan nilai bulan dari suatu baris data dengan tipe data DateTime.Contoh :

SELECT MONTH(GETDATE())

Year(Date)Fungsi ini akan menghasilkan nilai tahun dari suatu baris data dengan tipe data DateTime.Contoh :

SELECT YEAR(GETDATE())

5.3.5 DateAdd(Part,N,Date)

Fungsi ini digunakan untuk menambah nilai tanggal (Date) sebanyak N dari bagian Part.Beberapa bentuk bagian (Part) yang dapat ditambahkan kedalam fungsi DateAdd, sebagaiberikut :

BAGIAN KETERANGANYear Menambah nilai tahun dari data tanggalQuarter Menambah nilai bulan menjadi 3 bulan berikutnyaMonth Menambah nilai bulan dari data tanggalDayofYear Menambah nilai tanggal ke … dari data tanggalDay Menambah nilai tanggal ke … dari data tanggalWeek Menambah nilai hari menjadi 7 hari berikutnya (1 minggu)

Pada contoh berikut ini akan ditambahkan suatu nilai pada data tanggal dengan penambahandi beberapa bagian, yaitu :

Page 27: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 27

Robbi Rahim, S.Kom

5.3.5.1 Menambah satu tahun kedepan

SELECT DATEADD(YEAR,1,’12/31/2004’)

5.3.5.2 Menambah tiga bulan kedepan

SELECT DATEADD(QUARTER,1,’12/31/2004’)

5.3.5.2 Menambah satu minggu kedepan

SELECT DATEADD(WEEK,1,’12/31/2004’)

5.3.6 DateDiff(Part,Date1,Date2)

Fungsi ini digunakan untuk menghitung selisi waktu mulai dari Date1 sampai dengan Date2dengan bentuk bagian Part. Bentuk bagian (Part) seperti terlihat pada tabel diatas. Contoh :

5.3.6.1 Selisih dalam tahun

SELECT DATEDIFF(YEAR.’1/20/2004’,’1/31/2004’)

5.3.6.2 Selisih dalam minggu

SELECT DATEDIFF(WEEK.’1/20/2004’,’1/31/2004’)

5.3.6.3 Selisih dalam tiga bulanan

SELECT DATEDIFF(QUARTER.’1/20/2004’,’1/31/2004’)

5.3.7 DatePart(Part,Date)

Fungsi ini dugunakan untuk mengambil nilai sesuai dengan bagian (part) yang diikutkan.Beberapa bentuk bagian (Part) yang dapat ditambahkan kedalam fungsi DatePart, sebagaiberikut :

BAGIAN KETERANGANYear Mengambil nilai tahun dari data tanggalQuarter Mengambil nilai untuk tiga bulanan dari data tanggalMonth Mengambil nilai bulan dari data tanggalDayOfYear Mengambil nilai tanggal dari data tanggal per tahunDay Mengambil nilai tanggal dari data tanggalWeek Mengambil nilai tanggal apda posisi minggu keWeekDay Menghitung banyaknya minggu mulai tanggal 1 JanuariHour Mengambil nilai jam dari data waktu(jam)Minute Mengambil nilai menit dari data waktu(jam)Second Mengambil nilai detik dari data waktu(jam)

Contoh :

Page 28: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 28

Robbi Rahim, S.Kom

5.3.7.1 Mengambil nilai minggu ke

SELECT DATEPART(WEEK,’01/4/2004’)

5.3.7.2 Mengambil nilai menit

SELECT DATEPART(MINUTE,’17:35:02’)

5.4 FUNGSI MATEMATIKA

Fungsi Matematika merupakan suatu fungsi yang digunakan untuk perhitungan suatu nilai dalam fieldmaupun inputan data yang berbentuk argument yang mempunyai tipe data numerik. Pada SQL Server 2000terdapat 23 fungsi matematika yang bisa dioperasikan, tetapi dalam modul ini hanya beberapa fungsi saja yangdibahas.

5.4.1 ABS(ekspresi)

Fungsi ini digunakan untuk menghasilkan nilai mutlak (absolute) pada nilai numerik yangdisertakan (ekspresi). Contoh :

SELECT ABS(-123.45)

5.4.2 Ceiling(ekspresi)

Fungsi ini digunakan untuk membulatkan suatu nilai numerik dengan pembulatan ke atas(lebihbesar dari bilangan yang dioperasikan. Contoh :

SELECT CEILING(17.1), CEILING(17,9)

5.4.3 Floor(ekspresi)

Fungsi ini digunakan untuk membulatkan suatu nilai numerik dengan pembulatan ke bawah (lebihkecil dari bilangan yang dioperasikan. Contoh :

SELECT FLOOR(17.1), CEILING(17,9)

5.4.4 PI

Fungsi ini akan menghasilkan suatu niali radian yang standar yaitu sebesar. Contoh :

SELECT PI

5.4.5 Degrees(ekspresi)

Fungsi ini digunakan untuk menguba nilai radian menjadi derajat dari suatu nilai radian yangdiikutkan. Contoh :

SELECT DEGREES(PI())

Page 29: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 29

Robbi Rahim, S.Kom

5.4.6 Round(ekspresi,N)

Fungsi ini digunakan untuk membulatksan suatu nilai numerik sebanyak N decimal. Contoh :

SELECT ROUND(12.456,2), ROUND(12.456,-2)

5.4.7 Square(ekspresi)Fungsi ini digunakan untuk menghasilkan nilai pangkat dari suatu bilangan yang diikutkan. Contoh :

SELECT SQUARE(10)

5.4.8 SQRT(ekspresi)

Fungsi ini digunakan untuk menghasilkan nilai akar dari suatu bilangan yang diikutkan. Contoh :

SELECT SQRT(25)

5.4.9 Persen(%)

Fungsi Modulo digunakan untuk menghasilkan nilai sisa hasil bagi suatu bilangan yang diikutkan.Contoh :

SELECT (10 % 4)SELECT (2 % 3)

LATIHAN

1. Bukalah tabel penjualan yang ada di database INVENTORY kemudian buatlah semua fungsi-fungsidiatas terhadap tabel Penjualan.

2. Tampilkan data kode, Nama, Harga, Jumlah, Besar Discount dan Total Harga dari Tabel BARANG untukdata barang yang kodenya diawali dengan “EL”. Beberapa ketentuannya sebagai berikut :

Discount = (Harga * Jumlah * Disc) / 100 Total Harga = (Harga * Jumlah) - Discount

Page 30: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 30

Robbi Rahim, S.Kom

BAB VIOPERASI DATABASE II

Didalam bab kali ini akan dijelaskan beberapa perintah yang sering dipergunakan untuk menggabungkanbeberapa tabel dan juga untuk pengurutan data yang ada didalam tabel dan juga pengelompokan data yangsering dilakukan untuk menghindari data kembar.

6.1 OPERASI JOIN

Menggabungkan beberapa tabel untuk mendapatkan satu hasil keluaran(output) yang dikehendaki disebutdengan JOIN. Pada SQL Server 2000 terdapat 3 Kategori Join, yaitu :

6.1.1 INNER JOIN

Operasi Inner Join merupakan operasi join yang paling sering digunakan. Operasi ini dapatdigunakan pada setiap anak kalimat FROM untuk membuat Join, yaitu jenis penggabungan yangmengkombinasikan setiap record dari dua tabel atau lebih yang memiliki isi field tertentu yangsama. Pada operasi Inner Join jika terdapat nilai pada suatu tabel tidak sesuai dengan tabellainnya, maka baris/record tersebut tidak ditampilkan. Contoh :

SELECT * FROM BARANG INNER JOIN JUAL ON BARANG.KODE=JUAL.KD_BRG

6.1.2 OUTER JOIN

Operasi Outer Join merupakan operasi penggabungan (Join) pada umumnya tetapi jugamenampilkan baris-baris data (record) yang tidak ikut direlasi pada saat proses penggabungantabel. Terdapat variasi dari perintah Outer Join ditinjau dari penempatan tabel yang digunakan,yaitu :

6.1.3 LEFT OUTER JOIN

Operasi Left Outer Join digunakan untuk mengkombinasikan record dimana semua record yangada pada tabel pertama (tabel primer) ditampilkan walaupun pada tabel tersebut terdapat record-record ynag tidak berhubungan dengan tabel kedua (tabel relasi). Dengan kata lain operasi LeftOuter Join akan menampilkan seluruh data berdasarkan tabel yang berada disebalah kiri perintahjoin. Perhatikan contoh berikut dilakukan proses penggabungan data dengan operasi Left OuterJoin yaitu antara tabel BARANG dengan tabel JUAL, dengan kunci field KODE pada tabelBARANG dengan field KD_BRG pada field JUAL, yaitu :

SELECT * FROM BARANG LEFT OUTER JOIN JUAL ON BARANG.KODE = JUAL.KD_BRG

6.1.4 RIGHT OUTER JOIN

Operasi Right Outer Join digunakan untuk mengkombinasikan record dimana semua record yangada pada tabel kedua (tabel relasi) ditampilkan walaupun pada tabel tersebut terdapat record-record yang tidak berhubungan dengan tabel pertama (tabel primer). Dengan kara lain operasiRight Outer Join akan menampilkan seluruh data berdasarkan tabel yang berada disebelah kanandari perintah Join. Perhatikan contoh berikut dilakukan proses penggabungan data dengan operasiRight Outer Join yaitu antara tabel BARANG dengan tabel JUAL, dengan kunci field KODE padatabel BARANG dengan field KD_BRG pada field JUAL, yaitu :

Page 31: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 31

Robbi Rahim, S.Kom

SELECT * FROM BARANG RIGHT JOIN JUAL ON BARANG.KODE=JUAL.KD_BRG

6.1.5 FULL OUTER JOIN

Operasi Full Outer Join digunakan untuk mengkombinasikan record dimana semua record yangada pada tabel pertama (tabel primer) maupun ditabel kedua (tabel relasi) akan ditampilkanwalaupun pada tabel tersebut terdapat record-record yang tidak salin berhubungan. Pada contohberikut dilakukan proses penggabungan data dengan operasi Ful Outer Join yaitu antara tabelBARANG dengan tabel JUAL, dengan kunci field KODE pada tabel BARANG dengan fieldKD_BRG pada field JUAL, yaitu :

SELECT * FROM BARANG FULL JOIN JUAL ON BARANG.KODE=JUAL.KD_BRG

6.1.6 CROSS JOIN

Operasi Cross Join merupakan operasi yang mengkombinasikan antara setiap baris data disalahsatu tabel dengan seluruh baris data di tabel lainnya. Artinya jika pada tabel primer terdapat 2 barisdata dan di tabel sekunder terdapat 5 baris data, hasil kombinasinya adalah 10 baris data. Padacontoh berikut dilakukan proses penggabungan data dengan operasi Cross Join yaitu antara tabelBARANG dengan tabel JUAL tanpa menggunakan field kunci, yaitu :

SELECT * FROM BARANG CROSS JOIN JUAL

6.2 OPERASI SORT

Mengurutkan data(sort) bertujuan menata data-data yang ada agar urutan tampilannya sesuai dengan yangdiinginkan. Pola urutan yang dilakukan ada 2 macam, yaitu :

6.2.1 ASCENDING

Pada urutan dari Ascending adalah mengurutkan data mulai dari data terkecil sampai data terbesar(menaik). Jika digambarkan untuk data string (teks) dimulai dari abjad “A” sampai “Z”. sedangkanuntuk data number (numerik) dimulai dari angka 0 sampai 9.

6.2.2 DESCENDING

Pola urutan dari Descending adalah mengurutkan data mulai dari data terbesar sampai dataterkecil (menurun). Jika diilustrasikan, untuk data string(teks) dimulai dari abjad “Z” sampai “A”.sedang untuk data number (numerik) dimulai dari angka 9 sampai 0.

Pada proses pengurutan data dengan perintah query dapat dilakukan dengan menggunakan anak kalimatORDER BY yang merupakan bagian perintah Select. Aturan dari penulisan anak kalimat ORDER BYsebagai berikut :

SELECT ….. FROM ….. ORDER BY FIELD ASC | DESCARGUMEN KETERANGAN

Field Field digunakan sebagai kunci pertama pengurutanASC | DESC Pola pengurutan yaitu Ascending atau Descending

Page 32: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 32

Robbi Rahim, S.Kom

Default dari proses pengurutan data pada kata tercadang ORDER BY adalah ASCENDING. Jadi bila suatufield menggunakan pola pengurutan Ascending maka pada field tersebut tidak perlu ditambahkan ASC.Tetapi lain halnya bila field tersebut diurutkan dengan pla Descending maka pada field tersebut harusdiberikan perintah DESC.

Perhatikan contoh query berikut ini yang bertujuan menampilkan data dari tabel BARANG dengandiurutkan berdasarkan NAMA secara Descending.

SELECT * FROM BARANG ORDER BY NAMA DESC

Pada proses pegurutan data jika ingin digunakan dua kunci sekaligus, penempatan kunci kedua diletakkansetelah kunci pertama yang dibatasi dengan tanda koma (,). Perhatikan contoh query berikut yangmenampilkan data dari tabel BARANG dengan diurutkan berdasarkan kunci pertama untuk field JUMLAHdan kunci kedua untuk field HARGA secara Descending, yaitu :

SELECT * FROM BARANG ORDER BY JUMLAH, HARGA DESC

6.3 OPERASI GROUP

Pemakaian perintah Select dapat juga digabungkan dengan anak kalimat GROUP BY yang bertujuan untukmengelompokan data (record) yang sama. Pada kasus sederhana, anak kalimat GROUP BY berfungsiseperti perintah DISTINCT. Kelebihan dari anak kalimat GROUP BY adalah dapat digunakan untukbersama dengan fungsi Aggregate. Fungs Aggregate yang digunakan bersama dengan GROUP BY akanberoperasi pada seluruh record yang akan digabung untuk membentuk satu record (baris) tunggal. Contoh:

SELECT ….. FROM ….. GROUP BY [TABEL.]FIELD [, [TABEL.] FIELD2] [, …..] HAVINGKRITERIAGROUP].

ARGUMEN KETERANGANTabel.Field1 Field1 yang digunakan sebagai kunci pertama pengelompokanTabel.Field1 Field1 yang digunakan sebagai kunci kedua pengelompokanHaving Mengevaluasi kondisi (kriteria)

Pada contoh berikut akan dikelompokan data penjualan untuk masing-masing kode barang dan banyaknyabarang dari masing-masing kode yang terjual, yaitu :

SELECT KD_BRG, COUNT(*) FROM JUAL GROUP BY KD_BRG

LATIHAN

1. tampilkan data No_Jual, Tgl_Jual, Kode, Nama, Jml_Jual dan Harga dari tabel BARANG yang di Joindengan tabel PENJUALAN sehingga didapatkan data yang saling berhubungan.

2. Tampilkan data No_Jual, Tgl_Jual, Kode, Nama, Jml_Jual, Harga, Discount dan Total Harga dari tabelBARANG yang di Join dengan tabel PENJUALAN khusus untuk data penjualan yang Total Harganyalebih besar atau sama dengan satu juta rupiah.

Page 33: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 33

Robbi Rahim, S.Kom

BAB VIIMENGENAL VIEW

View sangat berguna ketika anda akan mengolah informasi tertentu yang terdapat dalam suatu database.Dengan view anda bisa mengakses informasi tertentu yang dibutuhkan saja, sehingga pekerjaan lebih cepatdan akurat. View mengizinkan banyak user yang berbeda-beda untuk melihat dan memanfaatkan informasiyang sama dengan kepentingan berbeda-beda tergantung kebutuhannya.

Vew bisa dikatakan sebagai tabel virtual yang isinya didefenisikan oleh Query database. Secara fisikview bukanlah tabel, melainkan sekumpulan instruksi yang menghasilkan sekumpulan data.

Membuat View Secara Manual

Untuk membuat view banyak cara yang bisa dilakukan, pertama dengan manual atau bisa juga denganTransact SQL. Berikut akan dijelaskan membuat view secara manual, berikut adalah langkah-langkahpembuatannya :

Jalankan SQL Enterprise Manager Klik dua kali SQL Server Group Klik dua kali nama server anda, misalnya local Klik dua kali database Klik database anda, misalnya MyPustaka Klik dua kali View, setelah itu akan tampil jendela view sebagai berikut :

Klik kanan mouse anda tepat di daerah kosong sehingga akan tampil menu popup Klik New View. Setelah anda menekan pilihan New View. Maka Microsoft SQL segera

menampilkan gambar seperti berikut ini.

Page 34: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 34

Robbi Rahim, S.Kom

Klik Add Table. Kemudian Microsoft SQL Server akan menampilkan kelompok table dalamdatabase yang di pilih. Dalam contoh ini saya menggunakan database MyPustaka dan memilihbeberapa tabel yang ada di database tersebut.

Klik nama tabel yang akan digunakan, misalnya TBLPinjam, klik Add Klik nama tabel berikutnya, misalnya TBLBooks, klik Add Klik nama tabel lainnya yang akan dimasukan kedalam View, klik Add Klik tombol Close untuk menutup dialog Add Table, kemudiaan akan tampil seperti gambar berikut.

Page 35: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 35

Robbi Rahim, S.Kom

Menandai Field Untuk View

Agar view yang dibuat dapat menampilkan field-field yang dibutuhkan, maka anda harus menandainyaterlebih dahulu. Misalnya semua field yang ada di tabel TBLPinjam, dan sebagian dari tabel TBLBooks.

Klik semua field yang ada dalam tabel TBLPinjam Klik sebagian field yang ada dalam tabel TBLBooks sehingga dalam disain View tersebut akan

tampak seperti gambar berikut :

Page 36: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 36

Robbi Rahim, S.Kom

Menjalankan View

Untuk menjalankan View yang sudah dibuat langkah yang harus anda lakukan adalah sebagai berikut : Klik tombol Run seperti ! setelah itu jendela akan berubah seperti gambar berikut :

Menyimpan View

Setelah menjalankan View sekarang kita akan menyimpan kedalam disk agar View tersebut dapatdigunaan. View ini akan disimpan dalam database dalam kelompok View, langkahnya sebagai berikut :

Klik tombol save seperti . Setelah itu akan tampil kotak dialog Save As, kemudian ketikan namaView anda misalnya Latihan – 02, kemudian klik OK

Membuat View dengan Transact – SQL

Untuk membuat View dengan Transact-SQL dihasilkan sama, hanya prosedurnya jauh lebih ringkas.Dalam contoh ini saya tetap menggunakan Database MyPustaka dengan dua buah tabel masing-masingTBLPinjam dan TBLBooks. Sedangkan field yang digunakan adalah semua field yang ada dalam tabelTBLPinjam dan beberapa field yang ada dalam TBLBooks. Adapun langkahnya sebagai berikut :

Klik database anda di jendela Enterprise Manager, misalnya MyPustaka

Page 37: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 37

Robbi Rahim, S.Kom

Klik dua kali View, kemudia klik kanan pada jendela View kemudian pilih New View, segera ituakan tampil jendela View Kosong.

Ketikan Script berikut untuk membuat Latihan - 03.SELECT dbo.TBLPinjam.NoMember, dbo.TBLPinjam.TanggalPinjam, dbo.TBLPinjam.TanggalKembali,dbo.TBLPinjam.NoBuku, dbo.TBLBooks.JudulBukuFROM dbo.TBLBooks INNER JOIN dbo.TBLPinjam ON dbo.TBLBooks.BookNo =dbo.TBLPinjam.NoBuku

Setelah script tersebut diketik akan terlihat seperti gambar berikut ini

Klik tombol Run untuk menjalankan View dan lihat hasilnya seperti apa.

Menampilkan Data dengan View

View yang telah dibuat datanya bisa ditampilkan sama seperti anda menampilkan data-data dalam tabel.Hanya tentu saja dengan View data yang ditampilkan adalah data yang telah diseleksi. Untukmenampilkannya adalah sebagai berikut :

Pastikan anda masih dalam lingkungan Enterprise Manager dengan database yang sedang andatangani.

Klik kanan tepat di atas View anda, misalnya Latihan-02. Klik Open View kemudian pilih Return all Rows, hasilnya akan tampak seperti gambar berikut :

Page 38: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 38

Robbi Rahim, S.Kom

Menghapus View

View yang telah dibuat bisa dihapus apabila sudah tidak dibutuhkan, caranya adalah sebagai berikut : Pastikan anda masih dalam lingkungan Database dan View anda. Klik kanan di atas View yang akan dihapus. Klik delete, setelah itu akan muncul dialog seperti gambar berikut.

Klik tombol Drop All untuk menghapus View anda.

LATIHAN

1. Buatlah View dari tabel BARANG dan tabel PENJUALAN, dimana field pada tabel BARANG ditampilkansemuanya kecuali field Kd_Brg dan pada tabel PENJUALAN semua fieldnya ditampilkan semuanya.

2. Tampilkan sebuah field yang berisi informasi Total Penjualan dari tabel BARANG dan tabel PENJUALANyang sudah di Join yang berisi total dari field Harga dai tabel BARANG dan field Jml_Jual dari tabelPENJUALAN.

Page 39: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 39

Robbi Rahim, S.Kom

BAB VIIISTORED PROCEDURE

Procedure adalah suatu program yang dapat dipanggil/dieksekusi oleh program lain atau dieksekusi olehSQL – Prompt. Macam-macam procedure yang paling sering digunakan antara lain : Store Procedure yang berawalan SP dan Extended Stored Procedure (XP) Program yang dikompilasi sebagai file EXE atau DLL (Dynamic Link Library)

8.1 MEMBUAT DAN MENJALANKAN PROCEDURE

Perintah untuk membuat suatu procedure adalah Create Procedure atau boleh juga disingkat denganCreate Proc yang diikuti nama procedurenya. Bentuk penulisan dari membuat procedure sebagai berikut :

CREATE PROCEDURE <NAMA PROCEDURE> AS <DEKLARASI VARIABEL>

Pada contoh berikut in terdapat suatu procedure dengan nama LIHAT_BRG yang bertujuan untukmenampilkan data dari tabel barang, yaitu :

CREATE PROC LIHAT_BRG AS SELECT * FROM BARANG

8.1.1 MENJALANKAN PROCEDURE

Suatu procedure yang telah dibuat dengan benar dapat dijalankan dari SQL_Prompt dengan diawaliperintah Execute, Exec yang diikuti oleh nama procedurenya atau langsung dituliskan namaprocedure yang telah dibuat. Bentu penulisan dari perintah menjalankan procedre sebagai berikut :

EXECUTE LIHAT_BRG atau EXEC LIHAT_BRG atau LIHAT_BRG

8.1.2 MENGUBAH PROCEDURE

Suatu procedure yang telah dibuat dapat diubah/dikoreksi sesuai dengan kebutuhan yaitu denganperintah ALTER PROCEDURE yang diikuti oleh nama procedure. Bentuk penulisan dari perintahmengubah procedure sebagai berikut :

ALTER PROCEDURE <NAMA PROCEDURE> AS <DEKLARASI VARIABEL>

Perhatikan contoh berikut :

ALTER PROCEDURE LIHAT_BRG AS SELECT NAMA, HARGA FROM BARANG WHERE KODELIKE ‘EL%’

8.1.3 MENGHAPUS PROCEDURE

Suatu procedure yang telah dibuat dapat dihapus dengan perintah DROP PROCEDURE yang diikutioleh nama procedurenya. Bentuk penulisan dari perintah menghapus procedure sebagai berikut :

DROP PROCEDURE <NAMA PROCEDURE>

Perhatikan contoh berikut ini, yaitu cara menghapus procedure LIHAT_BRG, yaitu :DROP PROC LIHAT_BRG

Page 40: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 40

Robbi Rahim, S.Kom

8.2 NILAI DAN PARAMETER

Suatu variable yang ditulis dalam suatu procedure selalu diawali dengan @ dan diikuti oleh namavariabelnya. Sedang untuk memberikan suatu nilai ke dalam variable digunaan perintah SET atau SELECT.

Pada contoh berikut ini akan diberikan nilai 2500 ke dalam variable Harga, dengan bentuk penulisansebagai berikut :

SET @HARGA = 2500 atau SELECT @HARGA = 2500

Pemberian nilai juga dapat dilakukan dalam satu baris perintah SELECT yang diambil dari field-field suatutabeL, seperti berikut ini :

CREATE PROCEDURE DATA_BRG@KODE CHAR(5),@NAMA VARCHAR(30),@HARGA INT,@JUMLAH INT

SELECT @NAMA=NAMA, @HARGA=HARGA, @JUMLAH=JUMLAH FROM BARANG WHEREKODE=@KODE

8.3 PARAMETER

Suatu procedure dapat memiliki parameter berupa variable yang diambil oleh program yang memanggilnya.Jumlah parameter yang mampu ditampung oleh sebuah procedure mencapai 124 parameter. Penulisanparameter dapat dilakukan setelah nama procedure boleh dilingkupi dengan “()”.

Berikut ini contoh dari suatu procedure untuk menampilkan data barang untuk field Nama, Harga danjumlah yang kode barangnya ‘EL123’

CREATE PROC TAMPIL_BRG@KODE CHAR(5)AS

SELECT NAMA, HARGA, JUMLAH FROM BARANG WHERE KODE=@KODE

Sedang untuk menjalankan procedure seperti pada contoh sebelumnya yaitu untuk barang dengan kode‘EL123’, sebagai berikut :

EXECUTE T AMPIL_BRG ‘EL123’

8.4 NILAI DEFAULT

Bila saat dijalankan procedure tidak diberikan parameter, maka nilai tersebut menjadi kosong (Null). Untukmenghindari nilai kosong tersebut, maka pemberian nilai pada parameter dapat menggunakan nilai default

Berikut adalah contoh dari pemberian nilai default ‘EL123’ untuk kode barang jika kode barang tersebutdikosongan, yaitu :

CREATE PROC TAMPIL_BRG@KODE CHAR(5) =’EL123’AS

SELECT NAMA, HARGA, JUMLAH FROM BARANG WHERE KODE=@KODERETURN

Page 41: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 41

Robbi Rahim, S.Kom

8.5 PARAMETER OUTPUT

Nilai suatu parameter dapat diproses pada program procedure dan untuk kemudian parameter tersebutdapat diubah serta diberikan nilainya pada program yang memanggilnya. Pemberian parameter semacam inidisebut dengan parameter output, dimana penulisan variabelnya harus diikuti dengan kata Output setelahpenulisan datanya.

Berikut ini contoh pemakaian parameter output pada procedure LIHAT_BRG untuk kode barang ‘EL123’,sebagai berikut :

CREATE PROCEDURE LIHAT_BRG@KODE CHAR(5),@NAMA VARCHAR(30) OUTPUT,@HARGA INT OUTPUT,@JUMLAH INT OUTPUT

ASSELECT @NAMA=NAMA, @HARGA=HARGA, @JUMLAH=JUMLAH FROM BARANG WHEREKODE=@KODE

RETURN

Sedang untuk menjalankan procedure yang mempunyai parameter output, variable pada program yangmemanggil harus dideklarasikan terlebih dahulu dan pada saat eksekusi harus diikuti oleh kata output seperticontoh berikut :

DECLARE @NM VARCHAR(30), @HRG INT, @JML INTEXECUTE LIHAT_BRG ‘EL123’, @NM OUTPUT, @HRG OUTPUT, @JML OUTPUT

PRINT ‘Nama Barang : ‘ + @NMPRINT ‘Harga Satuan : Rp ‘ + str(@HRG)PRINT ‘Jumlah Barang : ‘ + str(@JML,4)PRINT ‘Total Harga: Rp ‘ + str(@HRG*@JML)

LATIHAN

1. Buatlah sebuah procedure yang menampilkan data barang meliputi Kode, Nama, Harga, Jml_Jual danTotal untuk tanggal penjualan ’17 Maret 2006’. Rumus total adalah harga dikalikan jumlah barang terjualdan nama stored procedure adalah Lat_Proc

2. buatlah sebuah procedure untuk menampilkan data barang meliputi Nama, Harga, Jumlah, Discount danTotal untuk barang yang kodenya sesuai dengan inputan. Besar Discount adalah Harga dikalikan Jumlahbarang yang terjual dikalikan besar Discount yang diinputkan dan nama stored procedure adalahLat2_Proc.

Page 42: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 42

Robbi Rahim, S.Kom

BAB IXTRANSACT SQL

Transact SQL merupakan sarana utama dalam penggunaan SQL Server karena semua aplikasi melakukankomunikasi dengan SQL Server melalui media Transact SQL. Melalui Transact SQL user dapat melakukanperintah query, input, modifikasi data dan akan direspon oelh SQL Server sesuai dengan hasil yang diinginkan.Perlu diketahui bahwa SQL adalah bahasa Non Procedural, artinya alur program tidak seperti bahasapemrograman biasa, melainkan melalui “Request” dan “Response”.

Transact SQL mengembangkan kemampuan SQL sehingga Transact SQL dapat melengkapi SQLdengan instruksi logic (Procedural Logic) yaitu program aplikasi. Hasil proses SQL Server (Resultset) dapatdiproses lebih lanjut dengan menggunakan logic pemrograman procedural seperti Fungsi, Prosedur, Loop,Case, IF Then Else dan lainnya.

9.1 KERANGKA DASAR TRANSACT SQL

Pembuatan Transact SQL harus dimulai dengan deklarasi variabel dan disusul dengan blok diagram.Variabel-variabel yang digunakan harus dideklarasikan terlebih dahulu dimana nama variabelnya selalu dimulaidengan karakter @. Variabel dapat diberikan nilai melalui perintah Select.

DECLARE@KODE CHAR(5),@NAMA VARCHAR(30),@HARGA INT

SELECT @KODE = ‘EL123’SELECT @NAMA = ‘TELEVISI’SELECT @HARGA = 2300000

Perintah Select juga dapat digunakan untuk mengoperasikan Aritmatika atau lainnya, seperti berikut ini :

SELECT @TOTAL = (@HARGA * @JUMLAH) - @DISCOUNT

9.2 MENJALANKAN TRANSACT SQL

Dalam mengembangkan program Transact SQL perlu pemahaman dari dasar – dasar materi pendukungprogram itu sendiri antara lain :

9.2.1 Deklarasi Variabel

Pemakaian variabel pada Transact SQL mempunyai beberapa tipe yang dapat dideklarasikan danmerupakan bagian dari SQL Server yaitu Char, Varchar, Datetime, Int, Money dan sebagainya.Berikut ini contoh deklarasi variabel untuk berbagai macam data, yaitu :

DECLARE@KODE CHAR(5),@NAMA VARCHAR(30),@TGL_JUAL DATETIME,@HARGA INT

SELECT @KODE = 'EL123'

Page 43: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 43

Robbi Rahim, S.Kom

SELECT @NAMA = 'TELEVISI'SELECT @TGL_JUAL = GETDATE()SELECT @HARGA = 2300000

PRINT 'LAPORAN PENJUALAN'PRINT '----------------------------------'PRINT @KODEPRINT @NAMAPRINT @TGL_JUALPRINT @HARGAPRINT '----------------------------------'

Jika program Transact SQL dijalankan, hasil yang didapatkan adalah seperti berikut ini :

LAPORAN PENJUALAN----------------------------------EL123TELEVISIJan 25 2007 8:55PM2300000----------------------------------

9.2.2 Variabel Global

Variabel global adalah variabel yang disiapkan oleh SQL Server untuk memberikan informasi kepadaClient. Sifat daripada Variabel Global adalah Read-Only. Nama dari variabel global selalu diawalidengan tanda @ @

Berikut adalah daftar Variabel Global dan keterangan dari identitas dan pemakaiannya.

Nama Variabel Keterangan

@@ERRORBernilai bulat yang menyatakan nomor error. Jika variabel tersebut tidaksama dengan NOL maka sistem memberikan indikasi bahwa terjadi errordan identitas error dinyatakan dalam angka

@@CURSOR_ROWS Memberikan nilai balik dari cursor yang terakhir kali diproses@@FETCH_STATUS Memberikan nilai balik dari hasil fetch pada kursor. Nilai NOL adalah benar

@@IDENTITY Memberikan nilai otomatis setiap kali proses Insert dilakukan. Nilai iniadalah identitas dari record yang diproses

@NESTLEVEL Merupakan nesting level dari stored procedures atau triggers

@@ROWCOUNTMemberikan nilai balik berupa jumlah baris (rows) yang terpengaruh olehinstruksi terakhir. Setelah instruksi IF atau While maka @@rowcountdihapus menjadi NOL

@@SPID Server Process ID

Page 44: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 44

Robbi Rahim, S.Kom

9.2.3 Kondisi IF

IF digunakan untuk mengendalikan alur program berdasarkan kondisi. Bentuk penulisan dari IFseperti berikut ini. Jika instruksi yang dihasilkan hanya satu, bentuknya :

IF KONDISIINSTRUKSI

Jika instruksi yang dihasilkan lebih dari satu, bentuknya :

IF KONDISIINSTRUKSI_1

ELSEINSTRUKSI_2

Jika dalam satu kondisi terdapat baris instruksi yang lebih dari satu, bentuknya :

IF KONDISIBEGIN

INSTRUKSI_1INSTRUKSI_2..........

END

Berikut ini contoh dari pemakaian IF..ELSE untuk mencetak jenis kelamin pegawai, yaitu :

DECLARE@SEX CHAR(1)

SET @SEX =’L’

IF @SEX = ‘L’PRINT ‘JENIS KELAMINNYA LAKI-LAKI’

ELSEPRINT ‘JENIS KELAMINNYA PEREMPUAN’

RETURN

Berikut ini contoh dari pemakaian IF..ELSE yang bertingkat untuk mencetak jenis barang dari inputansuatu kode. Jenis barang diambil dua digit dari kode barang, yaitu :

DECLARE@KD CHAR(2)

SET @KD = ‘MK123’IF LEFT(@KD,2)=’EL’

PRINT ‘Jenis Barang Elektronika’ELSE

IF LEFT(@KD,2)=’MK’PRINT ‘Jenis Barang Makanan’

Page 45: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 45

Robbi Rahim, S.Kom

ELSEIF LEFT(@KD,2)=’PK’

PRINT ‘Jenis Barang Pakaian’ELSE

PRINT ‘Jenis Barang Tidak Terdaftar’RETURN

Sedang pada contoh berikut ini adalah pemakaian IF...ELSE pada program Transact SQL untukmenghitung besar Discoutn 10% dari suatu barang dengan Kode Barang ‘EL123’ jika Total Harganyalebih besar sama dengan 2 Juta, yaitu :

DECLARE@HARGA INT,@JUMLAH INT,@TOTAL INT,@DISC INT

SELECT @HARGA = HARGA, @JUMLAH = JUMLAH FROM BARANG WHERE KODE=’EL123’SET @TOTAL = @HARGA * @JUMLAHIF @TOTAL >= 2000000

SET @DISC= (@TOTAL * 10) / 100ELSE

SET @DISC = 0PRINT ‘Total Harga : Rp ‘ + STR(@TOTAL)PRINT ‘Discount 10% : Rp ‘ + STR(@DISC)

9.2.4 Fungsi Case

Case digunakan untuk menyederhanakan IF yang bertingkat dengan tujuan agar program dapatdimengerti atau dibaca dengan lebih mudah. Bentuk penulisan dari Case dibanding IF bertingkatseperti berikut :

IF KONDISI_1ELSE IF KONDISI_2ELSE IF KONDISI_3ELSE IF KONDISI_4

Diganti menjadi

CASEWHEN KONDISI_1 THENWHEN KONDISI_2 THENWHEN KONDISI_3 THENELSE KONDISI_4END

Page 46: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 46

Robbi Rahim, S.Kom

Ada dua bentuk penempatan variabel yang akan diproses pada Case yaitu :

Ditempatkan setelah Case (@Nilai) dan pembandingnya (0,1,2,3,4) ditempatkan setelah When,seperti terlihat pada contoh berikut ini :

DECLARE@NILAI INT,@ABJAD CHAR(2)SET @NILAI = 2SET @ABJAD =CASE @NILAI

WHEN 0 THEN ‘E’WHEN 1 THEN ‘D’WHEN 2 THEN ‘C’WHEN 3 THEN ‘B’WHEN 4 THEN ‘A’

ELSE ‘-‘END

Ditempatkan SETELAH When (@Nilai=0, @Nilai=1,...) bersama-sama dengan pembandingnya,seperti terlihat pada contoh berikut ini.

DECLARE@NILAI INT,@ABJAD CHAR(2)

SET @NILAI = 3SET @ABJAD =CASE

WHEN @NILAI=0 THEN ‘E’WHEN @NILAI=1 THEN ‘D’WHEN @NILAI=2 THEN ‘C’WHEN @NILAI=3 THEN ‘B’WHEN @NILAI=4 THEN ‘A’

ELSE ‘-‘END

PRINT ‘NILAI AKHIR : ‘ + STR(@NILAI,1)PRINT ‘NILAI ABJAD : ‘ + @ABJADRETURN

Dari kedua bentuk tersebut dapat disimpulkan bahwa jika nilai yang dibandingkan mempunyaibatasan/range (misalnya 1 sampai 3), gunakan bentuk kedua karena lebih fleksibel. Perhatikan contohpemakaian Case untuk penilaian yang mempunyai range.

DECLARE@NILAI INT,@KET VARCHAR(20)

SET @NILAI = 7SET @KET =CASE

WHEN @NILAI = 0 THEN ‘Jelek Sekali’

Page 47: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 47

Robbi Rahim, S.Kom

WHEN @NILAI <= 3 THEN ‘Jelek’WHEN @NILAI <= 6 THEN ‘Sedang’WHEN @NILAI <= 8 THEN ‘Baik’WHEN @NILAI <= 10 THEN ‘Baik Sekali’

ELSE ‘-‘ENDPRINT ‘Score : ’ + str(@Nilai, 1)PRINT ‘Predikat : ‘ + @KETRETURN

9.2.5 Fungsi While

While digunakan untuk mengeksekusi satu blok program secara berulang-ulang sampai kondisi padaWhile menjadi False. Bentuk penulisan While sebagai berikut :

WHILE KONDISIBEGIN

.....

.....ENDBerikut ini contoh dari pemakaian looping while untuk memilih bilangan Genap dan Ganjil, yaitu:

DECLARE@BIL INT

SELECT @BIL = 1WHILE @BIL <= 5BEGIN

IF @BIL % 2 = 0PRINT STR(@BIL,2) + ‘ -> GENAP ‘

ELSEPRINT STR(@BIL,2) + ‘ -> GANJIL‘SET @BIL=@BIL+1

ENDRETURN

9.2.6 Continue dan Break

Perintah Continue bertujuan untuk melanjutkan alur program pada pemeriksaan kondisi While.Sedang Break bertujuan untuk menghentikan alur program dan keluar dari kondisi While. Bentukpenulisan dari perointah Continue seperti berikut ini.

WHILE KONDISI_1BEGIN

.....

.....IF KONDISI_2

CONTINUEEND

Sedang bentuk penulisan dari perintah Break seperti berikut ini.

Page 48: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 48

Robbi Rahim, S.Kom

WHILE KONDISI_1BEGIN

.....

.....IF KONDISI_2

BREAKENDRETURN

Berikut ini contoh dari pemakaian looping while dengan perintah Continue, yaitu :

DECLARE@BIL INT

SELECT @BIL = 1

WHILE @BIL <= 5BEGIN

SET @BIL=@BIL + 1IF @BIL >= 4

BEGINPRINT @BIL

CONTINUEEND

ENDRETURN

Berikut ini contoh dari pemakaian looping while dengan perintah break, yaitu :

DECLARE@BIL INT

SELECT @BIL = 1WHILE @BIL <= 5BEGIN

PRINT @BILSET @BIL = @BIL + 1IF @BIL >= 4

BREAKENDRETURN

LATIHAN :

1. mencetak data yang diinputan langsung dari program yang meliputi Nama Barang, Harga, Jumlah, Disc,dan Total dari data-data yang diisi setelah deklarasi variabel. Data –data tersebut meliputi ‘Roti Bakar’,2500 dan 2. ketentuan untuk Discount adalah jika harga dikalikan dengan jumlah lebih besar dari 5000maka discountnya 10% sedang bila tidak 0%. Sedang Total diperoleh dari Harga dikalikan Jumlah dandikurangi Discount.

Page 49: Mod SQL Server 2000

Diktat Mata Kuliah SQL SERVER Hal : 49

Robbi Rahim, S.Kom

DECLARE@Nama Varchar(20),@Harga Int,@Jumlah Int,@Disc Int,@Total Int

SELECT @Nama = ‘Roti Bakar’Set @Harga = 2500Set @Jumlah = 2If (@Harga * @Jumlah) > 5000

Set @Disc = @Harga * @Jumlah * .1Else

Set @Disc = 0

Set @Total = (@Harga * @Jumlah) - @Disc

Print ‘Nama Barang Harga Jumlah Discount Total’Print ‘===========================================================’Print @Nama + Str(@Harga) + Str(@Jumlah) + Str(@Disc,12) + Str(@Total,11)