1.59k likes | 2.06k Views
SQL Server 2000. Pengenalan SQL Server. SQL (Structured Query Language) Database yang berjalan diserver. Versi SQL Server 2000. SQL Server Personal Edition SQL Server Developer Edition SQL Server Enterprise Edition SQL Server Standard Edition SQL Server Desktop Engine
E N D
Pengenalan SQL Server • SQL (Structured Query Language) • Database yang berjalan diserver
Versi SQL Server 2000 • SQL Server Personal Edition • SQL Server Developer Edition • SQL Server Enterprise Edition • SQL Server Standard Edition • SQL Server Desktop Engine • SQL Server for Windows CE Edition
Nilai Dosen Hirarki Data Mahasiswa file Nama field database phrase word field karakter
Tipe File-File (1/2) • File Induk (master file) • File Induk Acuan (reference master file) • file induk yang recordnya relatif statis, jarang berubah nilainya. Misalnya file daftar gaji, file mata pelajaran. • File Induk Dinamik (dynamic master file) • file induk yang nilai dari record-recordnya sering berubah atau sering dimutakhirkan (update) sebagai hasil dari suatu transaksi. Misalnya file induk data barang, yang setiap saat harus di up-date bila terjadi transaksi. • File Transaksi (transaction file) • File ini bisa disebut file input; digunakan untuk merekam data hasil dari transaksi yang terjadi. Misalnya file penjualan yang berisi data hasil transaksi penjualan.
Tipe File-File (2/2) • File Laporan (report file) • File ini bisa disebut output file, yaitu file yang berisi informasi yang akan ditampilkan. • File Sejarah (history file) • File ini bisa disebut file arsip (archival file), merupakan file yang berisi data masa lalu yang sudah tidak aktif lagi, tetapi masih disimpan sebagai arsip. • File Pelindung (backup file) • File ini merupakan salinan dari file-file yang masih aktif di dalam database pada suatu saat tertentu. File ini digunakan sebagai pelindung atau cadangan bila filedatabase yang aktif mengalami kerusakan atau hilang.
Sistem Database Terkoneksi • Sistem database terkoneksi dibangun dengan adanya service dan arsitektur sistem yang digunakan • Jenis service • User service : presentasi, antar-muka, validasi, aturan • Business service : aturan bisnis • Data service : penyimpanan dan pengaksesan data, aturan • Arsitektur sistem • Single tier (host) : semua service berada dalam satu komputer • 2-tier (client/server) : service dibagi pada komputer-komputer yang berbeda yang saling terhubung • 3-tier • N-tier
1-Tier (Client-Server) User Interface Presentation service Application service Business service Data service
2-Tier (Client-Server) Tier I User Interface Presentation service Application service Clients Tier II Application service Business service Data service Server
3-Tier Tier I User Interface Presentation service Tier II Application service Business service Data service Tier III Data service
N-Tier (Multi-Tier) Tier I User Interface Presentation service Tier IV Web service Tier II Application service Business service Tier III Data service
Pengenalan • SQL Server adalah perangkat lunak sistem management database relasional (Relational DataBase Management System [RDBMS]) • SQL Server menggunakan perintah Transact-SQL (T-SQL) untuk melakukan proses pada database • T-SQL menggunakan ANSI SQL-92 sebagai fondasinya
Komponen Penyusun Database • Physical Database • File database secara fisik (.mdf, .ndf, .ldf) • Logical Database • Database yang tersimpan di dalam physical database (table, view)
File-file Physical Database • Primary Data File (.mdf) • Satu database hanyamemilikisatu .mdf • Sebagai file utamapenyimpan data user dan data sistem • Secondary Data Files (.ndf) • Opsional : bolehada, bolehtidak • Bolehlebihdarisatu file • Sebagai file tambahanpenyimpan data user • Log Files (.ldf) • Satu database minimal memilikisatu.ldf • Sebagaipenyimpan log aktivitas yang terjadipada database • Catatan ; • saat database logical dibuat, secara default akanterdiridarisatu file .mdfdansatu file .ldf • Ekstensi file .mdf, .ndf, .ldfdapatdiganti
Database Default SQL Server • Master • Menyimpan data-data sistem • Tidak boleh rusak • MSDB • Menyimpan data-data yang digunakan MS SQL Agent • Model • Database model untuk membuat database baru • TempDB • Menyimpan sementara hasil query yang kompleks
Objek-objek Database SQL Server • Table • Constraint • Rule • Default • View • Stored Procedure • Trigger • User Defined Data Types
Kelompok Perintah-Perintah SQL • Data Definition Language (DDL) • CREATE • ALTER • DROP • Data Manipulation Language (DML) • SELECT • INSERT • UPDATE • DELETE • Data Control Language (DCL) • GRANT • DENY • REVOKE
Query Analyzer • Query Analyzer adalah program bantu dalam Ms SQL Server untuk menjalankan perintah-perintah SQL
Penulisan Perintah SQL pada QA • Huruf besar dan huruf kecil tidak berpengaruh • Nama objek seperti nama tabel, kolom, view dsb. disarankan jangan mengandung spasi. Gunakan garis bawah (under score) sebagai pengganti spasi • Perintah boleh ditulis satu baris. Disarankan dibagi menjadi beberapa baris untuk mempermudah pembacaan
Membuat Database • Perintah SQL untuk membuat database adalah CREATE • Sintaks : CREATE DATABASE nama_tabel ( Spesifikasi_kolom1, … , Spesifikasi_kolomn )
Contoh CREATE DATABASE latihan • Membuat database latihan tanpa spesifikasi, menggunakan default CREATE DATABASE latihan ON ( NAME = filedata1, FILENAME = ‘d:\filedata1.mdf’, SIZE = 10 mb, MAXSIZE = UNLIMITED, FILEGROWTH = 20% ) • Membuat database latihan dengan satu file data berukuran 10MB dan pertumbuhan 20% tidak terbatas
Tentang SIZE dan FILEGROWTH • Nilai SIZE dan FILEGROWTH harus bilangan bulat • SIZE • Satuannya KB, MB (default), TB. • Nilai minimal 512 KB. • Jika tidak ditentukan, default 1 MB • FILEGROWTH • Satuannya KB, MB (default), TB, %. • Nilai minimal 64 KB. • Nilai 0 digunakan untuk tidak mengadakan penambahan • Jika tidak ditentukan, default 10%.
Informasi tentang Database • Perintah untuk mendapatkan informasi tentang database yang ada adalah : • sp_helpdb nama_database • Informasi yang dapat diperoleh adalah : • Nama database • Ukuran database • Pemilik • Tanggal pembuatan • Status • File-file data logical & physical • Filegroup • Ukuran file • Ukuran maksimum • Pertumbuhan • Pemakaian
Contoh CREATE DATABASE latihan ON ( NAME = filedata1, FILENAME = ‘d:\filedata1.mdf’, SIZE = 10 mb, MAXSIZE = UNLIMITED, FILEGROWTH = 20% ), ( NAME = filedata2, FILENAME = ‘d:\filedata2.ndf’, SIZE = 1, MAXSIZE = 250 mb, FILEGROWTH = 514 kb ) • membuatsebuah database barudengannamalatihandenganduabuah file data, yaitu: FileData1 dan FileData2.
Contoh CREATE DATABASE latihan ON ( NAME = filedata1, FILENAME = ‘d:\filedata1.mdf’, SIZE = 2, MAXSIZE = 1 gb, FILEGROWTH = 20% ) LOG ON ( NAME = filelog1, FILENAME = ‘d:\filelog1.ldf’, SIZE = 640 kb ) • membuatsebuah database barudengannamalatihandengansebuah file data (FileData1) dansebuah log file (FileLog1). NOTE: spesifikasi Size, Maxsize, danFilegrowthtidakwajibdiberikan
Contoh Modifikasi Spec ALTER DATABASE latihan MODIFY FILE ( NAME = filedata1, SIZE = 3, MAXSIZE = 500 mb ) • mengubah spesifikasi salah satu file dari sebuah database. Yang dapat diubah hanya untuk size, maxsize dan filegrowth. NOTE: nama file fisik tidak boleh ditulis. Size dan Maxsize tidak boleh lebih kecil dari ukuran file saat perubahan
Contoh ALTER DATABASE latihan ADD FILE ( NAME = filedata2, FILENAME = ‘d:\filedata2.ndf’, SIZE = 1, MAXSIZE = 500 mb ) • menambahkansebuah file data kedalam database latihan ALTER DATABASE latihan ADD LOG FILE ( NAME = filelog2, FILENAME = ‘d:\filelog2.ldf’, SIZE = 640 kb, MAXSIZE = UNLIMITED ) • menambahkansebuah file log kedalam database latihan,
Contoh ALTER DATABASE latihan REMOVE FILE filelog2 • Perintah ini untuk menghapus file dari database latihan (berlaku untuk file data maupun log). NOTE : file yang dihapus menggunakan nama file logical DROP DATABASE latihan • Perintah ini untuk menghapus database latihan. NOTE : database aktif harus MASTER (use master dahulu sebelum melakukan drop database)
Tabel • Tabel adalah objek untuk menyimpan data yang terdiri dari row (record) dan column (field) • Sintaks untuk membuat tabel : CREATE TABLE nama_tabel ( nama_kolom1tipe_data, … nama_kolomntipe_data )
Perbedaan Char dan Varchar • Char memiliki panjang tetap • Varchar memiliki panjang sesuai panjang datanya • Catatan : direkomendasikan menggunakan tipe data Char untuk kolom Primary Key dari pada Varchar b o b Char(5) b o b disimpan b o b VarChar(5) b o b
Contoh CREATE TABLE pelanggan ( kode_pelangan CHAR(5), nama_pelanggan VARCHAR(25), alamat VARCHAR(50), telepon VARCHAR(15), umur TINYINT, tgl_lahir SMALLDATETIME )
Informasi tentang Tabel • Perintah untuk mendapatkan informasi tentang database yang ada adalah : • sp_help nama_tabel • Informasi yang dapat diperoleh adalah : • pemilik • tipe tabel • tgl. dibuat • struktur tabel • kolom identity • rowGUIDcol • filegroup • index • constraint • referensi FK
Modifikasi Definisi Tabel --menambahkolom ALTER TABLE pelanggan ADD hobi VARCHAR(250) --mengubah spec kolom ALTER TABLE pelanggan ALTER COLUMN hobi VARCHAR(100) --menghapuskolom ALTER TABLE pelanggan DROP COLUMN hobi --menghapustabel DROP TABLE pelanggan --mengubahnamakolom SP_RENAME ‘pelanggan.alamat’, ‘domisili’, ‘COLUMN’
Input Data • Sintaks perintah penginputan data ke tabel : INSERT [INTO] nama_tabel [( nama_kolom1[, … , nama_kolomn] )] VALUES ( nilai1[, … , nilain] ) • Data bertipe karakter (char, varchar, text) dan datetime (smalldatetime, datetime) harus diapit dengan tanda petik satu. • Format standard yang digunakan untuk datetime adalah ’31 May 2005’ atau ‘05/31/2005’.
Contoh INSERT INTO pelanggan VALUES( ‘P0001’, ‘Mitra Budiaji Chan’, ‘Kemanggisan Ilir’, ‘08128149909’, 20, ’28 Nov 2005’ ) • Memasukkan sebuah record ke dalam table Pelanggan dimana semua column diisi. INSERT INTO pelanggan (kode_pelanggan, nama_pelanggan) VALUES(‘P0002’,‘Julyana Anggreini’) • Memasukkan sebuah record ke dalam table Pelanggan dimana hanya column Kode_Pelanggan dan Nama_Pelanggan yang diisi. NOTE: selain column yang diisi oleh perintah INSERT, akan berisi data NULL.
Contoh INSERT INTO pelanggan VALUES(NULL, NULL, NULL, NULL, NULL, NULL) • Memasukkan sebuah record ke dalam table Pelanggan dimana semua column diisi dengan data NULL INSERT INTO pelanggan VALUES(‘’, ‘’, ‘’, ‘’, ‘’, ‘’) • Memasukkan sebuah record ke dalam table Pelanggan dimana semua column diisi dengan EMPTY STRING. Column bertipe karakter akan berisi karakter kosong. Column bertipe bilangan akan berisi nilai NOL. Column bertipe tanggal akan berisi tanggal awal, yaitu: 1 Jan 1753 (untuk datetime) dan 1 Jan 1900 (untuk smalldatetime)
Update Data UPDATE pelanggan SET kode_pelanggan = ‘P0003’ WHERE kode_pelanggan = ‘’ • mengubah data pada column Kode_Pelanggan menjadi P0003 bila column Kode_Pelanggan berisi karakter kosong. Perintah tersebut untuk UPDATE pelanggan SET Nama_pelanggan = ‘Hengky’ WHERE kode_pelanggan IS NULL • mengubah data pada column Nama_Pelanggan menjadi ‘Hengky’ bila column Kode_Pelanggan berisi data NULL. UPDATE pelanggan SET umur = 21 • mengubah SEMUA data pada column Umur menjadi 21. NOTE: bila perintah UPDATE tidak memiliki WHERE clause, maka semua record akan diubah sesuai dengan nilai baru pada SET.
Delete Data DELETE FROM pelanggan WHERE kode_pelanggan IS NULL • menghapus record bila column Kode_Pelanggan berisi data NULL. DELETE FROM pelanggan WHERE kode_pelanggan = ‘P0003’ AND nama_pelanggan = ‘’ • menghapus record bila column Kode_Pelanggan berisi data ‘P0003’ dan column Nama_Pelanggan berisi karakter kosong. DELETE FROM pelanggan • menghapus SEMUA record dari table Pelanggan. NOTE: bila perintah DELETE tidak memiliki WHERE clause, maka semua record akan di-HAPUS.
Select Data • SELECT * FROM customers • Menampilkan semua data & semua column dari table Customers. • SELECT contactname, contacttitle FROM customers • Menampilkan column ContactName dan ContactTitle dari table Customers. Tanda koma setelah select menunjukkan pergantian column. • SELECT contactname AS Name, contacttitle AS Title FROM customers • Menampilkan column ContactName dengan judul “Name” dan column ContactTitle dengan judul “Title” dari table Customers. • SELECT Name = contactname, Title = contacttitle FROM customers • SELECT contactname AS “Contact Name”, contacttitle AS [Contact Title] FROM customers • Menampilkan column ContactName dengan judul “Contact Name” dan column ContactTitle dengan judul “Contact Title” dari table Customers. Jadi, bila kita ingin menggabungkan dua kata, dapat menggunakan tanda “ “ atau [ ].
Filtering • SELECT TOP 10 * FROM customers • Menampilkan hanya 10 record teratas dari table Customers. • SELECT TOP 30 PERCENT * FROM customers • Menampilkan hanya 30 percent record teratas dari table Customers. • SELECT contacttitle FROM customers • Menampilkan hanya column ContactTitle dari table Customers. Data yang ditampilkan akan berulang karena ada beberapa record dimana column ContactTitle tersebut berisikan data yang sama. Bila hanya ingin ditampilkan data yang berbeda saja, maka dapat digunakan keyword DISTINCT. • SELECT DISTINCT contacttitle FROM customers • menampilkan column ContactTitle yang berisikan data berbeda dari table Customers
Filtering : Where • SELECT * FROM customers WHERE region IS NOT NULL • Menampilkan record dari table Customers dimana column Region tidak berisikan NULL. • SELECT * FROM customers WHERE region <> ‘’ • Menampilkan record dari table Customers dimana column Region tidak berisikan empty string. • SELECT * FROM customers WHERE country = ‘Germany’ • Menampilkan record dari table Customers yang memenuhi kondisi tersebut, yaitu: colum country berisikan ‘Germany’. • SELECT * FROM products WHERE unitprice > 10 • Menampilkan record dari table Products dimana column UnitPrice berisikan data lebih besar dari 10.
Logical Operators • SELECT * FROM products WHERE unitprice > 10 AND UNITSINSTOCK < 10 • Menampilkan record dari table Products dimana column UnitPrice berisikan data lebih besar dari 10 dan column UnitsInPrice kecil dari 10. NOTE: Operator AND hanya bersifat BENAR bila kedua syarat/kondisi yang ada bernilai BENAR. • SELECT * FROM products WHERE unitprice > 10 OR unitsinstock < 10 • Menampilkan record dari table Products dimana column UnitPrice berisikan data lebih besar dari 10 atau column UnitsInPrice kecil dari 10. NOTE: Operator OR hanya bersifat BENAR bila salah satu atau kedua syarat/kondisi bersifat BENAR.
Operator BETWEEN • Operator BETWEEN dapat digunakan untuk membuat kondisi/syarat yang bersifat range atau suatu jangkauan. • SELECT * FROM products WHERE unitprice BETWEEN 10 AND 20 • Menampilkan record dari table Products dimana column UnitPrice bernilai antara 10 sampai 20. Perintah sinonim : • SELECT * FROM products WHERE unitprice >= 10 AND unitprice <= 20 • SELECT * FROM products WHERE unitprice NOT BETWEEN 10 AND 20 • Menampilkan record dari table Products dimana column UnitPrice tidak bernilai antara 10 sampai 20. Perintah sinonim : • SELECT * FROM products WHERE unitprice < 10 OR unitprice > 20
Operator LIKE • Karakter wildcard yang dapat digunakan adalah: • % : sembarang karakter, banyaknya minimal 0 • _ : sembarang karakter, banyaknya harus 1 • [ ] : sembarang karakter di dalam tanda kurung tersebut • [^ ] : sembarang karakter selain yang terdapat dalam tanda kurung tersebut • SELECT * FROM customers WHERE custname LIKE ‘MAR%S%’ • Menampilkan record dari table Customers dimana column CustName berisi data yang sesuai dengan pola ‘Mar%s%’ • SELECT * FROM customers WHERE custname LIKE ‘__A%’ • Menampilkan record dari table Customers dimana column CustName berisi data yang sesuai dengan pola ‘__a%’, yaitu: karakter ketiga adalah huruf ‘a’. • SELECT * FROM customers WHERE custname LIKE ‘[STUV]%’ • Menampilkan record dari table Customers dimana column CustName berisi data yang sesuai dengan pola ‘[STUV]%’, yaitu: karakter pertama adalah S, T, U, atau V