Sunday, September 16, 2012

SQL Advanced

SQL Advanced

Dalam kesempatan ini saya ingin melanjutkan untuk penulisan saya yang telah saya berikan terdahulu pada SQL Tutorial [Basic] dalam SQL Advanced terbagi dalam perintah perintah lebih lanjut seperti penggabungan perintah, pembentukan tabel, pembentukan index, dll. untuk memasuki tahap ini ada baiknya para pembaca memahami terlebih dahulu pada perintah perintah dasar yang telah saya berikan dalam kesempatan beberapa minggu yang lalu. Sekarang mari kita lanjutkan pada perintah perintah sql pada tingkatan yang lebih lanjut  ;

  • SQL TOP 
digunakan untuk menentukan jumlah record untuk kembali.
Klausa TOP dapat sangat berguna di tabel besar dengan ribuan catatan. Mengembalikan sejumlah besar catatan dapat berdampak pada kinerja.

Catatan : Tidak semua sistem database mendukung klausa TOP.

SQL Server Sintaks

SELECT TOP number|percent column_name(s)
FROM table_name


SQL SELECT TOP Setara di MySQL dan Oracle

MySQL Sintaks

SELECT column_name(s)
FROM table_name
LIMIT number

Contoh

SELECT *
FROM Persons
LIMIT 5

Oracle Sintaks

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

Contoh

SELECT *
FROM Persons
WHERE ROWNUM <=5


SQL TOP Contoh

Table "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger
4NilsenJantanVingvn 23Stavanger

Sekarang kita ingin memilih hanya dua catatan pertama dalam tabel di atas.
saya  menggunakan pernyataan SELECT berikut :

SELECT TOP 2 * FROM Persons

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes


SQL Contoh TOP %

Tabel "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger
4NilsenJantanVingvn 23Stavanger

Sekarang kita ingin memilih hanya 50% dari catatan dalam tabel di atas.

saya menggunakan pernyataan SELECT berikut :

SELECT TOP 50 PERCENT * FROM Persons

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes

  • SQL LIKE
Perintah LIKE digunakan untuk mencari pola yang ditetapkan dalam kolom. 

SQL Seperti sintaks

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern


SEPERTI Contoh Operator

Tabel "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Sekarang kita ingin memilih orang-orang yang tinggal di sebuah kota yang dimulai dengan "s" dari tabel di atas.

saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE City LIKE 's%'

"%" tanda dapat digunakan untuk menentukan wildcard (hilang huruf dalam pola) baik sebelum dan sesudah pola.

Hasil nya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Selanjutnya, kita ingin memilih orang-orang yang tinggal di sebuah kota yang diakhiri dengan "s" dari tabel "Orang".

saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE City LIKE '%s'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes

Selanjutnya, kita ingin memilih orang-orang yang tinggal di sebuah kota yang berisi pola "tav" dari tabel "Orang".

saya menggunakan pernyataan SELECT berikut:

SELECT * FROM Persons
WHERE City LIKE '%tav%'
Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
3PettersenKariStorgt 20Stavanger

Hal ini juga memungkinkan untuk memilih orang-orang yang tinggal di sebuah kota yang TIDAK mengandung pola "tav" dari tabel "Orang", dengan menggunakan kata kunci TIDAK.
saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'

Hasilnya akan terlihat seperti ini:

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes


  •  SQL WILDCARD
Wildcard SQL dapat digunakan ketika mencari data dalam database. 


Wildcard SQL dapat menggantikan satu atau lebih karakter ketika mencari data dalam database.
Wildcard SQL harus digunakan dengan SQL LIKE.
 
Dengan SQL, wildcard berikut dapat digunakan :

WildcardDeskripsi
%Sebuah pengganti nol atau lebih karakter
_Sebuah pengganti tepat satu karakter
[Charlist]Setiap karakter tunggal di charlist
[^ Charlist]
atau
[Charlist!]
Setiap karakter tunggal tidak charlist


SQL Wildcard Contoh

saya memiliki berikut tabel "Orang" :
P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


Menggunakan Wildcard %

Sekarang kita ingin memilih orang-orang yang tinggal di sebuah kota yang dimulai dengan "sa" dari tabel "Orang".

 saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE City LIKE 'sa%'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes

Selanjutnya, kita ingin memilih orang-orang yang tinggal di sebuah kota yang berisi pola "nes" dari tabel "Orang".

saya menggunakan pernyataan SELECT berikut:

SELECT * FROM Persons
WHERE City LIKE '%nes%'

Hasilnya akan terlihat seperti ini :
P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes


Menggunakan Wildcard _

Sekarang kita ingin memilih orang-orang dengan nama pertama yang dimulai dengan karakter, diikuti dengan "la" dari tabel "Orang".

saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE FirstName LIKE '_la'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes

Selanjutnya, kita ingin memilih orang-orang dengan nama belakang yang dimulai dengan "S", diikuti oleh setiap karakter, diikuti dengan "end", diikuti oleh setiap karakter, diikuti dengan "on" dari tabel "Orang".

Saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE LastName LIKE 'S_end_on'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
2SvendsonToveBorgvn 23Sandnes


Menggunakan [charlist] Wildcard

Sekarang kita ingin memilih orang-orang dengan nama belakang yang dimulai dengan "b" atau "s" atau "p" dari tabel "Orang".

saya menggunakan pernyataan SELECT berikut:

SELECT * FROM Persons
WHERE LastName LIKE '[bsp]%'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Selanjutnya, kita ingin memilih orang-orang dengan nama belakang yang tidak dimulai dengan "b" atau "s" atau "p" dari tabel "Orang".

saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE LastName LIKE '[!bsp]%'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes

  • SQL IN
IN memungkinkan Anda untuk menentukan beberapa nilai dalam klausa WHERE.

SQL IN Sintaks

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)


IN Contoh Operator

Tabel "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Sekarang kita ingin memilih orang-orang dengan nama belakang sama dengan "Hansen" atau "Pettersen" dari tabel di atas.

saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen')

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
3PettersenKariStorgt 20Stavanger


  • SQL BETWEEN
SQL ini digunakan dalam klausa WHERE untuk memilih berbagai data antara dua nilai.

BETWEEN memilih berbagai data antara dua nilai. Nilai-nilai dapat angka, teks, atau tanggal.

