Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional...

63
31 Mei 2006 © 2006, M. Ramadhan 1 Structured Query Language DDL (Data Definition Language)

Transcript of Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional...

Page 1: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 1

Structured Query Language

DDL (Data Definition Language)

Page 2: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 2

Pendahuluan

Yang akan dibahas:Bahasa basis data: DDL, DMLMengenal SQL: standar, manfaatSQL: Data Definition Language• Membuat, mengubah, menghapus basis data• Membuat, mengubah, menghapus tabel• Membuat, mengubah, menghapus view• Membuat dan mengubah index

Page 3: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 3

Tujuan

Mahasiswa diharapkan :Mengetahui kegunaan bahasa basis data.Mampu membedakan antara DDL dgn DML.Mengetahui sejarah, standar, dan manfaat SQL.Mampu menuliskan pernyataan SQL untukmendefinisikan, mengubah dan menghapusbasis data, tabel, dan view.Mampu menuliskan pernyataan SQL untukmendefinisikan dan menghapus index.

Page 4: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 4

Bahasa Basis Data

Memungkinkan pengguna:• Membuat dan mengubah skema basis data.• Mengelola data seperti menambah, mengubah

dan menghapus data.Oleh karena itu, bahasa basis data terdiri atas dua komponen, yaitu:• DDL (Data Definition Language) • DML (Data Manipulation Language)

Page 5: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 5

DDL (Data Definition Language)

Bahasa untuk mendefinisikan skema atau memodifikasi skema yang ada.Hasilnya: sekumpulan tabel yang disebut kamus data (data dictionary).Kamus data (disebut juga katalog, direkori) mengintegrasikan metadata.Metadata mendeskripsikan objek dalam basis data: definisi record, item data, dsb.

Page 6: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 6

DML (Data Manipulation Language)

Bahasa untuk memanipulasi data, yaitu untuk:• Menyisipkan data baru ke dalam basisdata• Memodifikasi data dalam basisdata• Menemukan kembali data dalam basisdata• Menghapus data dari dalam basisdata

Ada dua jenis DML, yaitu:• DML prosedural• DML non-prosedural

Page 7: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 7

DML prosedural dan non-prosedural

DML prosedural: bahasa yang memungkinkan pengguna memerintahkan sistem secara tepat bagaimanamemanipulasi data.DML non-prosedural: bahasa yang memungkinkan user menyatakan data apayang dibutuhkan dan bukan bagaimana data diperoleh. Contoh: SQL, QBE

Page 8: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 8

Mengenal SQL

Bahasa standar untuk basis data relasionalLebih dari 100 DBMS mendukung SQLDiusulkan pertama kali oleh D. Chamberlin, 1974, peneliti di Lab. Riset IBM, San Jose, dengan nama SEQUEL (Structured EnglishQuery Language)Versi revisi SEQUEL/2 didefinisikan th. 1976 dan namanya berubah menjadi SQL.Hingga kini masih banyak orang melafalkan SQL sebagai ‘see-quel’

Page 9: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 9

Standar SQL

1986, SQL standar dibakukan oleh ANSI (American National Standards Institute)1987, SQL standar diadopsi sebagai standar internasional oleh International Standard Organization (ISO)1989, ISO mempublikasikan addendum yang mendefinisikan ‘Integrity Enhancement Feature’1992, revisi oleh ISO menghasilkan SQL2, disebut juga SQL-92 (ISO, 1992).1999, standar SQL3 atau SQL-99

Page 10: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 10

Tools >< SQL

DBMS masa kini telah menyediakan tools yang mudah digunakan tanpa harus mengetikkan pernyataan SQL untuk:• mendefinisikan, mengubah, dan menghapus

skema basis data.• menambah, mengubah, dan menghapus

data.Walaupun demikian, pemahaman terhadap SQL memberikan banyak manfaat.

Page 11: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 11

Manfaat SQL

