SQL Server :: Transact– SQL #1 Laboratorium Perancangan/Pemrograman Basis Data Komposisi oleh Budi Prayitno Februari 2012 Batam.

Slides:



Advertisements
Presentasi serupa
Menggambarkan Data: Tabel Frekuensi, Distribusi Frekuensi, dan Presentasi Grafis Chapter 2.
Advertisements

Array.
+ Pemrograman Javascript Teknik Informatika Universitas Bunda Mulia Jakarta Chandra Hermawan H., M.Kom., MM.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation. All.
Kontrol Data Set.
Algoritma & Pemrograman #10
Administrator - Pengaturan User Hari I Sesi 1.  Membuat Account User a. Add a New User b. Upload User  Mengubah Profile User  Menghapus Account User.
MATA KULIAH : “LOGIKA DAN ALGORITMA”
KUMPULAN PERINTAH SQL PENDY.
Dasar-dasar SQL soesanto.
ORACLE Trigger Hasan Dwi Cahyono.
SQL (Structured Query Language)
Database Recovery Department of Computers Science Faculity Mathematics and Natural Science University of Pakuan Bogor 2011.
1 Pertemuan > Desain fisik basis data Matakuliah: >/ > Tahun: > Versi: >
Process to Process Delivery
Pemrograman Visual. Pernyataan IF…THEN…ELSE Pernyataan ini hanya memeriksa apakah suatu blok kode program dapat dieksekusi atau tidak. Jika kondisi pernyataan.
Quick Start Secure M-401.
Memanipulasi Data1 III - Memanipulasi Data Memasukkan Data dengan INSERT: –Memasukkan nilai NULL –Menambahkan sejumlah baris data Mengubah Data dengan.
I - Mengenal Operasi Dasar SQL
PERULANGANPERULANGAN. 2 Flow of Control Flow of Control refers to the order that the computer processes the statements in a program. –Sequentially; baris.
Database Create-Retrieve-Update-Delete (CRUD)
PENGENALAN PL/SQL.
PROSES PADA WINDOWS Pratikum SO. Introduksi Proses 1.Program yang sedang dalam keadaan dieksekusi. 2.Unit kerja terkecil yang secara individu memiliki.
Internal dan Eksternal Sorting
Restricting and Sorting Data
1 Penulisan Statements SELECT SQL Dasar. 1-2 Tujuan Setelah mengikuti sesi ini, diharapkan mampu : Mendaftar kemampuan statement SELECT SQL Mengeksekusi.
Oracle Developer/2000. Developer/2000 Products FormsReportsGraphics.
JAVA CLASS Bahasa Pemrogramam BAHASA PEMROGRAMAN PERTEMUAN #9.
SQL ADVANCEADVANCE. SQL Data Type MySQL Text Type : 9/7/2014By : Suwondo, S.Kom2.
Implementing an REA Model in a Relational Database
Basisdata Pertanian. After completing this lesson, you should be able to do the following Identify the available group functions Describe the use of group.
Switch. Perluasan dari bridge Arsitektur switch: – Store and forward.
Function, Procedure, Unit
Slide 1 QUIS Langkah pertama caranya Buat di slide pertama judul Slide kedua soal Slide ketiga waktu habis Slide keempat jawaban yang benar Slide kelima.
PEMROGRAMAN BASIS DATA
LOGO Manajemen Data Berdasarkan Komputer dengan Sistem Database.
TRAVERSING BINARY TREE
PEMROGRAMAN PPBD (UAS) SEBELUM MELANGKAH KE TAHAP SELANJUTNYA BERDOA DULU BIAR LANCAR DAN GA EROR
Aplikasi Manipulasi Data
Oleh Udkhiati Mawaddah( ) Khoirun Nisa’( ) Hamim A’izzaty Khoirina( ) Security dan Authorization.
By. Rita Wiryasaputra Daftar Pustaka Panduan Membuat Aplikasi Database dengan PHP, Syafii, Yogyakarta, Andi Offset, 2005 Membangun Website Dinamis dan.
DML Lanjutan Pertemuan Minggu Ke-10.
Structured Query Language (SQL)
Paging datagridview VB.Net
Via Octaria Malau Transfer (Internal Transfers) Transfer (Transfers Internal) Select the account from which funds are to be transferred FROM and then select.
Web Teknologi I (MKB511C) MINGGU 3 Web Teknologi I (MKB511C) Minggu 3 Page 1 Pokok Bahasan: MySQL Tujuan Instruksional Khusus: Agar mahasiswa dapat mengetahui.
SISTEM BASISDATA Lasmedi Afuan, ST.,M.Cs. SQL (S RUCTURE Q UERY L ANGUAGE ) Query/SQL : Bahasa standar yang digunakan untuk mengakses basisdata. Standar.
Web Teknologi I (MKB511C) Minggu 12 Page 1 MINGGU 12 Web Teknologi I (MKB511C) Pokok Bahasan: – Text processing perl-compatible regular expression/PCRE.
Person 19 || Marty Rori 1. Apa yang Buruk Tentang Menggunakan? Vairables global? 2 tidak aman!  Jika dua atau lebih programmer bekerja sama dalam program,
Manajemen Basis Data menggunakan SQL Server
PRAKTIKUM BASIS DATA (4) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
Pertemuan 4 Database dengan MySQL.
5. MENAMPILKAN DATA DARI BEBERAPA TABEL
JOINED TABLE Untuk menampilkan data dari dua atau lebih tabel, maka tabel – tabel tersebut harus dihubungkan terlebih dahulu  JOIN.
Microsoft SQL Server DDL dan DML dasar
Data Definition Language dan Data Manipulation Language