SQL BETWEEN Sintaks

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2


BETWEEN Contoh

Tabel "Orang" :
P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Sekarang kita ingin memilih orang-orang dengan nama belakang abjad antara "Hansen" dan "Pettersen" dari tabel di atas.

saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Persons
WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes

Catatan: BETWEEN operator diperlakukan berbeda dalam database yang berbeda
Dalam beberapa database, orang dengan Nama_depan "Hansen" atau "Pettersen" tidak akan terdaftar, karena operator BETWEEN hanya memilih bidang yang antara dan tidak termasuk nilai-nilai tes.
Pada database lain, orang-orang dengan Nama_depan "Hansen" atau "Pettersen" akan terdaftar, karena operator BETWEEN memilih bidang yang antara dan termasuk nilai tes.
Dan dalam database lain, orang-orang dengan Nama_depan "Hansen" akan terdaftar, tetapi "Pettersen" tidak akan terdaftar (seperti contoh di atas), karena BETWEEN Operator memilih bidang antara nilai tes, termasuk nilai tes pertama dan tidak termasuk nilai tes akhir.
Oleh karena itu: Periksa bagaimana database Anda memperlakukan BETWEEN operator.

Contoh 2

Untuk menampilkan orang-orang di luar jangkauan pada contoh sebelumnya, gunakan NOT BETWEEN :

SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen'

Hasilnya akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

  •  SQL AS

Dengan SQL, nama AS dapat diberikan ke sebuah tabel atau kolom.

SQL AS

Anda dapat memberikan tabel atau kolom nama lain dengan menggunakan sebuah alias / AS. Ini bisa menjadi hal yang baik untuk dilakukan jika Anda memiliki nama tabel yang sangat panjang atau kompleks atau nama kolom.
Sebuah nama alias / AS bisa apa saja, tetapi biasanya pendek.

SQL AS ​​Sintaks untuk Tabel

SELECT column_name(s)
FROM table_name
AS alias_name

SQL AS ​​Sintaks untuk Kolom

SELECT column_name AS alias_name
FROM table_name


​Contoh

Anggaplah kita memiliki sebuah tabel bernama "Orang" dan tabel lain yang disebut "Product_Orders". saya akan memberikan alias tabel dari "p" dan "po" masing-masing.Sekarang kita ingin daftar semua perintah yang "Hansen Ola" bertanggung jawab atas.

saya menggunakan pernyataan SELECT berikut :

SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p,
Product_Orders AS po
WHERE p.LastName='Hansen' AND p.FirstName='Ola'

Pernyataan SELECT yang sama tanpa AS :

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons,
Product_Orders
WHERE Persons.LastName='Hansen' AND Persons.FirstName='Ola'

Seperti yang Anda akan melihat dari dua pernyataan SELECT di atas, AS / alias dapat membuat pertanyaan lebih mudah baik untuk menulis dan membaca. 

  • SQL JOIN
digunakan untuk permintaan data dari dua atau lebih tabel, didasarkan pada hubungan antara kolom tertentu dalam tabel ini.

SQL JOIN

Kata kunci JOIN digunakan dalam sebuah pernyataan SQL untuk query data dari dua atau lebih tabel, didasarkan pada hubungan antara kolom tertentu dalam tabel ini.

Tabel dalam database sering berhubungan satu sama lain dengan kunci.
Kunci utama adalah kolom (atau kombinasi dari kolom) dengan nilai unik untuk setiap baris. Setiap nilai kunci primer harus unik dalam tabel. Tujuannya adalah untuk mengikat data bersama-sama, di tabel, tanpa mengulangi semua data di setiap tabel.

Lihatlah tabel "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Perhatikan bahwa "P_Id" kolom adalah kunci utama dalam tabel "Orang". Ini berarti bahwa tidak ada dua baris dapat memiliki P_Id yang sama. P_Id membedakan dua orang bahkan jika mereka memiliki nama yang sama.

Selanjutnya, kita memiliki "Perintah" tabel :

O_IdOrderNoP_Id
1778953
2446783
3224561
4245621
53476415

Perhatikan bahwa "O_Id" kolom adalah kunci utama dalam tabel "Orders" dan bahwa "P_Id" kolom mengacu pada orang-orang dalam tabel "Orang" tanpa menggunakan nama mereka.
Perhatikan bahwa hubungan antara dua tabel di atas adalah "P_Id" kolom.


SQL yang berbeda Bergabung

Sebelum kita lanjutkan dengan contoh-contoh, saya akan memberikan daftar jenis JOIN dapat Anda gunakan, dan perbedaan di antara mereka.
  • JOIN : Kembali baris ketika ada setidaknya satu perbandingan di kedua tabel
  • LEFT JOIN : Kembali semua baris dari tabel kiri, bahkan jika tidak ada perbandingan di tabel kanan
  • RIGHT JOIN : Kembali semua baris dari tabel kanan, bahkan jika tidak ada perbandingan di tabel kiri
  • FULL JOIN : baris Kembali ketika ada perbandingan di salah satu tabel


  • SQL INNER JOIN
baris kata kunci kembali ketika ada setidaknya satu perbandingan di kedua tabel.

SQL INNER JOIN Sintaks

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

PS : INNER JOIN sama dengan JOIN.


SQL INNER JOIN Contoh


Tabel "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Tabel "Perintah" :

O_IdOrderNoP_Id
1778953
2446783
3224561
4245621
53476415

Sekarang kita ingin daftar semua orang dengan perintah.

Saya menggunakan pernyataan SELECT berikut :

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Hasilnya akan terlihat seperti ini :

LastNameFirstNameOrderNo
HansenOla22456
HansenOla24562
PettersenKari77895
PettersenKari44678

The INNER JOIN baris kata kunci kembali ketika ada setidaknya satu perbandingan di kedua tabel. Jika ada baris dalam "Orang" yang tidak memiliki perbandingan di "Perintah", baris itu TIDAK akan terdaftar.

  • SQL LEFT JOIN

Kata kunci LEFT JOIN mengembalikan semua baris dari tabel kiri (table_name1), bahkan jika tidak ada perbandingan di tabel kanan (table_name2).

SQL LEFT JOIN Sintaks

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

PS : Dalam beberapa database LEFT JOIN disebut LEFT Outer JOIN.

SQL LEFT JOIN Contoh