Source code SQL dapat disimpan dan di-runpada sistem yang sama atau berbeda untuk memperoleh objek basis data yang sama.Pernyataan SQL dapat ditanamkan ke dalam bahasa prosedural dan memenuhi kebutuhan pemrograman operasi basis data.Memberikan pemahaman yang lebih baik sebagai fundasi penggunaan tools visual sehingga penggunaan tools tersebut lebih efektiv.

Page 12: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 12

SQL: Data Definition Language

Create DatabaseCreate TableCreate ViewCreate Index

Alter DatabaseAlter TableAlter View

Drop DatabaseDrop TableDrop ViewDrop Index

Yang akan dibahas:Membuat, mengubah, menghapus basis dataMembuat, mengubah, menghapus tabelMembuat, mengubah, menghapus viewMembuat, menghapus index

Page 13: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 13

Mendefinisikan Basis data

Basis data adalah container tempat tabel terkait, view, index dan objek lainnya.Pernyataan SQL:

Create Database NamaBasisDataMisalnya mendefinisikan basis data MyBooks:

Create Database MyBooks

Gunakan klausa Set untuk setting basis data, misalnya basis data hanya untuk dibaca saja:

Create Database MyBooksSet Read_Only

Page 14: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 14

Mengubah dan Menghapus Basis data

Basis data yang ada dapat diubah, misalnya mengganti nama MyBooks menjadi Bukuku:

Alter Database MyBooksModify Name = Bukuku

Mengubah setting basis data dengan klausa Set, misalnya

Alter Database MyBooksSet Read_Write

Menghapus basis data:Drop Database NamaBasisData

Page 15: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 15

Mendefinisikan Tabel (1)

Gunakan syntax berikut:Create Table NamaTabel(NamaKolom1 TipeData1,

: :NamaKolomN TipeDataN)

Contoh, mendefinisikan tabel Buku:Create Table Buku

(ISBN Char(10),Judul VarChar(25),ThTerbit Integer)

Page 16: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 16

Konvensi Nama

Dalam MS SQL Server, aturan nama sbb:• Maksimum 128 karakter• Terdiri atas huruf dan boleh diikuti dengan

angka, simbol khusus: _(garis bawah), #, $, @• Jangan menggunakan kata kunci SQL. Bila

terpaksa, tulis nama di antara dua tanda petikganda “ “ atau di antara dua kurung siku [ ].

Sebaiknya hanya menggunakan huruf danangka supaya tidak timbul masalah padamultiplatform dan atau multisistem.

Page 17: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 17

Tipe Data

Character, TextExact NumericApproximate NumericsMoneyDate, TimeBit, Binary, Image

Page 18: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 18

Tipe Data: Character (1)

Tipe Data KeteranganChar(panjang)Character(panjang)

String denganpanjang tetap, 1 s.d8000 karakter. Jikapanjang diabaikan, nilai default 1.

NChar(panjang)NCharacter(panjang)National Char(panjang)National Character(panjang)

String karakterUnicode denganpanjang tetap, 1 s.d4000. Jika panjangdiabaikan, default 1.

Page 19: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 19

Tipe Data: Character (2)

Tipe Data KeteranganChar Varying(panjang)Character Varying(panjang)VarChar(panjang)

String dengan panjangvariabel, 1 s.d 8000 karakter. Jika panjangdiabaikan, nilai default 1.

NChar Varying(panjang)NCharacter Varying(panjang)VarChar(panjang)National Char Varying(panjang)National Character Varying(panjang)

String karakter Unicode dengan panjangvariabel, 1 s.d 4000. Jikapanjang diabaikan, nilaidefault 1.

Page 20: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 20

Tipe Data: Text

Tipe Data KeteranganText Data teks dengan panjang variabel

sampai 2.147.483.647 karakter. NText

National Text

Data teks Unicode dengan panjangvariabel sampai 1.072.741.823 karakter atau 2.147.483.647 byte.

Page 21: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 21

Tipe Data: Exact Numerics

Tipe Data Jangkauan Harga Ukuran(byte)

BigInt (-263)s.d (263-1)(-9,223,372,036,854,775,808) s.d(9,223,372,036,854,775,807)

8

IntInteger

