SQL (Structured Query Language ) Oleh : SYAIFUL HUDA, S.Kom Kontrak Kuliah Identitas Mata Kuliah : • Mata Kuliah : SQL • Kode : MKP601 (2 Sks) • Semester : 6 • Prasyarat : Minimal 10 mahasiswa Deskripsi Mata Kuliah • Dasar-dasar SQL ( database, pembentukan table, manipulasi data dan retrieval) • SQL lanjut ( joins aggregation, function, sub-queries, views, indexes) • Integritas referensial • Transaksi data, object locking dan isu sinkronisasi • Administrasi DBMS, keamanan Tugas-tugas • Tugas mandiri : tugas ini wajib dikerjakan oleh mahasiswa dan bersifat individu yang berkaitan dengan materi perkuliahan • Tugas Kelompok : tugas ini wajib dikerjakan oleh mahasiswa dan bersifat kelompok yang beranggotan dua orang atau lebih. Sistem Penilaian KEHADIRAN (%) 10 TUGAS (%) 10 UTS (%) 35 UAS (%) 45 Sistem Skor RING NILAI 90 - 100 80 - 89 70 - 79 60 - 69 50 - 59 40 - 49 0 - 39 NILAI HURUF A AB B BC C D E BOBOT 4 3.5 3 2.5 2 1 0 Jadwal Perkuliahan PERTEMUAN 1-7 8 9 - 15 16 MATERI Materi 1 - 7 Ujian Tengah Semester Materi 9 - 15 Ujian Akhir Semester Tata Tertib Mahasiswa harus dapat menghargai dirinya sendiri dan orang lain dengan cara : • Berpakaian rapi, tidak memakai kaos oblong dan sandal selama perkuliahan • Hadir dalam perkuliahan sekurang-kurangnya 80% dari tatap muka/ jadwal perkuliahan; • Masuk kelas on time, terlambat masuk kelas dengan kesadaran sendiri diharapkan tidak menggangu perkulaiahan di kelas • Mengumpulkan tugas harus tepat waktu • Perkuliahan kosong, dosen akan memberikan informasi sebelumnya kepada Ketua Kelas sebagai penanggung jawab kelas. SQL (Structured Query Language ) SQL adalah kependekan dari Structured Query Language yaitu bahasa yang dirancang khusus untuk komunikasi dengan database. SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa SQL merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. SEJARAH SQL ... Seorang peneliti dari IBM bernama Edgar Frank "Ted" Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. EF Codd membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language). IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R. Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer. RDBMS YANG MENGGUNAKAN SQL ... http://www-01.ibm.com/software/data/db2/ http://www.microsoft.com/sqlserver/en/ us/default.aspx http://www.oracle.com http://www.sybase.com RDBMS yang menggunakan SQL ... http://www.postgresql.org http://www.firebirdsql.org http://www.teradata.com http://www.mysql.com Kemudahan Mempelajari SQL … SQL bahasa non prosedur: Dengan kata lain, SQL tidak memerlukan anda untuk menetapkan metode akses data. Seperti kebanyakan bahasa modern, SQL sangat utama format bebas, • Struktur Perintah terdiri dari kata-kata bahasa Inggris baku seperti CREATE TABLE, INSERT, SELECT. • SQL dapat digunakan oleh para pemakai yang mencakup Database Administrators (DBA), personil manajemen pengembang aplikasi dan banyak tipe lain pemakai akhir. Apa itu DDL & DML ? Perintah SQL dibagi dalam 2 kategori, yaitu : 1. DDL - Data Definition Language merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database. 2. DML - Data Manipulation Language merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database. SQL (Writing SQL Commands) • • • Statement SQL terdiri dari reserved word & user-defined word Bersifat case insensitive Menggunakan bentuk notasi Backus Naur Form ( BNF ) : - huruf besar digunakan untuk menghadirkan kata- kata dipesan dan harus mengeja persisnya seperti yang ditunjukkan - huruf kecil digunakan untuk menghadirkan kata-kata yang didefinisikan pemakai (user-defined); - bar vertikal bar ( ) indikasi suatu pilihan (choice) antar alternatif; untuk latihan, a b c; - kurung kurawal (kait keriting) menandai adanya suatu elemen yang diperlukan; (required element) sebagai contoh, { a }; - kurung besar menandai adanya suatu elemen opsional (optional element); sebagai contoh, [ a ] ; - elipsis (penghilangan kata)(...) digunakan untuk menandai adanya pengulangan opsional (optional repletion) dari suatu item nol atau lebih waktu. DDL - Data Definition Language 1. CREATE • CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah: • CREATE DATABASE nama_basis_data membuat sebuah basis data baru. • CREATE TABLE nama_tabel CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Contoh Sintaks SQL Membuat Database • CREATE DATABASE nama_basis_data • Contoh • Sintaks • nama_basis_data adalah nama database yang akan dibuat : Buat database dengan nama latihan : CREATE DATABASE latihan; Contoh Sintaks DDL - SQL Membuat Tabel • CREATE TABLE [nama_tabel](nama_field1 tipe_data [constraints][,nama_field2 tipe_data,...]) atau • CREATE TABLE [nama_tabel](nama_field1 tipe_data [,nama_field2 tipe_data,...][CONSTRAINT nama_field constraints]) • nama_field adalah nama kolom (field) yang akan dibuat • tipe_data tergantung implementasi sistem manajemen basis data. Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya. • constraints adalah batasan-batasan yang diberikan untuk tiap kolom misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key). Contoh Sintaks DDL - SQL Membuat Tabel Contoh: • CREATE TABLE mahasiswa (npm CHAR(10) CONSTRAINT PRIMARY KEY,nama VARCHAR(20) NOT NULL,tanggal_lahir DATETIME); DDL - Data Definition Language 2. DROP DROP digunakan untuk menghapus basis data maupun objek-objek basis data • Contoh Sintaks • Contoh Sintaks : : : : Hapus database dengan nama latihan DROP DATABASE latihan; Hapus tabel dengan nama mahasiswa DROP TABLE mahasiswa; DDL - Data Definition Language 3. ALTER ALTER digunakan untuk merubah basis data maupun objek-objek basis data Contoh : 1). Tambahkan kolom alamat dengan panjang 1 char pada tabel mahasiswa ALTER TABLE mahasiswa ADD(alamat char(20)); 2). Ubah panjang kolom alamat menjadi 30 char ALTER TABLE mahasiswa MODIFY(alamat char(30)); 3). Hapus kolom alamat dari tabel mahasiswa ALTER TABLE mahasiswa DROP(alamat char(30)); DML - Data Manipulation Language Perintah umum yang dilakukan adalah : • • • • SELECT untuk menampilkan data INSERT untuk menambahkan data baru UPDATE untuk mengubah data yang sudah ada DELETE untuk menghapus data Contoh Sintaks DML - SQL • SELECT adalah perintah yang paling sering digunakan pada SQL, untuk menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama. Sintaks : SELECT [DISTINCT] nama_kolom FROM nama_tabel [ WHERE kondisi ] [ GROUP BY nama_kolom ] [ HAVING kondisi ] [ ORDER BY nama_kolom [ASC/DESC]] • • • • • • • • • FROM - Menspesifikasikan tabel yang digunakan. WHERE - Baris filter (kondisi yang harus dipenuhi). GROUP BY - Bentuk pengelompokkan baris dengan nilai kolom yang sama. HAVING - Menyeleksi subjek grup untuk beberapa kondisi. SELECT - Menspesifikasikan kolom mana yang akan ditampilkan. ORDER BY - Menspesifikasikan order pada output. Contoh Sintaks DML – SQL Perintah Select Tampilkan semua data mahasiswa • Sintaks : SELECT npm,nama,alamat FROM mahasiswa; atau • Sintaks : SELECT * FROM mahasiswa; Contoh Hasil : npm 199001001 199201002 199105003 nama ENDRA SUTANTO DEWI WINARSIH RUDI BASUNI alamat MADIUN SURABAYA SEMARANG Contoh Sintaks DML – SQL Perintah Insert Sintaks: INSERT INTO TableName [ (columnList) ] VALUES (dataValueList); • Contoh : Masukkan baris baru ke dalam tabel mahasiswa untuk seluruh kolom • Sintaks : INSERT INTO mahasiswa VALUES (‘1994011002’, ‘ALAN KUSUMA’, ‘PONOROGO’); atau INSERT INTO mahasiswa (npm, nama, alamat) VALUES (‘1994011002’,‘ALAN KUSUMA’, ‘PONOROG’); Contoh Sintaks DML – SQL Perintah Update Sintaks: UPDATE TableName SET columnName1 = dataValue1 [, columnName2 = dataValue2...] [WHERE searchCondition] Contoh 1 : Update seluruh alamat pada tabel mahasiswa menjadi MADIUN • Sintaks : UPDATE mahasiswa SET alamat = ‘madiun’ Contoh 2 : Ubah alamat (npm=‘199105003’) menjadi MADIUN • Sintaks : UPDATE mahasiswa SET alamat = ‘MADIUN’ WHERE npm = ‘199105003’; Contoh Sintaks DML – SQL Perintah Delete • Syntax : DELETE FROM TableName [WHERE searchCondition]; Contoh : Hapus data mahasiswa dengan npm 199105001 Sintaks : DELETE FROM mahasiswa WHERE npm= ‘199105001’; SELESAI .... MATERI SELANJUTNYA >>> SQL di RDBMS ( MYSQL )