Tabel "Orang" tabel :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Tabel "Perintah"  :

O_IdOrderNoP_Id
1778953
2446783
3224561
4245621
53476415

Sekarang kita ingin daftar semua orang dan pesanan mereka - jika ada, dari tabel di atas.

saya menggunakan pernyataan SELECT berikut :

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Hasilnya akan terlihat seperti ini :

LastNameFirstNameOrderNo
HansenOla22456
HansenOla24562
PettersenKari77895
PettersenKari44678
SvendsonTove

Kata kunci LEFT JOIN mengembalikan semua baris dari tabel kiri (LastName), bahkan jika tidak ada perbandingan di tabel kanan (orderNo).

  •  SQL RIGHT JOIN

Kata kunci RIGHT JOIN mengembalikan semua baris dari tabel kanan (table_name2), bahkan jika tidak ada perbandingan di tabel kiri (table_name1).

SQL RIGHT JOIN Sintaks

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

PS : Dalam beberapa database RIGHT JOIN disebut RIGHT Outer JOIN.


SQL RIGHT JOIN Contoh

tabel "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Tabel "Perintah" :

O_IdOrderNoP_Id
1778953
2446783
3224561
4245621
53476415

Sekarang kita ingin daftar semua perintah dengan orang-orang yang mengandung - jika ada, dari tabel di atas.

saya menggunakan pernyataan SELECT berikut :

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Hasilnya akan terlihat seperti ini :

LastNameFirstNameOrderNo
HansenOla22456
HansenOla24562
PettersenKari77895
PettersenKari44678
34764

Kata kunci RIGHT JOIN mengembalikan semua baris dari tabel kanan (OrderNo), bahkan jika tidak ada perbandingan di tabel kiri (LastName).

  •  SQL FULL JOIN 

FULL JOIN baris kata kunci kembali ketika ada perbandingan di salah satu tabel.

SQL FULL JOIN Sintaks

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name


SQL FULL JOIN Contoh

Tabel "Orang"  :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Tabel "Perintah"  :

O_IdOrderNoP_Id
1778953
2446783
3224561
4245621
53476415

Sekarang kita ingin daftar semua orang dan pesanan mereka, dan semua perintah dengan orang-orang mereka.

saya menggunakan pernyataan SELECT berikut :

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Hasilnya akan terlihat seperti ini :

LastNameFirstNameOrderNo
HansenOla22456
HansenOla24562
PettersenKari77895
PettersenKari44678
SvendsonTove
34764

Kata kunci FULL JOIN mengembalikan semua baris dari tabel kiri (LastName), dan semua baris dari tabel kanan (OrderNo). Jika ada baris dalam "Orang" yang tidak memiliki perbandingan di "Perintah", atau jika ada baris dalam "OrderNo" yang tidak memiliki pertandingan di "LastName", baris itu akan terdaftar juga.

  • SQL UNION 
digunakan untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT.
Perhatikan bahwa setiap pernyataan SELECT dalam UNION harus memiliki jumlah yang sama dari kolom. Kolom juga harus memiliki tipe yang sama data. Juga, kolom dalam setiap pernyataan SELECT harus dalam urutan yang sama.

SQL UNION Sintaks

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

Catatan : Operator UNION memilih hanya nilai yang berbeda secara default. Untuk memungkinkan nilai ganda, gunakan UNION ALL.

SQL UNION ALL Sintaks

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

PS : nama kolom dalam hasil UNION selalu sama dengan nama kolom dalam pernyataan SELECT pertama di UNION.


Contoh SQL UNION

Lihatlah tabel berikut:

"Employees_Norway" :

E_IDE_Name
01Hansen, Ola
02Svendson, Tove
03Svendson, Stephen
04Pettersen, Kari

"Employees_USA" :

E_IDE_Name
01Turner, Sally
02Kent, Clark
03Svendson, Stephen
04Scott, Stephen

Sekarang kita ingin daftar semua berbeda karyawan di Norwegia dan Amerika Serikat.

saya menggunakan pernyataan SELECT berikut :

SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA

Hasilnya akan terlihat seperti ini :

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen

Catatan: Perintah ini tidak dapat digunakan untuk membuat daftar semua karyawan di Norwegia dan Amerika Serikat. Pada contoh di atas kita memiliki dua karyawan dengan nama yang sama, dan hanya salah satu dari mereka akan terdaftar. Perintah UNION memilih hanya nilai-nilai yang berbeda.


SQL UNION Contoh ALL

Sekarang kita ingin daftar semua karyawan di Norwegia dan Amerika Serikat :

SELECT E_Name FROM Employees_Norway
UNION ALL
SELECT E_Name FROM Employees_USA

Hasil

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Svendson, Stephen
Scott, Stephen



  • SQL SELECT INTO
SELECT INTO SQL dapat digunakan untuk membuat salinan cadangan dari tabel.

SELECT INTO memilih data dari satu meja dan memasukkan ke tabel yang berbeda.
SELECT INTO yang paling sering digunakan untuk membuat salinan cadangan dari tabel.

SQL SELECT INTO Sintaks

Kita dapat memilih semua kolom ke dalam tabel baru :

SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

Atau kita dapat memilih hanya kolom yang kita inginkan ke dalam tabel baru:

SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename


SQL SELECT INTO Contoh

Membuat Copy Backup - Sekarang kita ingin membuat salinan dari data di tabel "Orang".

saya menggunakan pernyataan SQL berikut :

SELECT *
INTO Persons_Backup
FROM Persons

Kita juga bisa menggunakan klausa IN untuk menyalin tabel ke database lain:

SELECT *
INTO Persons_Backup IN 'Backup.mdb'
FROM Persons

saya juga dapat menyalin hanya beberapa bidang ke dalam tabel baru:

SELECT LastName,FirstName
INTO Persons_Backup
FROM Persons


SQL SELECT INTO - Dengan Klausul MANA

Kita juga bisa menambahkan klausa WHERE.
Pernyataan SQL berikut membuat "Persons_Backup" tabel dengan hanya orang-orang yang tinggal di kota "Sandnes":

SELECT LastName,Firstname
INTO Persons_Backup
FROM Persons
WHERE City='Sandnes'


SQL SELECT INTO - Tabel Bergabung

Memilih data dari lebih dari satu tabel juga mungkin.