(-231)s.d (231-1)(-2,147,483,648) s.d (2,147,483,647)

4

SmallInt (-215)s.d (215-1)(-32,768) s.d (32,767)

2

TinyInt 0 s.d (28-1) atau 0 s.d 255 1

Page 22: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 22

Tipe Data: Approximate Numerics

Tipe Data Jangkauan Harga Keterangan

Float(n) - 1.79E+308 s.d-2.23E-308, 0, dan

2.23E-308 s.d1.79E+308

n = 1 s.d 24: 4 bytepresisi 7 digit

n = 25 s.d 53: 8 bytepresisi 15 digit

RealFloat(24)

- 3.40E + 38 s.d-1.18E - 38, 0, dan

1.18E - 38 s.d3.40E + 38

4 byte

Page 23: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 23

Tipe Data: Money

Tipe Data Jangkauan Harga Ukuran(byte)

Money -922,337,203,685,477.5808s.d

922,337,203,685,477.58078

SmallMoney - 214,748.3648s.d

214,748.36474

Page 24: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 24

Tipe Data: Date, Time

Tipe Data Jangkauan Harga Akurasi(Ketelitian)

DateTime 1 Januari 1753s.d

31 Desember 9999

3.33 milidetik

SmallDateTime 1 Januari 1900s.d

6 Juni 20791 menit

Page 25: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 25

Tipe Data: Bit, Binary, Image

Tipe Data KeteranganBit Berharga 1, 0, atau NULLBinary(n) Data biner dg panjang tetap, n ber-

harga 1 s.d 8000. Ukuran n byte. Jikapanjang diabaikan, nilai default 1.

varbinary (n)Binary Varying(n)

Data biner dg panjang variabel, n ber-harga 1 s.d 8000. Ukuran n byte. Jikapanjang diabaikan, nilai default 1.

Image Data biner dg panjang variabel, dari 0 s.d (231-1) atau(2,147,483,647) byte

Page 26: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 26

Null, Harga Default

Null berarti data aktual tidak diketahui.Harga default adalah harga yang diberikan oleh sistem ketika baris baru ditambahkan. Pada pernyataan Create Table, setelah nama kolom tambahkan:• ekspresi Null untuk kolom yang boleh kosong• ekspresi Not Null u/ kolom yg tak boleh kosong• klausa Default harga bila diperlukan.

Page 27: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 27

Contoh penggunaan Null dan harga default

Create Table Buku(ISBN Char(10) Not Null,Judul VarChar(25) Null Default ‘ ‘,ThTerbit Integer Null Default Null);

Pernyataan di atas mendefinisikan tabelBuku dengan kolom:ISBN tidak boleh kosong, Judul boleh kosong dengan harga default ‘ ‘ThTerbit boleh kosong dgn nilai default Null

Page 28: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 28

Menambah Kolom Baru

Gunakan syntax berikut:Alter Table NamaTabel

Add NamaKolomBaru TipeDataTambahkan ekspresi Null dan atau klausaDefault bila diperlukan.Menambahkan kolom IdPenerbit bertipeinteger dan boleh Null ke dalam tabel Buku:Alter Table Buku

Add IdPenerbit Integer Null

Page 29: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 29

Menghapus Kolom

Gunakan syntax berikut:Alter Table NamaTabel

Drop NamaKolomMisalnya mnghapus kolom ThTerbit daridalam tabel Buku:

Alter Table BukuDrop ThTerbit

Page 30: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 30

Mengubah Kolom

Untuk mengubah tipe data, ukuran, boleh Nullatau tidak suatu kolom, gunakan syntax:Alter Table NamaTabel

Alter Column NamaKolomMengubah kolom ThTerbit bertipe Integer, bo-leh Null, nilai Default Null, menjadi bertipeSmallInt, tidak boleh Null, Default 2000:

Alter Table BukuAlter Column ThTerbit SmallInt

Not Null Default 2000

Page 31: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 31

Constraints

Constraint dibutuhkan untuk menjaminintegritas basis data.Pada pernyataan Create Table, dapatditambahkan empat jenis constraint:• Primary key• Unique• Foreign key• Check