MANAJEMEN BASIS DATA Pertemuan 6 SQL - SELECT.
P E R T E M U A N 12 SISTEM BASIS DATA.
SQL-Aggregate dengan Fungsi GROUP, HAVING dan subQuery
JOIN Kuliah Tambahan.
Rekayasa Perangkat Lunak Materi 3 (Database)
SQL.
JOIN.
Pemrograman Visual Akuntansi III
Structured Query Language
Query dalam sql server Pertemuan 6.
Aplikasi Database Dosen : Sarwo, Skom,.Mkom Url :
BAHASA BASIS DATA Data Manipulation Languange
BAHASA BASIS DATA Retreiving Data dan Manipulation Function
Transcript presentasi:

SQL Server :: Transact– SQL #1 Laboratorium Perancangan/Pemrograman Basis Data Komposisi oleh Budi Prayitno Februari 2012 Batam

Daftar SQL Statement SELECT Data Manipulation Language [DML] INSERT UPDATE DELETE CREATE Data Definition Language [DDL] ALTER DROP TRUNCATE GRANT Data Control Language [DCL] REVOKE COMMIT Transaction Control ROLLBACK BEGIN TRANSACTION END TRANSACTION

SELECT Statement Dasar SELECT * | {[DISTINCT] column | expression [alias],...} FROM table;  SELECT berisi column yang ditampilkan  FROM berisi table dari mana column terkait dipilih

Memilih Semua Column SELECT * FROM departments; DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_IDLOCATION_ID 10Administration Marketing Purchasing Human Resources Shipping IT

Memilih Column Tertentu SELECT department_id, location_id FROM departments; DEPARTMENT_IDLOCATION_ID

Kaidah Penulisan SQL  Tidak case–sensitive kecuali diapit tanda petik tunggal “’”atau petik ganda “””  Dapat dituliskan dalam satu atau lebih baris  Kata kunci tidak dapat disingkat atau dipisah  Clause biasanya ditulis dalam baris terpisah  Indentasi digunakan untuk mempermudah pembacaan  SQL statement dapat diakhiri dengan “;”

Ekspresi Aritmatika  +Penambahan  –Pengurangan  *Perkalian  /Pembagian Presedensi: [* /] [+ –]

Penggunaan Operator Aritmatika SELECT first_name, last_name, salary, salary FROM employees; FIRST_NAMELAST_NAMESALARYSALARY+300 DonaldOConnell DouglasGrant JenniferWhalen MichaelHartstein PatFay SusanMavris

Pendefinisian Column Alias  Mengubah tampilan header  Dapat digunakan terhadap ekspresi/kalkulasi  Digunakan menggunakan kata kunci “AS” atau langsung mengikuti nama column  Memerlukan tanda petik ganda “”” jika alias mengandung spasi, karakter khusus atau ketika dimaksudkan sebagai case– sensitive

Penggunaan Column Alias SELECT first_name nama, comission_pct AS komisi FROM employees; SELECT first_name AS “Nama”, salary * 12 “Gaji Tahunan” FROM employees;

Operator Konkatenasi  Menghubungkan column atau string dengan column atau string lain  Direpresentasikan dengan “+”  Menghasilkan string SELECT first_name + ‘adalah seorang’ + job_id FROM employees;

Duplikasi Row SELECT department_id FROM employees; SELECT DISTINCT department_id FROM employees; DEPARTMENT_ID DEPARTMENT_ID