Contoh berikut membuat "Persons_Order_Backup" tabel berisi data dari dua tabel "Orang" dan "Orders" :

SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id


  • CREATE DATABASE

Pernyataan CREATE DATABASE digunakan untuk membuat database.

SQL CREATE DATABASE Sintaks

CREATE DATABASE database_name


Contoh menciptakan DATABASE

Sekarang kita ingin membuat database yang disebut "my_db".

saya menggunakan pernyataan CREATE DATABASE berikut :

CREATE DATABASE my_db

Tabel database dapat ditambahkan dengan pernyataan CREATE TABLE.

  • CREATE TABLE  
Pernyataan CREATE TABLE digunakan untuk membuat tabel dalam database.

SQL CREATE TABLE Syntax

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)
Tipe data menentukan jenis data kolom dapat terus. Untuk referensi lengkap semua jenis data yang tersedia di MS Access, MySQL, dan SQL Server, pergi ke alamat lengkap saya referensi Tipe Data .

MENCIPTAKAN Contoh TABLE

Sekarang kita ingin membuat tabel yang disebut "Orang" yang berisi lima kolom : P_Id, LastName, FirstName, Alamat, dan Kota.

saya menggunakan pernyataan CREATE TABLE berikut:

CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Kolom P_Id adalah tipe int dan akan terus nomor satu. The LastName, FirstName, Alamat, dan kolom Kota adalah dari tipe varchar dengan panjang maksimal 255 karakter.

Tabel "Orang" sekarang kosong akan terlihat seperti ini :

P_IdLastNameFirstNameAlamatKota

Tabel kosong dapat diisi dengan data dengan SQL INSERT INTO.

  • SQL Constraints 

    digunakan untuk membatasi jenis data yang dapat masuk ke tabel.
    Constraints dapat ditentukan ketika tabel yang dibuat (dengan pernyataan CREATE TABLE) atau setelah tabel dibuat (dengan pernyataan ALTER TABLE).
    saya akan fokus pada kendala berikut:

  • NOT NULL
  • UNIK
  • PRIMARY KEY
  • FOREIGN KEY
  • LIHAT
  • DEFAULT
berikutnya akan menjelaskan kendala masing-masing secara rinci.

  • SQL NOT NULL

Secara default, kolom tabel dapat memegang nilai-nilai NULL.

SQL NOT NULL Kendala

NOT NULL memaksa kolom untuk tidak menerima nilai-nilai NULL.
NOT NULL memaksa Constraints untuk selalu mengandung nilai. Ini berarti bahwa Anda tidak dapat menyisipkan catatan baru, atau memperbarui rekor tanpa menambahkan nilai untuk bidang ini.
SQL berikut memberlakukan "P_Id" kolom dan "LastName" kolom untuk tidak menerima nilai NULL :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

  • SQL UNIQUE
mengidentifikasi setiap record dalam tabel database.

UNIQUE dan PRIMARY keduanya memberikan jaminan untuk keunikan untuk kolom atau set kolom.

Sebuah kendala PRIMARY KEY otomatis memiliki kendala UNIK didefinisikan di atasnya. Perhatikan bahwa Anda dapat memiliki kendala UNIK banyak per tabel, tetapi hanya satu kendala PRIMARY KEY per tabel.

SQL UNIQUE Constraints pada CREATE TABLE

The SQL berikut membuat kendala UNIQUE pada kolom "P_Id" ketika "Orang" tabel dibuat :

MySQL :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

SQL Server / Oracle / MS Access :

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Untuk memungkinkan penamaan UNIQUE, dan untuk mendefinisikan UNIQUE pada beberapa kolom, gunakan sintaks SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)


SQL UNIQUE Constraints pada ALTER TABLE

Untuk membuat kendala UNIQUE pada kolom "P_Id" ketika tabel sudah dibuat, gunakan SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Persons
ADD UNIQUE (P_Id)

Untuk memungkinkan penamaan kendala UNIQUE, dan untuk mendefinisikan kendala UNIQUE pada beberapa kolom, gunakan sintaks SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)


Untuk DROP

Untuk menjatuhkan kendala UNIQUE, gunakan SQL berikut :

MySQL :

ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access :

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

  • SQL PRIMARY KEY
mengidentifikasi setiap record dalam tabel database.

primery key harus mengandung nilai-nilai yang unik. Sebuah kolom primery key tidak dapat berisi nilai NULL.

Setiap tabel harus memiliki primary key, dan setiap tabel hanya dapat memiliki satu primary key.

SQL PRIMARY KEY di CREATE TABLE

berikut membuat PRIMARY KEY pada kolom "P_Id" ketika tabel "Orang" dibuat :

MySQL :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

SQL Server / Oracle / MS Access :

CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Untuk memungkinkan penamaan kendala PRIMARY KEY, dan untuk mendefinisikan PRIMARY KEY pada beberapa kolom, gunakan sintaks SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

Catatan : Dalam contoh di atas hanya ada SATU PRIMARY KEY (pk_PersonID). Namun, nilai pk_PersonID terdiri dari dua kolom (P_Id dan LastName).

SQL PRIMARY KEY pada ALTER TABLE

Untuk membuat PRIMARY KEY pada kolom "P_Id" ketika tabel sudah dibuat, gunakan SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

Untuk memungkinkan penamaan kendala PRIMARY KEY, dan untuk mendefinisikan PRIMARY KEY pada beberapa kolom, gunakan sintaks SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

Catatan : Jika Anda menggunakan pernyataan ALTER TABLE untuk menambahkan primary key, kolom primary key (s) harus sudah telah dinyatakan tidak mengandung nilai NULL (ketika tabel pertama kali diciptakan).

Untuk DROP PRIMARY KEY

Untuk DROP PRIMARY KEY, gunakan SQL berikut :

MySQL :

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access :

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

  • SQL FOREIGN KEY
FOREIGN KEY dalam satu poin tabel untuk PRIMARY KEY di meja lain.

Mari kita menggambarkan foreign key dengan sebuah contoh. Lihatlah dua tabel berikut :
Tabel "Orang" :
P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Tabel "Perintah" :

O_IdOrderNoP_Id
1778953
2446783
3224562
4245621

