Selasa, 13 September 2011

Tutorial SQL (Structured Query Language)

Nama/Nim : Gerry Rinovel Harimu / 10.41010.0219
Dosen        : Tan Amelia
Tugas         : Tutorial SQL


SQL (Structured Query Language)

SQL (Structured Query Language) adalah bahasa komputer yang ditujukan untuk menyimpan, memanipulasi, dan query data disimpan dalam database relasional. Inkarnasi pertama dari SQL muncul di tahun 1974, ketika sebuah kelompok di IBM mengembangkan prototipe pertama dari sebuah database relasional. Database relasional komersial pertama dirilis oleh Relational Software (kemudian menjadi Oracle).

Standar untuk SQL ada. Namun, SQL yang dapat digunakan pada masing-masing RDBMS utama saat ini adalah dalam rasa yang berbeda. Hal ini disebabkan dua alasan: 1) standar perintah SQL ini cukup rumit, dan tidak praktis untuk menerapkan seluruh standar, dan 2) masing-masing vendor database memerlukan cara untuk membedakan produk dari orang lain. Dalam tutorial ini, perbedaan-perbedaan tersebut dicatat mana yang sesuai.
Ini pemrograman SQL situs bantuan daftar umum digunakan pernyataan SQL, dan dibagi menjadi bagian berikut:

Select

Yang umum digunakan adalah untuk memilih data dari tabel terletak di database. Segera, kita melihat dua kata kunci: kita perlu informasi SELECT FROM tabel. SELECT "column_name" FROM "table_name"
Untuk mengilustrasikan contoh di atas, asumsikan bahwa kita memiliki tabel berikut:

Tabel Store_Information 
store_name
Penjualan
Tanggal
Los Angeles
$ 1500
Jan-05-1999
San Diego
$ 250
Jan-07-1999
Los Angeles
$ 300
Jan-08-1999
Boston
$ 700
Jan-08-1999

Kita akan menggunakan tabel ini sebagai contoh seluruh tutorial (tabel ini akan muncul di semua bagian). Untuk memilih semua toko di tabel ini, kita kunci dalam,
PILIH DARI store_name Store_Information
Hasil:
store_name
Los Angeles
San Diego
Los Angeles
Boston
Beberapa nama kolom dapat dipilih, serta beberapa nama tabel.

Distinct

Kata kunci SELECT memungkinkan kita untuk mengambil semua informasi dari kolom (atau kolom) di atas meja. Ini, tentu saja, berarti bahwa akan ada redudansi. Bagaimana jika kita hanya ingin memilih setiap elemen DISTINCT? Hal ini mudah untuk melakukannya di SQL. Semua yang perlu kita lakukan adalah menambahkan DISTINCT SELECT setelah. Sintaksnya adalah sebagai berikut:

SELECT DISTINCT "nama_kolom" 

FROM "table_name"
Misalnya, untuk memilih semua toko yang berbeda di Store_Information Tabel,

Tabel Store_Information 
store_name
Penjualan
Tanggal
Los Angeles
$ 1500
Jan-05-1999
San Diego
$ 250
Jan-07-1999
Los Angeles
$ 300
Jan-08-1999
Boston
$ 700
Jan-08-1999

kita kunci dalam, 
SELECT DISTINCT store_name DARI Store_Information
Hasil:
store_name
Los Angeles
San Diego
Boston

Where

Selanjutnya, kita mungkin ingin kondisional memilih data dari tabel. Sebagai contoh, kita mungkin ingin hanya mengambil toko dengan penjualan di atas $ 1.000. Untuk melakukan ini, kita menggunakan kata kunci WHERE. Sintaksnya adalah sebagai berikut: 
SELECT "column_name" 
FROM "table_name"
 
WHERE "kondisi"
Misalnya, untuk memilih semua toko dengan penjualan di atas $ 1.000 dalam Store_InformationTabel,
Tabel Store_Information 
store_name
Penjualan
Tanggal
Los Angeles
$ 1500
Jan-05-1999
San Diego
$ 250
Jan-07-1999
Los Angeles
$ 300
Jan-08-1999
Boston
$ 700
Jan-08-1999

kita kunci dalam, 
PILIH store_name 
DARI Store_Information
 
MANA Penjualan> 1000


Hasil:
store_name
Los Angeles

And Or
Pada bagian sebelumnya, kita telah melihat bahwa WHERE kata kunci dapat digunakan untuk bersyarat memilih data dari tabel. Kondisi ini bisa menjadi kondisi yang sederhana (seperti yang disajikan dalam bagian sebelumnya), atau bisa menjadi kondisi majemuk. Kondisi majemuk terdiri dari beberapa kondisi sederhana terhubung dengan AND atau OR. Tidak ada batasan untuk jumlah kondisi sederhana yang dapat hadir dalam sebuah pernyataan SQL tunggal.
Sintaks untuk kondisi senyawa adalah sebagai berikut:

SELECT "column_name" 

FROM "table_name" 
WHERE "kondisi sederhana" 
{[AND | OR] "kondisi sederhana"} +
Para {} + berarti bahwa ekspresi dalam braket akan terjadi satu kali atau lebih. Perhatikan bahwaAND dan OR dapat digunakan secara bergantian. Selain itu, kita dapat menggunakan tanda kurung () untuk menunjukkan urutan kondisi.
Sebagai contoh, kita mungkin ingin memilih semua toko dengan penjualan lebih dari $ 1,000 atau semua toko dengan penjualan kurang dari $ 500 tapi lebih besar dari $ 275 di Store_InformationTabel,
Tabel Store_Information 
store_name
Penjualan
Tanggal
Los Angeles
$ 1500
Jan-05-1999
San Diego
$ 250
Jan-07-1999
San Francisco
$ 300
Jan-08-1999
Boston
$ 700
Jan-08-1999

kita kunci dalam, 

PILIH store_name 

DARI Store_Information 
MANA Penjualan> 1000 
ATAU (Penjualan <500 DAN Penjualan> 275) 

Hasil:
store_name
Los Angeles
San Francisco
  
Function
Karena kita sudah mulai berurusan dengan angka, pertanyaan alam berikutnya untuk bertanya adalah apakah mungkin untuk melakukan matematika pada angka-angka, seperti menyimpulkan mereka atau mengambil rata-rata mereka. Jawabannya adalah ya! SQL memiliki beberapa fungsi arithematic, dan mereka adalah:
 AVG : Rata-rata dari kolom.
 COUNT : Jumlah catatan.
 MAX : Maksimum kolom.
 MIN : Minimum kolom.
 SUM : Jumlah kolom.
Sintaks untuk menggunakan fungsi ini,

SELECT "tipe fungsi" ("nama_kolom") 

FROM "table_name" 

Contoh tentang bagaimana fungsi-fungsi ini digunakan disajikan secara individual dalam beberapa halaman berikutnya.
Selain menggunakan fungsi, juga memungkinkan untuk menggunakan SQL untuk melakukan tugas-tugas sederhana seperti penambahan (+) dan pengurangan (-). Untuk tipe data karakter, ada juga beberapa fungsi string yang tersedia, seperti penggabungan , langsing , dan substringfungsi. Berbagai vendor telah RDBMS fungsi string implementasi yang berbeda, dan yang terbaik adalah berkonsultasi dengan referensi untuk RDBMS Anda untuk melihat bagaimana fungsi-fungsi ini digunakan.

Group By
Sekarang kita kembali ke fungsi agregat. Ingat kita menggunakan kata kunci SUM untuk menghitung total penjualan untuk semua toko? Bagaimana jika kita ingin menghitung total penjualan untuk toko masing-masing? Nah, kita perlu melakukan dua hal: Pertama, kita perlu memastikan kita pilih nama toko serta total penjualan. Kedua, kita perlu memastikan bahwa semua angka penjualan dikelompokkan oleh toko. Sintaks SQL yang sesuai adalah,

SELECT "column_name1", SUM ("column_name2") 

FROM "table_name" 
GROUP BY "column_name1"
Mari kita menggambarkan dengan menggunakan tabel berikut,
Tabel Store_Information 
store_name
Penjualan
Tanggal
Los Angeles
$ 1500
Jan-05-1999
San Diego
$ 250
Jan-07-1999
Los Angeles
$ 300
Jan-08-1999
Boston
$ 700
Jan-08-1999
Kami ingin mencari total penjualan untuk setiap toko. Untuk melakukannya, kita akan kunci dalam,

SELECT store_name, SUM (Penjualan) 

DARI Store_Information 
GROUP BY store_name
Hasil:
store_name
SUM (Penjualan)
Los Angeles
$ 1800
San Diego
$ 250
Boston>
$ 700
GROUP BY digunakan kata kunci adalah ketika kita memilih beberapa kolom dari tabel (atau tabel) dan setidaknya satu operator aritmatika muncul di pernyataan SELECT. Ketika itu terjadi, kita perlu GROUP BY semua kolom yang dipilih lainnya, yaitu, semua kolom kecuali satu (s) dioperasikan oleh operator aritmatika.