WHERE Clause  Membatasi pemilihan row pada SELECT menggunakan WHERE clause SELECT * | {[DISTINCT]} column | expression [alias],...} FROM table [WHERE condition(s)];  WHERE clause diposisikan tepat setelah FROM clause

Penggunaan WHERE SELECT employee_id, first_name, job_id, department_id FROM employees WHERE department_id = 90;

Operator Perbandingan =Sama dengan >Lebih besar >=Lebih besar atau sama dengan !>Tidak lebih besar <Lebih kecil <=Lebih kecil atau sama dengan !<Tidak lebih kecil !=<>Tidak sama dengan BETWEEN … AND …Berada di antara dua nilai INSama dengan nilai dalam daftar LIKECocok dengan pola tertentu IS NULLMerupakan nilai NULL

Penggunaan Operator Perbandingan SELECT first_name, salary FROM empoyees WHERE salary = 2500; memberikan hasil yang sama dengan: SELECT first_name, salary FROM empoyees WHERE salary BETWEEN 2500 AND 3500;

Operator IN SELECT employee_id, first_name || last_name emp_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201);

Operator LIKE SELECT first_name, last_name FROM employees WHERE first_name LIKE ‘S%’ AND last_name NOT LIKE ‘_a%’;

Operator IS NULL SELECT employee_id, manager_id FROM employees WHERE manager_id IS NULL;

Operator Logika ANDMengembalikan TRUE jika kedua operand bernilai TRUE ORMengembalikan TRUE jika salah satu atau kedua operand bernilai TRUE NOTNegasi, mengembalikan TRUE jika operand bernilai FALSE, dan sebaliknya Digunakan bersama operator lain tidak berdiri sendiri

Penggunaan Operator Logika SELECT employee_id, FROM employees WHERE salary >= AND (job_id LIKE ‘%MGR%’ OR job_id LIKE ‘%MAN%’) AND departement_id NOT IN (50, 80);

ORDER BY Clause  Berguna untuk mengurutkan row yang dipilih berdasarkan column yang ditentukan pada ORDER BY clause  ASC: membesar, merupakan nilai default DESC: mengecil  Diposisikan paling akhir pada SELECT statement

ORDER BY Clause SELECT * | {[DISTINCT] column | expression [alias],...} FROM table; [WHERE condition(s)] [ORDER BY {column, expression, alias} [ASC | DESC]];

Penggunaan ORDER BY Clause SELECT first_name, job_id, department_id, hire_date, salary * 12 annual_salary FROM employees WHERE 1 = 1 ORDER BY hire_date DESC, annual_salary;

Character Function LOWER Case–Manipulation Function UPPER SUBSTRING Character–Manipulation Function LEN PATINDEX LTRIM | RTRIM STUFF

Character Function LOWER (‘SQL Query’)sql query UPPER (‘SQL Query’)SQL QUERY SUBSTRING (‘HelloWorld’, 1, 5)Hello LEN (‘HelloWorld’)10 PATINDEX (‘%loWo%’, ‘HelloWorld’)4 STUFF (‘abcdef’, 2, 3, ‘ijklm’)aijklmnef LTRIM ( ‘ HelloWorld’)HelloWorld

Penggunaan Character Function SELECT employee_id, first_name + last_name AS name, job_id, LEN (last_name), PATINDEX (‘%a%’, last_name) FROM employees WHERE SUBSTRING (job_id, 4, 3) = ‘REP’;

Number Function ROUND ( , 2)123.45

Date Function DATEDIFFSelisih di antara 2 tanggal DATEADDMenambahkan hari kalender ke tanggal CONVERTFormat tanggal

Nested Function  Fungsi dapat bersarang hingga kedalaman tidak terhingga  Fungsi bersarang dievaluasi mulai hingga yang terdalam hingga terluar F3 ({F2 ({F1 ({arg1,...}),...}),...}) LOWER (CONCAT (SUBSTR (first_name, 1, 1), last_name))

Group Function  AVG  COUNT  MAX  MIN  STDEV  SUM  VAR

Group Function EMPLOYEE_IDSALARY MAX (SALARY) 24000

Penggunaan Group Function SELECT AVG (salary), MAX (salary), MIN (salary), SUM (salary) FROM employees WHERE job_id LIKE ‘%REP%’  MIN dan MAX dapat digunakan untuk tipe data numeric, string dan date

COUNT Function SELECT COUNT (*) FROM employees WHERE department_id = 50; SELECT COUNT (comission_pct) FROM employees WHERE department_id = 80; SELECT COUNT (DISTINCT department_id) FROM employees;