Perhatikan bahwa "P_Id" kolom dalam poin tabel "Orders" pada kolom "P_Id" dalam tabel "Orang".
"P_Id" kolom dalam tabel "Orang" adalah PRIMARY KEY pada tabel "Orang".
"P_Id" kolom dalam tabel "Orders" adalah FOREIGN KEY pada tabel "Orders".

FOREIGN KEY digunakan untuk mencegah tindakan-tindakan yang akan merusak hubungan antara tabel.
FOREIGN KEY juga mencegah bahwa data yang tidak valid yang membentuk dimasukkan ke dalam kolom kunci asing, karena itu harus menjadi salah satu nilai yang terkandung dalam tabel ini menunjuk ke.


SQL FOREIGN KEY di CREATE TABLE


berikut membuat FOREIGN KEY pada kolom "P_Id" ketika "Perintah" tabel dibuat :

MySQL :

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server / Oracle / MS Access :

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

Untuk memungkinkan penamaan FOREIGN KEY, dan untuk mendefinisikan FOREIGN KEY pada beberapa kolom, gunakan sintaks SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)


SQL FOREIGN KEY pada ALTER TABLE


Untuk membuat FOREIGN KEY pada kolom "P_Id" ketika tabel "Perintah" sudah dibuat, gunakan SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Untuk memungkinkan penamaan FOREIGN KEY, dan untuk mendefinisikan kendala FOREIGN KEY pada beberapa kolom, gunakan sintaks SQL berikut :

 MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)


Untuk DROP FOREIGN KEY

Untuk menjatuhkan kendala FOREIGN KEY, gunakan SQL berikut :

MySQL :

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access :

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

  • SQL CHECK CONSTRAINT
Digunakan untuk membatasi rentang nilai yang dapat ditempatkan dalam kolom.

Jika anda mendefinisikan suatu pada satu kolom memungkinkan nilai-nilai tertentu saja untuk kolom ini. Jika anda mendefinisikan suatu di tabel dapat membatasi nilai dalam kolom tertentu berdasarkan nilai-nilai dalam kolom lain pada baris.

SQL CHECK CONSTRAINT pada CREATE TABLE

Berikut membuat CHECK CONSTRAINT pada kolom "P_Id" ketika tabel "Orang" dibuat.CHECK CONSTRAINT menentukan bahwa kolom "P_Id" hanya harus menyertakan bilangan bulat lebih besar dari 0.

MySQL :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)

SQL Server / Oracle / MS Access :

CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Untuk memungkinkan penamaan suatu CHECK CONSTRAINT, dan untuk mendefinisikan kendala CHECK pada beberapa kolom, gunakan sintaks SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)


SQL LIHAT Kendala pada ALTER TABLE

Untuk membuat CHECK CONSTRAINT pada kolom "P_Id" ketika tabel sudah dibuat, gunakan SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Persons
ADD CHECK (P_Id>0)

Untuk memungkinkan penamaan suatu CHECK CONSTRAINT, dan untuk mendefinisikan kendala CHECK pada beberapa kolom, gunakan sintaks SQL berikut :

MySQL / SQL Server / Oracle / MS Access :

ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')


DROP CHECK CONSTRAINT

Untuk menjatuhkan CHECK CONSTRAINT, gunakan SQL berikut :

SQL Server / Oracle / MS Access :

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL :

ALTER TABLE Persons
DROP CHECK chk_Person


  • SQL DEFAULT
digunakan untuk memasukkan nilai default ke kolom.

Nilai default akan ditambahkan ke semua catatan baru, jika tidak ada nilai lain yang ditentukan.


SQL DEFAULT CONSTRAINT pada CREATE TABLE

The SQL berikut membuat CONSTRAINT DEFAULT pada kolom "Kota" ketika tabel "Orang" dibuat :

My SQL / SQL Server / Oracle / MS Access :

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
CONSTRAINT DEFAULT juga dapat digunakan untuk memasukkan nilai-nilai sistem, dengan menggunakan fungsi seperti GETDATE () :

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)


SQL DEFAULT CONSTRAINT pada ALTER TABLE

Untuk membuat CONSTRAINT DEFAULT pada kolom "Kota" ketika tabel sudah dibuat, gunakan SQL berikut :

MySQL :

ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'

SQL Server / MS Access :

ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'

Oracle :

ALTER TABLE Persons
MODIFY City DEFAULT 'SANDNES'


Untuk DROP DEFAULT CONSTRAINT

Untuk menjatuhkan CONSTRAINT DEFAULT, gunakan SQL berikut :

MySQL :

ALTER TABLE Persons
ALTER City DROP DEFAULT

SQL Server / Oracle / MS Access :

ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT

  • SQL CREATE INDEX
digunakan untuk membuat indeks dalam tabel.
Indeks memungkinkan aplikasi database untuk menemukan data yang cepat, tanpa membaca seluruh tabel.


Indeks

Indeks dapat dibuat dalam sebuah tabel untuk menemukan data yang lebih cepat dan efisien.
Para pengguna tidak dapat melihat indeks, mereka hanya digunakan untuk mempercepat pencarian / query.

Catatan : Memperbarui tabel dengan indeks membutuhkan waktu lebih dari memperbarui tanpa tabel (karena indeks juga membutuhkan update). Jadi Anda hanya harus membuat indeks pada kolom (dan tabel) yang akan sering dicari lawan.

SQL membuat indeks Sintaks


Membuat index di atas tabel. Nilai ganda diperbolehkan :

CREATE INDEX index_name
ON table_name (column_name)

Sintaks SQL CREATE UNIQUE INDEX

Menciptakan indeks yang unik di atas tabel. Nilai ganda tidak diperbolehkan :

CREATE UNIQUE INDEX index_name
ON table_name (column_name)

Catatan : Sintaks untuk membuat indeks bervariasi antara database yang berbeda. Oleh karena itu Periksa sintaks untuk membuat indeks dalam database Anda.


CREATE INDEX Contoh

Pernyataan SQL berikut membuat index bernama "Pindex" pada kolom "LastName" dalam tabel "Orang" :

CREATE INDEX PIndex
ON Persons (LastName)

Jika Anda ingin membuat indeks pada kombinasi kolom, Anda dapat daftar nama kolom dalam kurung, dipisahkan dengan koma :

CREATE INDEX PIndex
ON Persons (LastName, FirstName)

  • SQL DROP INDEX
Indeks, tabel, dan database dengan mudah dapat dihapus / dihilangkan dengan pernyataan DROP.