Create Table
Tabel struktur dasar dimana data disimpan dalam database. Mengingat bahwa dalam banyak kasus, tidak ada cara untuk vendor database untuk tahu di depan waktu data apa yang Anda perlu penyimpanan, kemungkinan bahwa Anda akan perlu membuat tabel dalam database sendiri.Banyak alat database memungkinkan Anda untuk membuat tabel tanpa menulis SQL, tetapi mengingat bahwa tabel adalah wadah dari semua data, penting untuk memasukkan sintaksCREATE TABLE dalam tutorial ini.
Sebelum kita menyelam ke dalam sintaks SQL untuk CREATE TABLE, itu adalah ide yang baik untuk memahami apa yang masuk ke meja. Tabel dibagi ke dalam baris dan kolom. Setiap baris mewakili satu bagian dari data, dan setiap kolom dapat dianggap sebagai mewakili komponen yang sepotong data. Jadi, misalnya, jika kita memiliki tabel untuk merekam informasi pelanggan, maka kolom dapat mencakup informasi seperti Nama Pertama, Nama Belakang, Alamat, Kota, Negara, Tanggal Lahir, dan sebagainya. Akibatnya, ketika kita tentukan tabel, kita termasuk header kolom dan tipe data untuk kolom tertentu yang.
Jadi apa tipe data? Biasanya, data yang datang dalam berbagai bentuk. Ini bisa menjadi (seperti 1) bilangan bulat, bilangan real (seperti 0,55), string (seperti 'sql'), ekspresi tanggal / waktu (seperti '2000-JAN-25 03:22:22 ' ), atau bahkan dalam format biner. Ketika kita tentukan tabel, kita perlu untuk menentukan jenis data yang terkait dengan setiap kolom (yaitu, kita akan menetapkan bahwa 'First Name' adalah tipe char (50) - yang berarti itu adalah sebuah string dengan 50 karakter). Satu hal yang perlu diperhatikan adalah bahwa database relasional yang berbeda memungkinkan untuk jenis data yang berbeda, sehingga adalah bijaksana untuk berkonsultasi dengan referensi database-spesifik pertama.
Sintaks SQL untuk CREATE TABLE

CREATE TABLE "table_name" 

("Kolom 1" "data_type_for_column_1", 
"Kolom 2" "data_type_for_column_2", 
... )

Jadi, jika kita ingin membuat tabel pelanggan ditentukan seperti di atas, kita akan ketik

MENCIPTAKAN TABEL pelanggan 

(First_Name char (50), 
Last_name char (50), 
Alamat char (50), 
Kota char (50), 
Negara char (25), 
Birth_Date tanggal)

Kadang-kadang, kita ingin memberikan nilai default untuk setiap kolom. Nilai default digunakan bila Anda tidak menentukan nilai kolom ketika memasukkan data ke dalam tabel. Untuk menentukan nilai default, tambahkan "Default [value]" setelah deklarasi tipe data. Dalam contoh di atas, jika kita ingin default kolom "Alamat" untuk "Unknown" City dan ke "Mumbai", kita akan ketik

MENCIPTAKAN TABEL pelanggan 

(First_Name char (50), 
Last_name char (50), 
Alamat char (50) default 'tidak diketahui', 
Kota char (50) default 'Mumbai', 
Negara char (25), 
Birth_Date tanggal)

Constraint
Anda dapat menempatkan kendala untuk membatasi jenis data yang dapat masuk ke tabel.Kendala tersebut dapat ditentukan ketika tabel ketika tabel pertama kali diciptakan melaluiCREATE TABLE pernyataan, atau setelah tabel sudah dibuat melalui ALTER TABLE pernyataan.
Jenis-jenis kendala adalah sebagai berikut:

NOT Null
Secara default, kolom dapat terus NULL. Jika Anda tidak ingin mengizinkan nilai NULL dalam kolom, Anda akan ingin menempatkan kendala pada kolom ini menentukan bahwa NULL sekarang bukan merupakan nilai diijinkan.
Misalnya, dalam pernyataan berikut,

CREATE TABLE Customer 

(SID integer NOT NULL, 
Last_Name varchar (30) NOT NULL, 
First_Name varchar(30)) 

Kolom "SID" dan "last_name" tidak dapat menyertakan NULL, sementara "First_Name" dapat mencakup NULL.
Sebuah usaha untuk menjalankan pernyataan SQL berikut,
INSERT INTO Customer (Last_Name, First_Name) values ('Wong','Ken');
akan menghasilkan error karena ini akan mengarah ke kolom NULL "SID" ini, yang melanggar kendala NOT NULL pada kolom itu.