NULL pada Group Function  Group function mengabaikan nilai NULL pada column SELECT AVG (comission_pct) FROM employees;  Untuk menyertakan column bernilai NULL, gunakan NVL SELECT AVG (NVL (comission_pct, 0)) FROM employees;

GROUP BY Clause  Mengakomodasi keberadaan group function, namun tidak mandatory SELECT [column,] group_function (column),... FROM table [WHERE condition] [GROUP BY column] [ORDER BY column];

Penggunaan GROUP BY Clause SELECT department_id, AVG (salary)... column pada GROUP BY clause tidak mandatory pada SELECT clause SELECT AVG (salary) FROM employees GROUP BY department_id ORDER BY department_id;

Penggunaan GROUP BY Clause  Menggunakan lebih dari satu column pada GROUP BY clause: SELECT department_id dept_id, job_id, SUM (salary) FROM employees GROUP BY department_id, job_id;

Penggunaan GROUP BY Clause  Column yang bukan group function pada SELECT clause mandatory didefinisikan pada GROUP BY clause: SELECT department_id, COUNT (employee_id) FROM employees; ERROR at line 1: ORA-00937: not a single–group group function

Penggunaan GROUP BY Clause  Group function tidak dapat digunakan pada WHERE clause: SELECT department_id, AVG (salary) FROM employees WHERE AVG (salary) > 8000 GROUP BY department_id; ERROR at line 3: ORA-00934: group function is not allowed here

HAVING Clause SELECT [column,] group_function (column),... FROM table [WHERE condition] [GROUP BY column] [HAVING group_condition] [ORDER BY column];

HAVING Clause SELECT department_id, MAX (salary) FROM employees GROUP BY department_id HAVING MAX (salary) > 10000; SELECT job_id, SUM (salary) payroll FROM employees WHERE job_id NOT LIKE ‘%REP%’ GROUP BY job_id HAVING SUM (salary) > ORDER BY job_id;

Nested Group Function SELECT MAX (AVG (salary)) FROM employees GROUP BY department_id;

Pengambilan Data dari Beberapa Table EMPLOYEE_IDFIRST_NAMEDEPARTMENT_ID 198Donald50 199Douglas Michael20 202Pat20 203Susan40 DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_ID 10Administration200 20Marketing Human Resources203 50Shipping121 60IT103 EMPLOYEE_IDFIRST_NAMEDEPARTMENT_IDDEPARTMENT_NAME 198Donald50Shipping 199Douglas50Shipping Michael20Marketing 202Pat20Marketing 203Susan40Human Resources

Jenis JOIN  INNER JOIN sama dengan JOIN  LEFT OUTER JOIN sama dengan LEFT JOIN  RIGHT OUTER JOIN sama dengan RIGHT JOIN  FULL OUTER JOIN sama dengan FULL JOIN  CROSS JOIN

JOIN Clause SELECT table1.column, table2.column FROM table1 [JOIN table2 USING (column_name)] | [JOIN table2 ON (table1.column_name = table2.column_name)] | [LEFT | RIGHT | FULL OUTER JOIN table2 ON (table1.column_name = table2.column_name)] | [CROSS JOIN table2];

NATURAL JOIN  Didasarkan pada semua column pada kedua table yang memiliki nama yang sama  Menampilkan row dari kedua table yang memiliki nilai yang sama pada column yang didefinisikan  Jika terdapat column dengan nama yang sama namun tipe data yang berbeda, maka terjadi error

NATURAL JOIN SELECT department_id, department_name, location_id, city FROM departments NATURAL JOIN locations;

USING Clause  Digunakan untuk memodifikasi NATURAL JOIN untuk mendefinisikan column yang digunakan untuk equijoin seandainya terdapat column dengan nama yang sama namun tidak digunakan

USING dan ON Clause SELECT d.department_id, d.department_name, d.location_id, l.city FROM departments d JOIN locations l USING (location_id); memberikan hasil yang sama dengan: ON (d.location_id = l.location_id);

JOIN Lebih Lanjut SELECT e.first_name + e.last_name, d.department_name FROM employees e JOIN departments d ON (e.department_id = d.department_id)... JOIN locations l ON (d.location_id = l.location_id)... AND e.manager_id = 149;

Non-Equijoin SELECT e.first_name + e.last_name AS name, e.salary, j.grade_level FROM employees e JOIN job_grades g ON e.salary BETWEEN j.lowest_sal AND j.highest_sal;

OUTER JOIN  JOIN yang mengembalikan tidak hanya baris yang memenuhi, namun juga yang tidak memenuhi, persyaratan JOIN  Diterapkan pada sisi kiri [LEFT], sisi kanan [RIGHT] atau kedua sisi [FULL] persyaratan JOIN

