Query Languages Pada Basis Data

Embed Size (px)

Citation preview

  • 8/19/2019 Query Languages Pada Basis Data

    1/13

    Pengertian SQL

    “Query Language”

    SQL (Structured Query Language) adalah sebuah bahasayang dipergunakan untuk mengakses data dalam basis datarelasional. Bahasa ini secara de facto merupakan bahasa standaryang digunakan dalam manajemen basis data relasional. Saat inihampir semua server basis data yang ada mendukung bahasa iniuntuk melakukan manajemen datanya. SQL biasanya berupaperintah sederhana yang berisi instruksi-instruksi untukmanipulasi data. Perintah SQL ini sering juga disingkat dengansebutan ‘uery‘.

    Sejarah SQL

    Sejarah SQL dimulai dari artikel seorang peneliti dari !B" bernama #honny $racle yang membahas tentang ide pembuatan basis datarelasional pada bulan #uni %&'(. )rtikel ini juga membahaskemungkinan pembuatan bahasa standar untuk mengakses datadalam basis data tersebut. Bahasa tersebut kemudian diberi

  • 8/19/2019 Query Languages Pada Basis Data

    2/13

    nama S*Q+*L ,Structured *nglish Query Language. Setelahterbitnya artikel tersebut !B" mengadakan proyek pembuatanbasis data relasional berbasis bahasa S*Q+*L. )kan tetapikarena permasalahan hukum mengenai penamaan S*Q+*L !B"

    pun mengubahnya menjadi SQL. !mplementasi basis datarelasional dikenal dengan System/0. 1i akhir tahun %&'(-anmuncul perusahaan bernama $racle yang membuat server basisdata populer yang bernama sama dengan nama perusahaannya.1engan naiknya kepopuleran #ohn $racle maka SQL juga ikutpopuler sehingga saat ini menjadi standar de facto bahasa dalammanajemen basis data.

    Standarisasi SQL

    Standarisasi SQL dimulai pada tahun %&23 ditandai dengandikeluarkannya standar SQL oleh )4S!. Standar ini sering disebutdengan SQL23.Standar tersebut kemudian diperbaiki pada tahun%&2& kemudian diperbaiki lagi pada tahun %&&5. 6ersi terakhirdikenal dengan SQL&5. Pada tahun %&&& dikeluarkan standar baruyaitu SQL&& atau disebut juga SQL&& akan tetapi kebanyakanimplementasi mereferensi pada SQL&5. Saat ini sebenarnya tidakada server basis data yang %((7 mendukung SQL&5. 8al inidisebabkan masing-masing server memiliki dialek masing-masing.

    Pemakaian Dasar SQL

    Secara umum SQL terdiri dari dua bahasa yaitu 1ata 1e9nitionLanguage ,11L dan 1ata "anipulation Language ,1"L.!mplementasi 11L dan 1"L berbeda untuk tiap sistemmanajemen basis data ,S"B1 namun secara umumimplementasi tiap bahasa ini memiliki bentuk standar yangditetapkan )4S!.

     Jenis-jenis perintah SQL

    Perintah atau instruksi SQL dapat dikelompokkan berdasarkan jenis dan fungsinya. :erdapat ; jenis perintah dasar SQL < 1ata1e9nition Language 1ata "anipulation Language dan 1ata=ontrol Language.

  • 8/19/2019 Query Languages Pada Basis Data

    3/13

    1. Data Definition Language (DDL) adalah jenis instruksi SQL yang berkaitan

    dengan pembuatan struktur tabel maupun database. Termasuk diantaranya :

    !"#T"$ D!%&$ #LT"!$ dan !"'#".

    . Data anipulation Language (DL) adalah jenis instruksi SQL yang

     berkaitan dengan data yang ada dalam tabel$ tentang bagaiman menginput$

    menghapus$ memperbaharui serta memba*a data yang tersimpan di dalam

    database. ontoh perintah SQL untuk DL : S"L"T$ +'S"!T$ D"L"T"$

    dan ,&D#T".

    -. Data ontrol Language (DL) adalah jenis instruksi SQL yang berkaitan

    dengan manajemen hak akses dan pengguna (user) yang dapat mengakses

    database maupun tabel. Termasuk diantaranya : !#'T dan !"/%0".

    Selain ketiga jenis perintah SQL terdapat juga 5 jenis SQLtambahan < :ransaction =ontrol Language dan ProgrammaticSQL.

    1. Transa*tion ontrol Language (TL) adalah perintah SQL untuk proses

    transaksi. &roses transaksi ini digunakan untuk perintah yang lebih dari 1$

    namun harus berjalan semua$ atau tidak sama sekali. isalnya untuk aplikasi

    *riti*al seperti transfer uang dalam sistem database perbankan. Setidaknyaakan ada perintah$ yaitu mengurangi uang nasabah #$ dan menambah uang

    nasabah . 'amun jika terjadi kesalahan sistem$ kedua transaksi ini harus

    dibatalkan. Tidak bisa hanya satu perintah saja. Termasuk ke dalam TL

    adalah perintah : %+T$ !%LL#0$ dan S"T T!#'S#T+%'.

    . &rogrammati* SQL berkaitan dengan sub program (stored pro*edure)

    maupun penjelasan mengenai struktur database. ontoh perintah seperti :

    D"L#!"$ "2&L#+'$ &!"!"$ dan D"S!+".

    Data Defnition Language (DDL)

    11L digunakan untuk mende9nisikan mengubah sertamenghapus basis data dan objek-objek yang diperlukan dalambasis data misalnya tabel vie> user dan sebagainya. Secaraumum 11L yang digunakan adalah =0*):* untuk membuat

  • 8/19/2019 Query Languages Pada Basis Data

    4/13

    objek baru +S* untuk menggunakan objek )L:*0 untukmengubah objek yang sudah ada dan 10$P untuk menghapusobjek. 11L biasanya digunakan oleh administrator basis datadalam pembuatan sebuah aplikasi basis data.

    =ontoh <

    !"#$"=0*):* < digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah<

    =0*):* 1):)B)S* membuat sebuah basis data baru.

    3  =0*):* 1):)B)S* nama?basis?data

    =0*):* :)BL* membuat tabel baru pada basis data yang sedangaktif.

    3  =0*):* :)BL* nama?tabel

    Secara umum perintah ini memiliki bentuk<

    3  =0*):* :)BL* @nama?tabelA3  ,3  nama?9eld% tipe?data @constraintsA@3  nama?9eld5 tipe?data3  ...A3 

    #tau Seperti ini %

    • !"#T" T#L" 4nama5tabel6

    •(

    • nama5field1 tipe5data 4$

    • nama5field tipe5data$

    • ...6

  • 8/19/2019 Query Languages Pada Basis Data

    5/13

    • 4%'ST!#+'T nama5field *onstraints6

    • )

    D!&P $#'L"

    1igunakan untuk melakukan penghapusan tabel. "elakukanpenghapusan table dengan perintah 10$P berarti mengerjakanhal berikut <

    Semua data dan struktur dari table akan dihapus Semua transaksipending akan di-commit Semua indeks akan dihapus Perintahdrop ini tidak bisa di-rollback Sebagai contoh jika kita ingin

    menghapus tabel dept maka yang harus dilakukan adalah <

    • D!%& T#L" dept7

    #L$"!

    "enambahkan kolom baru untuk menambah kolom baru syntaumumnya sebagai berikut <

    • #LT"! T#L" table

    • #DD (*olumn datatype 4D"8#,LT e9pr6

    • 4$ *olumn datatype6...)7

    Cita dapat memodi9kasi kolom dengan mengubah tipe datanyaukuran dan nilai defaultnya. Sintaks dari perintah )L:*0 :)BL*untuk memodi9kasi kolom sebagai berikut <

    • #LT"! T#L" table

    • %D+8 (*olumn datatype 4D"8#,LT e9pr6

    • 4$ *olumn datatype6 ... )7

  • 8/19/2019 Query Languages Pada Basis Data

    6/13

    =ontoh <

    • #LT"! T#L" dept

    • %D+8 (dname /#!;#!(- adalah tabel bayangan. :idak menyimpan data secara 9sik.Biasanya berupa hasil uery dari tabel-tabel dalam sebuahdatabase. Synta untuk melakuakn 6!*D adalah <

    • !"#T" /+"= >lt7namaTabel>gt7 #S

    • >lt7SQLQuery>gt7

    $rigger

     :rigger adalah sebuah obyek dalam database yang berupa

    prosedur yang merespon setiap kali terdapat proses modi9kasipada tabel. Proses modi9kasi berupa< !nsert +pdate dan delete.Synta pembuatan :rigger<

    • !"#T" T!+"! >lt7namaTrigger>gt7 %' T#L" >lt7namaTabel>gt7

    • 8%! 4D"L"T"6 4$6 4+'S"!T6 4$6 4,&D#T"6

    • #S >lt7perintahSQL>gt7

    =ontoh perintah 1"L <Penambahan data pada sebuah tabelSynta<

    • +'S"!T +'T% nama5tabel(field ke?1$ @.. field ke?n)

  • 8/19/2019 Query Languages Pada Basis Data

    7/13

    • /#L,"S(nilai5field5ke?1$ @. nilai5field5ke?n)7

    Pembaruan data pada sebuah tabelSynta

    • ,&D#T" nama5tabel

    • S"T nama5field A data5baru

    • =;"!" nama5field A data5lama7

    • &enghapusan data pada sebuah tabel

    Synta<

    • D"L"T" 8!% nama5tabel

    • 4 =;"!" kondisi67

    •  &emilihan data dari satu atau beberapa tabel

    Synta <

    • S"L"T 4D+ST+'T6 sele*t5list

    • 8!% table5sour*e

    • 4=;"!" sear*h5*ondition6

    • 4!%,& group5by5e9pression6

    • 4;#/+' sear*h5*ondition6

    • 4%!D"! order5e9pression 4#S B D"S6 6

  • 8/19/2019 Query Languages Pada Basis Data

    8/13

    1engan nama?9eld adalah nama kolom ,9eld yang akan dibuat.Beberapa sistem manajemen basis data mengiEinkanpenggunaan spasi dan karakter non huruf pada nama kolom.tipe?data tergantung implementasi sistem manajemen basis data.

    "isalnya pada "ySQL tipe data dapat berupa 6)0=8)0 :*F:BL$B *4+" dan sebagainya.constraints adalah batasan-batasan yang diberikan untuk tiapkolom. !ni juga tergantung implementasi sistem manajemen basisdata misalnya 4$: 4+LL +4!Q+* dan sebagainya. !ni dapatdigunakan untuk mende9nisikan kunci primer ,primary key dankunci asing ,foreign key. Satu tabel boleh tidak memiliki kunciprimer sama sekali namun sangat disarankan mende9nisikanpaling tidak satu kolom sebagai kunci primer.

    Data *anipu+ation Language (D*L)1"L digunakan untuk memanipulasi data yang ada dalam suatutabel. Perintah uery yang digunakan untuk memanipulasi datadalam tabel seperti menambah merubah atau menghapus data.Perintah ini tidak terkait dengan struktur dan metadata dariobjek-objek yang berada pada tabel-tabel databaseyang umumdilakukan adalah<

    1. S"L"T untuk menampilkan data

    . +'S"!T untuk menambahkan data baru

    -. ,&D#T" untuk mengubah data yang sudah ada

    C. D"L"T" untuk menghapus data

    =ontoh <

    S"L"$S*L*=: adalah perintah yang paling sering digunakan pada SQLsehingga kadang-kadang istilah uery dirujukkan pada perintahS*L*=:. S*L*=: digunakan untuk menampilkan data dari satuatau lebih tabel biasanya dalam sebuah basis data yang sama.

  • 8/19/2019 Query Languages Pada Basis Data

    9/13

    S*L*=: adalah yang perintah paling sering SQL digunakan danmempunyai format umum yang berikut<

    • S"L"T 4D+ST+'T #LL6 EF + 4*olumn"9pression 4#S neG'ame66 4$

    @..6H

    • 8%! Table'ame 4alias6 [email protected]

    • 4=;"!" *ondition6

    • 4!%,& olumn list6 4;#/+' *ondition6

    • 4%!D"! olumn list6

    column*pression menampilkan suatu nama kolom atau suatuungkapan :able4ame adalah nama dari suatu tabel database adaatau vie> bah>a mempunyai untuk akses dan alias adalah suatusingkatan opsional untuk :able4ame.+rutan memproses suatu statement S*L*=: adalah <

    1. 8!% enetapkan tabel atau tabel itu untuk digunakan

    . =;"!" enyaring baris yang tunduk kepada beberapa kondisi

    -. !%,& embentuk kelompok baris dengan kolom yang sama

    nilainya

    C. ;#/+' enyaring kelompok yang tunduk kepada beberapa kondisi

    I. S"L"T enetapkan kolom yang adalah untuk nampak keluaran

    J. %!D"! enetapkan order pesanan keluaran

    $rder yang menentukan di dalam statemen S*L*=: tidak bisadiubah. Satu-Satunya dua ketentuan >ajib dua hal pertama itu< <S*L*=: and G0$" < sisanya adalah opsional

    Perintah select bisa digunakan dengan

  • 8/19/2019 Query Languages Pada Basis Data

    10/13

    1. kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan.

    . kondisi5aggregat adalah syarat khusus untuk fungsi aggregat.

    ,S"!$

    +ntuk menyimpan data dalam tabel dipergunakan sintaks<

    • +'S"!T +'T% 4'##5T#L"6 (4D#8T#!58+"LD6) /#L,"S

    (4D#8T#!5'+L#+6)

    • ontoh:

    • +'S"!T +'T% T"ST ('##$ #L##T$ SS=%!D) /#L,"S (KtestK$

    KalamatK$ KpassK)7

    Condisi dapat dihubungkan dengan operator logika misalnya)41 $0 dan sebagainya.

    .PD#$"

    +ntuk mengubah data menggunakan sintaks<

    • ,&D#T" 4'##5T#L"6 S"T 4'##50%L%6A4'+L#+6 =;"!"

    40%'D+S+6

    • ontoh:

    • ,&D#T" suser set passGordA1-CIJ Ghere usernameAab*

    DELETE

    ,ntuk menghapus data dipergunakan sintaks:

    • D"L"T" 8!% 4nheG andiM6 40%'D+S+6

    • ontoh:

  • 8/19/2019 Query Languages Pada Basis Data

    11/13

    • D"L"T" 8!% T"ST =;"!" '##AKtestK7

    DL (Data ontro+ Language)

    1=L ,1ata =ontrol Language adalah salah satu bentuk SQL yangdigunakan untuk melakukan suatu control pada data yang adaatau disimpan dalam suatu database. =ontrol yang dimaksuddisini adalah memberikan privileges atau hak akses kepada useryang akan mengakses data pada suatu database.1=L memiliki 5 syntaks yang paling umum yaitu<

    1. !#'T untuk mengiMinkan pengguna tertentu untuk melakukan tugas

    tertentu.

    .  !"/%0" untuk membatalkan sebelumnya diberikan atau ditolak iMin.

    /!#$

    Perintah H0)4: digunakan oleh administrator untuk menambahiEin baru kepada pengguna database. !ni memiliki sintaks yangsangat sederhana yang dide9nisikan sebagai berikut<

    • !#'T 4priNilege6

    • %' 4obje*t6

    • T% 4user6

    • 4=+T; !#'T %&T+%'6

    Berikut rundo>n pada masing-masing parameter yang ada di

    perintah H0)4: diatas

    01 Pri2i+ege

    Privilege dapat berupa kata kunci )LL ,untuk memberikanberbagai iEin atau iEin database tertentu atau seperangkat

  • 8/19/2019 Query Languages Pada Basis Data

    12/13

    periEinan. =ontohnya meliputi =0*):* 1):)B)S* S*L*=:!4S*0: +P1):* 1*L*:* *F*=+:* dan =0*):* 6!*D.

    31 &4ject

    $byek dapat berupa objek database. Pilihan privilege yang validakan bervariasi berdasarkan jenis objek database )nda masukandalam klausa on ini. Biasanya objek berupa database fungsistore procedural tabel atau vie>.

    51 Pengguna6.ser

    "enjelaskan pengguna/user database yang akan diberikanprivilege ,hak istime>a terhadap database.

    !"&7"

    Perintah 0*6$C* digunakan untuk menghapus akses databasedari pengguna sebelumnya yang diberikan akses H0)4: tersebut.Syntaksnya adalah<

    • !"/%0" 4!#'T %&T+%' 8%!6 4permission6

    • %' 4obje*t6

    • 8!% 4user6

    • 4#S#D"6

    Berikut rundo>n yang ada pada parameter dari perintah 0*6$C*diatas <

    01 Permission

    "enentukan hak akses database yang ingin di hapus daripengguna yang telah diidenti9kasi

    31 &4ject

  • 8/19/2019 Query Languages Pada Basis Data

    13/13

    $byek dapat berupa objek database. Pilihan privilege yang validakan bervariasi berdasarkan jenis objek database )nda masukandalam klausa on ini. Biasanya objek berupa database fungsi

    store procedural tabel atau vie>.

    51 .ser6Pengguna

    "enjelaskan pengguna/user database yang akan diberikanprivilege ,hak istime>a terhadap database.

    81 #S#D"

    $psi =)S=)1* juga mencabut iEin tertentu dari setiap pengguna

    bah>a pengguna tertentu diberikan iEin.