DROP INDEX

 

INDEX DROP digunakan untuk menghapus indeks dalam sebuah tabel.

DROP INDEX Sintaks untuk Akses MS :

 

DROP INDEX index_name ON table_name

 

DROP INDEX Sintaks untuk MS SQL Server :

 

DROP INDEX table_name.index_name

 

DROP INDEX Sintaks untuk DB2/Oracle :

 

DROP INDEX index_name

 

DROP INDEX Sintaks untuk MySQL :

 

ALTER TABLE table_name DROP INDEX index_name


DROP TABLE

Pernyataan DROP TABLE digunakan untuk menghapus tabel.

DROP TABLE table_name


DROP DATABASE

Pernyataan DROP DATABASE digunakan untuk menghapus database.

DROP DATABASE database_name


TRUNCATE TABLE

Bagaimana jika kita hanya ingin menghapus data dalam tabel, dan bukan tabel itu sendiri ?
Kemudian, menggunakan pernyataan TABLE truncate :

TRUNCATE TABLE table_name

  • SQL ALTER TABLE
digunakan untuk menambah, menghapus, atau memodifikasi kolom dalam tabel yang ada.

SQL ALTER TABLE Syntax

Untuk menambahkan kolom dalam sebuah tabel, gunakan sintaks berikut :

ALTER TABLE table_name
ADD column_name datatype

Untuk menghapus kolom dalam sebuah tabel, gunakan sintaks berikut (perhatikan bahwa beberapa sistem database tidak mengijinkan menghapus kolom) :

ALTER TABLE table_name
DROP COLUMN column_name

Untuk mengubah tipe data dari kolom dalam sebuah tabel, gunakan sintaks berikut :

My SQL / SQL Server / MS Access :

ALTER TABLE table_name
ALTER COLUMN column_name datatype

Oracle :

ALTER TABLE table_name
MODIFY column_name datatype


SQL ALTER TABLE Contoh

Lihatlah tabel "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Sekarang kita ingin menambahkan kolom bernama "DateOfBirth" dalam tabel "Orang".

saya menggunakan pernyataan SQL berikut :

ALTER TABLE Persons
ADD DateOfBirth date

Perhatikan bahwa kolom baru, "DateOfBirth", adalah tipe tanggal dan akan mengadakan kencan.Tipe data menentukan jenis data kolom dapat terus. Untuk referensi lengkap semua jenis data yang tersedia di MS Access, MySQL, dan SQL Server,  referensi Tipe Data telah saya tuliskan dalam blogger ini .
The "Orang" tabel sekarang akan seperti ini:
P_IdLastNameFirstNameAlamatKotaDateOfBirth
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


Mengubah Contoh Tipe Data

Sekarang kita ingin mengubah tipe data dari kolom bernama "DateOfBirth" dalam tabel "Orang".
saya menggunakan pernyataan SQL berikut:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year
Perhatikan bahwa "DateOfBirth" kolom sekarang tahun jenis dan akan mengadakan satu tahun dalam format dua digit atau empat digit.

DROP Contoh KOLOM

Selanjutnya, kita ingin menghapus kolom bernama "DateOfBirth" dalam tabel "Orang".
saya menggunakan pernyataan SQL berikut:
ALTER TABLE Persons
DROP COLUMN DateOfBirth
The "Orang" tabel sekarang akan seperti ini:
P_IdLastNameFirstNameAlamatKota
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


  • SQL AUTO INCREMENT
Auto-increment memungkinkan nomor unik yang akan dihasilkan ketika rekor baru dimasukkan ke dalam tabel.

AUTO increment

Sangat sering kita ingin nilai dari field kunci utama yang akan dibuat secara otomatis setiap kali rekor baru dimasukkan.
saya ingin menciptakan auto-increment dalam sebuah tabel.


Sintaks untuk MySQL

Pernyataan SQL berikut mendefinisikan "P_Id" kolom menjadi auto-increment key dalam tabel "Orang":

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

MySQL menggunakan kata kunci AUTO_INCREMENT untuk melakukan fitur auto-increment.
Secara default, nilai awal untuk AUTO_INCREMENT adalah 1, dan akan kenaikan sebesar 1 untuk setiap record baru.

Untuk membiarkan awal urutan AUTO_INCREMENT dengan nilai yang lain, menggunakan pernyataan SQL berikut :

ALTER TABLE Persons AUTO_INCREMENT=100

Untuk menyisipkan catatan baru ke dalam tabel "Orang", kita tidak perlu menentukan nilai untuk kolom "P_Id" (nilai unik akan ditambahkan secara otomatis) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

Pernyataan SQL di atas akan memasukkan catatan baru ke dalam tabel "Orang". "P_Id" kolom akan diberi nilai yang unik. "FirstName" kolom akan diatur ke "Lars" dan "LastName" kolom akan diatur ke "Monsen".

Sintaks untuk SQL Server

Pernyataan SQL berikut mendefinisikan "P_Id" kolom menjadi auto-increment dalam tabel "Orang" :

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL Server menggunakan kata kunci IDENTITAS untuk melakukan fitur auto-increment.
Secara default, nilai awal untuk IDENTITAS adalah 1, dan akan kenaikan sebesar 1 untuk setiap record baru.

Untuk menetapkan bahwa "P_Id" kolom harus mulai dengan nilai 10 dan kenaikan sebesar 5, mengubah identitas untuk IDENTITAS (10,5).

Untuk menyisipkan catatan baru ke dalam tabel "Orang", kita tidak perlu menentukan nilai untuk kolom "P_Id" (nilai unik akan ditambahkan secara otomatis) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

Pernyataan SQL di atas akan memasukkan catatan baru ke dalam tabel "Orang". "P_Id" kolom akan diberi nilai yang unik. "FirstName" kolom akan diatur ke "Lars" dan "LastName" kolom akan diatur ke "Monsen".


Sintaks untuk SQL ACCESS

berikut mendefinisikan "P_Id" kolom menjadi auto-increment key bidang utama dalam tabel "Orang" :