Penggunaan OUTER JOIN SELECT e.first_name, d.department_name FROM employees e LEFT OUTER JOIN departments d... RIGHT OUTER JOIN departments d... FULL OUTER JOIN departments d ON e.department_id = d.department_id;

LEFT OUTER JOIN EMPLOYEE_IDFIRST_NAMEDEPARTMENT_ID 198Donald50 199Douglas50 200Andreas70 201Michael20 202Pat20 203Susan40 DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_ID 10Administration200 20Marketing201 30Finance202 40Human Resources203 50Shipping121 60IT103 EMPLOYEE_IDFIRST_NAMEDEPARTMENT_IDDEPARTMENT_NAME 198Donald50Shipping 199Douglas50Shipping 200Andreas70 201Michael20Marketing 202Pat20Marketing 203Susan40Human Resources

EMPLOYEE_IDFIRST_NAMEDEPARTMENT_IDDEPARTMENT_NAME 10Administration 198Donald50Shipping 199Douglas50Shipping 201Michael20Marketing 202Pat20Marketing 30Finance 203Susan40Human Resources 60IT RIGHT OUTER JOIN EMPLOYEE_IDFIRST_NAMEDEPARTMENT_ID 198Donald50 199Douglas50 200Andreas70 201Michael20 202Pat20 203Susan40 DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_ID 10Administration200 20Marketing201 30Finance202 40Human Resources203 50Shipping121 60IT103

FULL OUTER JOIN EMPLOYEE_IDFIRST_NAMEDEPARTMENT_ID 198Donald50 199Douglas50 200Andreas70 201Michael20 202Pat20 203Susan40 DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_ID 10Administration200 20Marketing201 30Finance202 40Human Resources203 50Shipping121 60IT103 EMPLOYEE_IDFIRST_NAMEDEPARTMENT_IDDEPARTMENT_NAME 10Administration 198Donald50Shipping 199Douglas50Shipping 200Andreas 201Michael20Marketing 202Pat20Marketing 30Finance 203Susan40Human Resources 60IT

CROSS JOIN SELECT e.first_name, d.department_name FROM employees e CROSS JOIN departments d memberikan hasil yang sama dengan: SELECT e.first_name, d.department_name FROM employees e, departments d * perhatikan statement kedua tanpa WHERE clause

CROSS JOIN EMPLOYEE_IDFIRST_NAMEDEPARTMENT_ID 198Donald50 199Douglas50 200Andreas70 DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_ID 10Administration200 20Marketing201 30Finance202 EMPLOYEE_IDFIRST_NAMEDEPARTMENT_IDDEPARTMENT_NAME 198Donald10Administration 198Donald20Marketing 198Donald30Finance 199Douglas10Administration 199Douglas20Marketing 199Douglas30Finance … 200Andreas30Finance

INSERT Statement Dasar INSERT INTO table (column1, column2,..., columnN) VALUES (value1, value2, …, valuesN);  Jika column tidak disebutkan, maka semua column diisi terurut dari pertama hingga terakhir  VALUES berisi nilai yang dimasukkan ke column

INSERT … SELECT … INSERT INTO tableX (column1, column2,..., columnN) SELECT columnA, columnB, …, columnM FROM tableY WHERE condition(s);  Table sumber tableY dapat berbeda dari table tujuan tableX  Faktor penentu keberhasilan eksekusi hanya kesamaan tipe data dan ukuran data

Penggunaan INSERT INSERT INTO employees (employee_id, last_name, salary) VALUES (999, Duke, 15000); INSERT INTO employees (employee_id, last_name, salary) SELECT 999, Duke, salary FROM employees WHERE employee_id = 198;

UPDATE Statement Dasar UPDATE table SET column1 = value1[, …, columnN = valueM] WHERE condition(s);  Jika WHERE clause tidak dispesifikasikan, maka column yang disebutkan pada semua row dalam table akan diubah nilainya  SET clause dapat mengubah satu atau lebih column dalam satu UPDATE statement  Satu UPDATE statement dapat mengubah hanya satu row data

Penggunaan UPDATE UPDATE employees SET first_name = ‘Duke’, last_name = ‘Hazard’, = WHERE employee_id = 198;

DELETE Statement Dasar DELETE table WHERE condition(s);  Jika WHERE clause tidak dispesifikasikan, maka semua row dalam table akan dihapus  DELETE statement digunakan untuk menghapus satu atau lebih row dalam satu table saja

Penggunaan DELETE DELETE employees WHERE employee_id = 198;