Page 32: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 32

Primary key

Pada SQL Server 2000: Setelah pendefinisian kolom terakhir, tambahkanConstraint NamaConstraint Primary Key (NamaKolom)

Pernyataan Constraint NamaConstraint bolehdiabaikan.Jumlah NamaKolom maksimum 16 buah(composite key).Setelah NamaKolom dapat ditambahkan pernya-taan Asc untuk menaik atau Desc untuk menurun.

Page 33: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 33

Unique

Unique mirip primary key, namun kolomnyaboleh Null.Setelah pendefinisian kolom terakhir, tambahkanConstraint NamaConstraint Unique (NamaKolom)

Pernyataan Constraint NamaConstraint bolehtidak ditulis.Jumlah NamaKolom maks. 16 buah (komposit).Sebh tabel dpt memiliki 250 unique constraint.Setelah NamaKolom dapat ditambahkan pernya-taan Asc untuk menaik atau Desc untuk menurun

Page 34: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 34

Contoh penggunaan primary key dan unique

Create Table Buku(ISBN Char(10) Not Null,Judul VarChar(25) Null Default ‘ ‘,ThTerbit Integer Null Default Null,constraint IsbnPk Primary Key (ISBN),constraint JudThUq Unique(Judul,ThTerbit));

Pernyataan di atas mendefinisikan tabel Buku :Primary key ISBNKombinasi Judul dan ThTerbit unik (tidak bolehada yang sama harganya)

Page 35: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 35

Foreign key (1)

Foreign key adalah sebuah kolom atau lebih dalam sebuah tabel yang harganya cocok dengan harga primary key atau uniqueconstraint dalam tabel lain (atau tabel dirinya sendiri) yang terkait.Setiap kolom foreign key harus memiliki tipe data dan ukuran yang sama dengan kolom primary key atau kolom unique constraint yang diacu.

Page 36: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 36

Foreign key (2)

Pada SQL Server 2000: Setelah pendefinisian kolom terakhir, tambahkanConstraint NamaConstraint Foreign Key (NamaKolom)

References NamaTabelAcuan (NamaKolom)

Pernyataan Constraint NamaConstraint boleh diabaikan.Sebuah tabel dapat memiliki hingga 253 buah foreign key

Page 37: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 37

Contoh penggunaan foreign key

Create Table Buku(ISBN Char(10) Not Null,Judul VarChar(25) Null Default ‘ ‘,ThTerbit Integer Null Default Null,IdPenerbit Integer Not Null,constraint ISBNpk Primary Key (ISBN),constraint IdPenerbitFk Foreign Key (IdPenerbit)

References Penerbit (IdPenerbit),constraint JudThUq Unique(Judul,ThTerbit));

Page 38: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 38

Check Constraint (1)

Digunakan untuk menjamin validitas hargasuatu kolom sesuai dg domain kolom tsb.Pernyataan Check (kriteria) ditulis setelahpendefinisian kolom.

Create Table Buku(ISBN Char(10) Not Null,Judul VarChar(25) Null Default ‘ ‘,ThTerbit Integer Null Default Null

Check (ThTerbit >= 1990));

Page 39: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 39

Check Constraint (2)

Cara lain dengan menulis pernyataanConstraint NamaConstraint Check (kriteria) setelah pendefinisian kolom terakhir.

Create Table Buku(ISBN Char(10) Not Null,Judul VarChar(25) Null Default ‘ ‘,ThTerbit Integer Null Default Null,constraint ISBNpk Primary Key (ISBN),constraint ThTerbitCk Check (ThTerbit >= 1990));

Page 40: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 40

Menambah Constraint

Syntax:Alter Table NamaTabelAdd Constraint NamaConstraint TipeConstraintFormat penulisan TipeConstraint bergantung pd jenis constraint, sama dg format pendefinisiannyaMisalnya menambahkan foreign key pada tabelBuku yang terhubung dg tabel Penerbit:Alter Table BukuAdd constraint IdPenerbitFk Foreign Key (IdPenerbit)