CREATE TABLE Persons
(
P_Id PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access menggunakan kata kunci AUTOINCREMENT untuk melakukan fitur auto-increment.

Secara default, nilai awal untuk AUTOINCREMENT adalah 1, dan akan kenaikan sebesar 1 untuk setiap record baru.

Untuk menetapkan bahwa "P_Id" kolom harus mulai dengan nilai 10 dan kenaikan sebesar 5, ubah autoincrement untuk AUTOINCREMENT (10,5).

Untuk menyisipkan catatan baru ke dalam tabel "Orang", kita tidak perlu menentukan nilai untuk kolom "P_Id" (nilai unik akan ditambahkan secara otomatis) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

Pernyataan SQL di atas akan memasukkan catatan baru ke dalam tabel "Orang". "P_Id" kolom akan diberi nilai yang unik. The "FirstName" kolom akan diatur ke "Lars" dan "LastName" kolom akan diatur ke "Monsen".


Sintaks untuk Oracle

Di Oracle kode ini sedikit lebih rumit.

Anda harus menciptakan auto-increment dengan objek urutan (objek ini menghasilkan urutan nomor).

Gunakan sintaks membuat urutan berikut :

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

Kode di atas membuat objek urutan disebut seq_person, yang dimulai dengan 1 dan akan increment 
1. Ini juga akan cache hingga 10 nilai untuk kinerja. Pilihan Cache menentukan berapa banyak nilai urutan akan disimpan dalam memori untuk akses cepat. Untuk menyisipkan catatan baru ke dalam tabel "Orang", kita harus menggunakan fungsi nextval (fungsi ini mengambil nilai berikutnya dari urutan seq_person) :

INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

Pernyataan SQL di atas akan memasukkan catatan baru ke dalam tabel "Orang". "P_Id" kolom akan diberi nomor berikutnya dari urutan seq_person. "FirstName" kolom akan diatur ke "Lars" dan "LastName" kolom akan diatur ke "Monsen".

  • SQL VIEWS
view adalah tabel virtual.
Bab ini menunjukkan cara membuat, memperbarui, dan menghapus view.

SQL CREATE VIEW

Dalam SQL, view adalah tabel virtual berdasarkan hasil set-dari pernyataan SQL.
A view berisi baris dan kolom, seperti tabel sebenarnya. Bidang dalam view adalah bidang dari satu atau lebih tabel yang nyata dalam database.

Anda dapat menambahkan fungsi-fungsi SQL, WHERE, dan JOIN pernyataan kepada view dan menyajikan data seolah-olah data yang datang dari satu tabel tunggal.

SQL membuat tampilan Sintaks

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

Catatan : A view selalu menunjukkan up-to-date data Mesin database akan membuat ulang data, menggunakan pernyataan SQL view ini, setiap kali pengguna melakukan query.


SQL CREATE VIEW Contoh

Jika Anda memiliki database Northwind Anda dapat melihat bahwa ia memiliki beberapa view terinstal secara default.

View "Current Product List" daftar semua produk yang aktif (produk yang tidak dihentikan) dari tabel "Produk". View ini dibuat dengan SQL berikut :

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

Kita dapat query view di atas sebagai berikut :

SELECT * FROM [Current Product List]

View lain dalam database contoh Northwind memilih setiap produk dalam tabel "Produk" dengan harga satuan yang lebih tinggi dari harga unit rata-rata :

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

Kita dapat query view di atas sebagai berikut :

SELECT * FROM [Products Above Average Price]

View lain dalam database Northwind menghitung total penjualan untuk setiap kategori pada tahun 1997. Perhatikan bahwa view ini memilih data dari view lain yaitu "Penjualan Produk untuk tahun 1997" :

CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName

Kita dapat query view di atas sebagai berikut :

SELECT * FROM [Category Sales For 1997]

Kita juga dapat menambahkan kondisi untuk query. Sekarang kita ingin melihat total penjualan hanya untuk "Minuman" kategori :

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'


SQL Updating View

Anda dapat memperbarui tampilan dengan menggunakan sintaks berikut :

SQL CREATE OR REPLACE Sintaks VIEW

CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

Sekarang kita ingin menambahkan "Kategori" kolom ke "Current Product List" view. Saya akan memperbarui tampilan dengan SQL berikut :

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No


SQL Drop View

Anda dapat menghapus view dengan perintah DROP VIEW.

SQL DROP VIEW Syntax

DROP VIEW view_name

  • SQL DATE
Bagian yang paling sulit ketika bekerja dengan tanggal adalah untuk memastikan bahwa format tanggal Anda mencoba untuk memasukkan, sesuai dengan format dari kolom tanggal dalam database.

Selama data Anda hanya berisi bagian tanggal, pertanyaan Anda akan bekerja seperti yang diharapkan. Namun, jika porsi waktu yang terlibat, itu akan rumit.
Sebelum berbicara tentang komplikasi query untuk tanggal, kita akan melihat built-in fungsi yang paling penting untuk bekerja dengan tanggal.

MySQL Date Fungsi

Tabel berikut berisi daftar yang paling penting built-in fungsi tanggal di MySQL :

FungsiDeskripsi
NOW ()Mengembalikan tanggal dan waktu
CURDATE ()Mengembalikan tanggal
CURTIME ()Mengembalikan waktu saat ini
DATE ()Ekstrak bagian tanggal tanggal atau tanggal / waktu ekspresi
EXTRACT ()Pengembalian bagian tunggal dari tanggal / waktu
DATE_ADD ()Menambahkan interval waktu tertentu untuk kencan
DATE_SUB ()Mengurangi interval waktu tertentu dari tanggal
DATEDIFF ()Mengembalikan jumlah hari antara dua tanggal
DATE_FORMAT ()Menampilkan tanggal / waktu data dalam format yang berbeda


Tanggal SQL Server Fungsi

Tabel berikut berisi daftar yang paling penting built-in fungsi tanggal di SQL Server :

FungsiDeskripsi
GETDATE ()Mengembalikan tanggal dan waktu
DATEPART ()Pengembalian bagian tunggal dari tanggal / waktu
DATEADD ()Menambah atau mengurangi interval waktu tertentu dari tanggal
DATEDIFF ()Mengembalikan waktu antara dua tanggal
CONVERT ()Menampilkan tanggal / waktu data dalam format yang berbeda


Tanggal data SQL Jenis

MySQL dilengkapi dengan jenis data berikut untuk menyimpan tanggal atau nilai tanggal / waktu dalam database :
  • DATE - format YYYY-MM-DD
  • DATETIME - format: YYYY-MM-DD HH: MM: SS
  • TIMESTAMP - format: YYYY-MM-DD HH: MM: SS
  • TAHUN - format YYYY atau YY
SQL Server datang dengan jenis data berikut untuk menyimpan tanggal atau nilai tanggal / waktu dalam database :
  • DATE - format YYYY-MM-DD
  • DATETIME - format: YYYY-MM-DD HH: MM: SS
  • Smalldatetime - format: YYYY-MM-DD HH: MM: SS
  • TIMESTAMP - format: nomor unik
Catatan: Jenis tanggal yang dipilih untuk kolom ketika Anda membuat tabel baru di database Anda!
Untuk gambaran dari semua jenis data yang tersedia, pergi ke alamat lengkap saya referensi Tipe Data .

SQL Bekerja dengan DATES

Anda dapat membandingkan dua tanggal dengan mudah jika tidak ada komponen waktu yang terlibat
Asumsikan kita memiliki berikut "Perintah" tabel :

OrderIdProductNameOrderDate
1Geitost2008-11-11
2Camembert Pierrot2008-11-09
3Mozzarella di Giovanni2008-11-11
4Mascarpone Fabioli2008-10-29

Sekarang kita ingin memilih catatan dengan OrderDate dari "2008-11-11" dari tabel di atas.
saya menggunakan pernyataan SELECT berikut :

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

Hasilnya akan terlihat seperti ini :

OrderIdProductNameOrderDate
1Geitost2008-11-11
3Mozzarella di Giovanni2008-11-11

Sekarang, asumsikan bahwa tabel "Perintah" terlihat seperti ini (perhatikan komponen waktu dalam kolom "OrderDate") :

OrderIdProductNameOrderDate
1Geitost2008-11-11 13:23:44
2Camembert Pierrot2008-11-09 15:45:21
3Mozzarella di Giovanni2008-11-11 11:12:01
4Mascarpone Fabioli2008-10-29 14:56:59

Jika kita menggunakan pernyataan SELECT yang sama seperti di atas :

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

kita akan mendapatkan hasil tidak. Hal ini karena permintaan yang hanya mencari tanggal tanpa porsi waktu.
Tip : Jika Anda ingin menyimpan pertanyaan Anda sederhana dan mudah untuk mempertahankan, tidak memungkinkan komponen waktu tanggal Anda.

  • SQL NULL
Nilai NULL merupakan data yang diketahui hilang.
Secara default, kolom tabel dapat memegang nilai-nilai NULL.
Bab ini akan menjelaskan IS NULL dan IS NOT NULL.

SQL NULL Nilai

Jika kolom dalam sebuah tabel adalah opsional, kita dapat menyisipkan catatan baru atau memperbarui catatan yang ada tanpa menambahkan nilai ke kolom ini. Ini berarti bahwa lapangan akan disimpan dengan nilai NULL. Nilai NULL diperlakukan berbeda dari nilai-nilai lain. NULL digunakan sebagai tempat untuk nilai yang tidak diketahui atau tidak berlaku.

Catatan : Hal ini tidak mungkin untuk membandingkan NULL dan 0, mereka tidak setara.


SQL Bekerja dengan Nilai NULL

Lihatlah tabel berikut "Orang" :

P_IdLastNameFirstNameAlamatKota
1HansenOlaSandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStavanger

Misalkan bahwa "Alamat" kolom dalam tabel "Orang" adalah opsional. Ini berarti bahwa jika kita memasukkan catatan dengan tidak ada nilai untuk kolom "Alamat", "Alamat" kolom akan disimpan dengan nilai NULL.

Bagaimana kita bisa menguji nilai-nilai NULL ?
Hal ini tidak mungkin untuk menguji nilai-nilai NULL dengan operator perbandingan, 
seperti =, <, atau <>.

saya akan harus menggunakan IS NULL dan IS NOT NULL sebagai gantinya.

SQL IS NULL

Bagaimana kita memilih hanya record dengan nilai-nilai NULL di kolom "Alamat" ?
saya akan harus menggunakan IS NULL Operator :

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

Hasilnya akan terlihat seperti ini :

LastNameFirstNameAlamat
HansenOla
PettersenKari
Tip : Selalu gunakan IS NULL untuk mencari nilai-nilai NULL.


SQL IS NOT NULL

Bagaimana kita memilih hanya catatan tanpa nilai-nilai NULL di kolom "Alamat" ?
saya akan harus menggunakan IS NOT NULL :

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

Hasilnya akan terlihat seperti ini :

LastNameFirstNameAlamat
SvendsonToveBorgvn 23

Berikutnya kita akan melihat ISNULL (), NVL (), IFNULL () dan Bersatu () fungsi.

  • SQL NULL FUNGSI

SQL ISNULL (), NVL (), IFNULL () dan COALESCE ()

Functions


Lihatlah tabel berikut "Produk" :

P_IdProductNameUnitPriceUnitsInStockUnitsOnOrder
1Jarlsberg10.451615
2Mascarpone32.5623
3Gorgonzola15.67920

Misalkan bahwa "UnitsOnOrder" kolom adalah opsional, dan dapat berisi nilai NULL.

saya memiliki pernyataan SELECT berikut :

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

Dalam contoh di atas, jika salah satu dari nilai-nilai "UnitsOnOrder" adalah NULL, hasilnya adalah NULL.

ISNULL Microsoft () Fungsi ini digunakan untuk menentukan bagaimana kita ingin memperlakukan nilai NULL.

The NVL (), IFNULL (), dan COALESCE () fungsi juga dapat digunakan untuk mencapai hasil yang sama.
Dalam kasus ini kita ingin nilai-nilai NULL menjadi nol.

Di bawah, jika "UnitsOnOrder" adalah NULL itu tidak akan merugikan perhitungan, karena ISNULL () mengembalikan nol jika nilai adalah NULL :

SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle
Oracle tidak memiliki fungsi ISNULL (). Namun, kita dapat menggunakan NVL () fungsi untuk mencapai hasil yang sama :

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL
MySQL memang memiliki ISNULL () fungsi. Namun, ia bekerja sedikit berbeda dari ISNULL Microsoft () fungsi.

Dalam MySQL kita dapat menggunakan IFNULL () fungsi, seperti ini :

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

atau kita dapat menggunakan Bersatu () fungsi, seperti ini :

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products


No comments:

Post a Comment