Check
Kendala CHECK memastikan bahwa semua nilai dalam kolom memenuhi kondisi tertentu.Setelah didefinisikan, database hanya akan menyisipkan baris baru atau update baris yang sudah ada jika nilai baru memenuhi kendala CHECK. Kendala CHECK digunakan untuk memastikan kualitas data.
Sebagai contoh, berikut ini pernyataan CREATE TABLE,

CREATE TABLE Customer 

(SID integer CHECK (SID > 0), 
Last_Name varchar (30), 
First_Name varchar(30));

Kolom "SID" memiliki kendala - nilainya hanya harus mencakup bilangan bulat lebih besar dari 0.Jadi, mencoba untuk mengeksekusi pernyataan berikut,
INSERT INTO nilai Pelanggan ('-3', 'Gonzales', 'Lynn');
akan menghasilkan error karena nilai untuk SID harus lebih besar dari 0.
Harap dicatat bahwa kendala CHECK tidak mendapatkan ditegakkan oleh MySQL saat ini.




INSERT INTO NILAISintaks untuk memasukkan data ke dalam baris satu tabel pada suatu waktu adalah sebagai berikut:

INSERT INTO "nama_tabel" ("column1", "column2", ...) 

VALUES ("nilai1", "nilai2", ...)

Dengan asumsi bahwa kita memiliki sebuah tabel yang memiliki struktur sebagai berikut,
Tabel Store_Information 

Nama Kolom

Tipe Data

store_name

char (50)

Penjualan

mengapung

Tanggal

Datetime
dan sekarang kita ingin memasukkan satu baris tambahan ke tabel yang mewakili data penjualan untuk Los Angeles pada tanggal 10 Januari 1999. Pada hari itu, toko ini memiliki $ 900 dalam penjualan. Kami maka akan menggunakan script SQL berikut:

INSERT INTO Store_Information (store_name, Penjualan, Tanggal) 

VALUES ('Los Angeles, 900,' Jan-10-1999 ')

INSERT INTO SELECT
Tipe kedua INSERT INTO memungkinkan kita untuk menyisipkan beberapa baris ke dalam tabel.Berbeda dengan contoh sebelumnya, di mana kita memasukkan satu baris dengan menetapkan nilai untuk semua kolom, kita sekarang menggunakan pernyataan SELECT untuk menentukan data yang ingin kita masukkan ke dalam tabel. Jika Anda berpikir apakah ini berarti bahwa Anda menggunakan informasi dari meja lain, Anda benar. Sintaksnya adalah sebagai berikut:

INSERT INTO "Table1" ("column1", "column2", ...) 

SELECT "column3", "column4", ... 
FROM "table2"

Catatan bahwa ini adalah bentuk paling sederhana. Seluruh pernyataan dengan mudah dapat berisi WHERE, GROUP BY, HAVING klausa dan, serta meja bergabung dan alias.
Jadi misalnya, jika kita ingin memiliki sebuah meja, Store_Information, yang mengumpulkan informasi penjualan untuk tahun 1998, dan Anda sudah tahu bahwa sumber data berada dalamtabel Sales_Information, kita akan ketik:

INSERT INTO Store_Information (store_name, Penjualan, Tanggal) 

SELECT store_name, Penjualan, Tanggal 
DARI Sales_Information 
MANA Tahun (Tanggal) = 1998

Di sini saya telah menggunakan sintaks SQL Server untuk mengekstrak informasi tahun dari tanggal. Database relasional lainnya akan memiliki sintaks yang berbeda. Misalnya, di Oracle, Anda akan menggunakan to_char (tanggal, 'yyyy') = 1998.

DELETE FROM
Kadang-kadang kita mungkin ingin menggunakan query untuk menghapus catatan dari meja.Untuk melakukannya, kita dapat menggunakan perintah DELETE FROM. Sintaks untuk ini adalah

DELETE FROM "table_name" 

WHERE {kondisi}
Hal ini mudah untuk menggunakan contoh. Katakanlah saat ini kami memiliki tabel sebagai berikut:
Tabel Store_Information 
store_name
Penjualan
Tanggal
Los Angeles
$ 1500
Jan-05-1999
San Diego
$ 250
Jan-07-1999
Los Angeles
$ 300
Jan-08-1999
Boston
$ 700
Jan-08-1999
dan kita memutuskan tidak akan menyimpan informasi tentang Los Angeles dalam tabel ini.Untuk mencapai hal ini, kita ketikkan SQL berikut:

DELETE FROM Store_Information 

MANA store_name = "Los Angeles"
Sekarang isi tabel akan terlihat seperti,
Tabel Store_Information 
store_name
Penjualan
Tanggal
San Diego
$ 250
Jan-07-1999
Boston
$ 700
Jan-08-1999

Tidak ada komentar:

Posting Komentar