References Penerbit (IdPenerbit)

Page 41: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 41

Menghapus Constraint

Syntax:Alter Table NamaTabel

Drop Constraint NamaConstraintMisalnya menghapus constraint foreign keyIdPenerbitFk dari tabel Buku:

Alter Table BukuDrop constraint IdPenerbitFk

Page 42: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 42

View (1)

Definisi:Tabel basis (base table) adalah sebuah tabelyang secara fisik disimpan dalam basis data.View adalah hasil dinamis dari sebuah atau lebih operasi terhadap tabel basis.View adalah tabel virtual yang secara aktual tidak ada dalam basis data, tetapi dihasilkan berdasarkan permintaan user sesuai dengankebutuhannya.

Page 43: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 43

View (2)

Tujuan:Memberikan keamanan dg menyembunyikan sebagian basis data terhadap user tertentu.Memungkinkan user mengakses data sesuai dengan kebutuhannya, sehingga data yangsama dapat dilihat dengan cara berbeda oleh user yang berbeda, pada waktu yang sama.Menyederhanakan operasi rumit terhadap tabelbasis (base table).

Page 44: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 44

View (3)

View digunakan untuk:• Memilih sekumpulan baris tertentu dari

sebuah tabel (proses seleksi).• Memilih sekumpulan kolom tertentu dari

sebuah tabel (proses proyeksi).• Men-join-kan beberapa tabel.• Menggabungkan baris beberapa tabel

menggunakan operasi union.

Page 45: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 45

View (4)

Proses proyeksi, misalnya:Membuat view JudulTh untuk menampilkankolom Judul dan ThTerbit dari tabel Buku :

Create View JudulTh AsSelect Judul,

ThTerbitFrom Buku

Page 46: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 46

View (5)

Proses seleksi, misalnya:Membuat view BukuBaru untuk menampilkansemua kolom tabel Buku yang terbit tahun2005 ke atas:

Create View BukuBaru AsSelect *From BukuWhere (ThTerbit >= 2005)

Page 47: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 47

View (6)

Proses proyeksi dan seleksi, misalnya:Membuat view JudulTh05 untuk menampilkankolom Judul dan ThTerbit dari tabel Buku yang terbit pada tahun 2005 :

Create View JudulTh05 AsSelect Judul,

ThTerbitFrom BukuWhere (ThTerbit = 2005)

Page 48: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 48

View (7)

Definisi view dapat juga dibuat berdasarkanview yang telah didefinisikan sebelumnya.Membuat view JudulTh05 untuk menampilkankolom dari view JudulTh yang terbit padatahun 2005 :

Create View JudulTh05 AsSelect *From JudulThWhere (ThTerbit = 2005)

Page 49: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 49

View (8)

Join dua tabel atau lebih yang terhubung:Misalnya menampilkan kolom Judul dari tabelBuku dan kolom Nama dari tabel Penerbit yang terhubung melalui kolom Idpenerbit :

Create View BukuPenerbit AsSelect Buku.Judul,

Penerbit.NamaFrom Buku Join PenerbitOn Buku.IdPenerbit = Penerbit.IdPenerbit

Page 50: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 50

View (9)

Create View BukuPenerbit AsSelect Buku.Judul, Penerbit.NamaFrom Buku Join PenerbitOn Buku.IdPenerbit = Penerbit.IdPenerbit

Memberikan hasil yang sama dengan :

Create View BukuPenerbit AsSelect Buku.Judul, Penerbit.NamaFrom Buku, PenerbitWhere Buku.IdPenerbit = Penerbit.IdPenerbit

Page 51: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 51

View (10)

Apa hasil dari pernyataan SQL berikut?

Create View BukuPenerbit AsSelect Buku.Judul,

Penerbit.NamaFrom Buku,

Penerbit

Page 52: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 52

View (11)

Menggabungkan baris dari dua tabel atau lebih.Misalnya menggabungkan Nama dan NoTelp daritabel Pengarang dengan Nama dan NoTelp daritabel Penerbit:

Select Nama, NoTelpFrom Pengarang

UnionSelect Nama, NoTelp

From Penerbit

Page 53: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 53

View (12)

Mengubah View nenggunakan Alter Viewdengan syntax yg sama dengan Create View

Misalnya, mengubah view BukuBaru dengankriteria sebelumnya (ThTerbit >= 2005)menjadi (ThTerbit >= 2006) :

Alter View BukuBaru AsSelect *From BukuWhere (ThTerbit >= 2006)

Page 54: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 54

Kriteria / Kondisi (1)

Antara lain digunakan pada pernyataan:Constraint … Check (kriteria)Select … From … Where (kriteria)

Kriteria/kondisi adalah ekspresi boolean, menghasilkan harga True atau FalseEkspresi boolean menggunakan operator per-bandingan yang membandingkan dua harga:> >= < <= = <> Contoh: ThTerbit >= 1990

ThTerbit = 2005

Page 55: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 55

Kriteria / Kondisi (2)

Untuk ekspresi boolean yang lebih rumit, gunakan operator logika berikut: Not And Or

Between In Like

Contoh:ThTerbit >= 1990 And ThTerbit <= 2005

ThTerbit Between 1990 And 2005

Judul Like ‘%Visual Basic%’

NIM Like ‘_ _04%’

ThTerbit In(1999,2002,2005)

Page 56: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 56

Index (1)

Index dibuat untuk meningkatkan kinerja dan efisiensi penyaringan, pencarian dan pengu-rutan baris berdasarkan kolom tertentu.Secara internal, SQL Server membuat indexketika misalnya: • pernyataan DML, misalnya pernyataan select

dieksekusi.• primary key dispesifikasikan• unique constraint dispesifikasikan.

Page 57: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 57

Index (2)

Membuat index, syntax:Create Index NamaIndexOn NamaTabel (NamaKolom1,NamaKolom2,…)Jumlah kolom maksimum 16 buahSetelah NamaKolom dapat ditambahkan Descuntuk menurun atau Asc untuk menaik (default)Index tak dapat dilakukan pada kolom bertipe Text, NText, Image.Panjang total maksimum untuk semua kolom adalah 900 byte.

Page 58: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 58

Index (3)

Membuat indeks ThIsbnIx untuk tabel Bukuberdasarkan kolom ThTerbit dan ISBN:

Create Index ThIsbnIxOn Buku (ThTerbit, ISBN)

Page 59: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 59

Menghapus

Yang Dihapus Syntax Pernyataan SQL

Basis data Drop Database NamaBasisData

Tabel Drop Table NamaTabel

View Drop View NamaView

Index Drop index NamaIndex

Page 60: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 60

Daftar Istilah

DDLDMLSQLBasis DataTabelBarisKolom

Tipe DataPrimary key constraintForeign key constraintUnique constraintCheck constraintViewIndex

Page 61: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 61

Yang Sudah Dipelajari

Bahasa basis data: DDL, DMLMengenal SQL: standar, manfaatMembuat, mengubah, menghapus basis dataMembuat, mengubah, menghapus tabel• Konvensi nama • Constraint• Tipe data • Harga default

Membuat, mengubah, menghapus viewMembuat dan mengubah index

Page 62: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 62

Daftar Pustaka

Connolly, Thomas., et.al., 2002. DatabaseSystem. Wokingham England, Addison-Wesley Publishing Company.

Vieira, Robert, 2006. Beginning SQL Server 2005 Programming. Indianapolis, Wiley Publishing, Inc.

Otey, Michael dan Conte, Paul, 2001. SQL Server Developer's Guide, Berkeley, Osborne / McGraw-Hill.

Page 63: Structured Query Language - unsri.ac.id fileMengenal SQL Bahasa standar untuk basis data relasional Lebih dari 100 DBMS mendukung SQL Diusulkan pertama kali oleh D. Chamberlin, 1974,

31 Mei 2006 © 2006, M. Ramadhan 63

TAMAT

© 2006, M. Ramadhan