SQL
(Structured
Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam database
relational. Bahasa merupakan bahasa standar yang
digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan
manajemen datanya.
Sejarah SQL dimulai dari artikel
seorang peneliti dari IBM bernama Jhonny Oracle yang membahas tentang ide
pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas
kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data
tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query
Language).
Setelah terbitnya artikel tersebut,
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.
Secara umum, SQL terdiri dari dua
bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language
(DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data
(DBMS)
Data Definition Language
DDL digunakan untuk mendefinisikan, mengubah,
serta menghapus basis data dan objek-objek yang diperlukan dalam basis data,
misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan
adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER
untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL
biasanya digunakan oleh administrator basis data dalam pembuatan sebuah
aplikasi basis data.
DDL Dalam My SQL
Query
|
Fungsi
|
Contoh
|
CREATE DATABASE [nama]
|
Membuat Database
|
CREATE DATABASE pmi
|
CREATE TABLE [nama]
|
Membuat Table
|
CREATE TABLE `mahasiswa` (`nrp`
SMALLINT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`nama` VARCHAR( 30 ) NOT
NULL);
|
DROP DATABASE [nama]
|
Menghapus Database
|
DROP DATABASE pmi
|
DROP TABLE [nama]
|
Menghapus Table
|
DROP TABLE mahasiswa
|
SHOW DATABASES
|
Menampilkan semua database
|
SHOW DATABASES
|
SHOW TABLES
|
Menampilkan table
|
SHOW TABLES
|
DDL Dalam SQL Server
Query
|
Fungsi
|
Contoh
|
CREATE DATABASE [nama]
|
Membuat Database
|
CREATE DATABASE pmi
|
CREATE TABLE [nama]
|
Membuat Table
|
CREATE TABLE `mahasiswa` (`nrp`
SMALLINT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`nama` VARCHAR( 30 ) NOT
NULL);
|
DROP DATABASE [nama]
|
Menghapus Database
|
DROP DATABASE pmi
|
DROP TABLE [nama]
|
Menghapus Table
|
DROP TABLE mahasiswa
|
SHOW DATABASES
|
Menampilkan semua database
|
SHOW DATABASES
|
SHOW TABLES
|
Menampilkan table
|
SHOW TABLES
|
DDL Dalam Oracle
Query
|
Fungsi
|
Contoh
|
CREATE DATABASE [nama]
|
Membuat Database
|
CREATE DATABASE pmi
|
CREATE TABLE [nama]
|
Membuat Table
|
CREATE TABLE `mahasiswa` (`nrp`
SMALLINT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`nama` VARCHAR( 30 ) NOT
NULL);
|
DROP DATABASE [nama]
|
Menghapus Database
|
DROP DATABASE pmi
|
DROP TABLE [nama]
|
Menghapus Table
|
DROP TABLE mahasiswa
|
SHOW DATABASES
|
Menampilkan semua database
|
SHOW DATABASES
|
SHOW TABLES
|
Menampilkan table
|
SHOW TABLES
|
RENAME [nama] TO [nama];
|
Mengubah Nama
|
RENAME dept TO detail_dept;
|
BEBERAPA CONTOH DDL ALTER:
1. ALTER TABLE MAHASISWA ADD ID
SMALLINT(5) NOT NULL FIRST
Menambah kolom ID di awal suatu table MAHASISWA.
2. ALTER TABLE MAHASISWA ADD birthday
DATE NOT NULL DEFAULT ’0000-00-00′ AFTER NAMA
Menambah kolom birthday setelah kolom
NAMA.
3. ALTER TABLE mahasiswa ADD alamat
VARCHAR(50) NOT NULL
Menambah kolom alamat pada akhir
suatu table.
4. ALTER TABLE `mahasiswa` ADD `cob` VARCHAR(
12 ) NOT NULL , ADD `tes` VARCHAR( 12 ) NOT NULL
Menambah dua kolom(kolom cob dan tes)
di akhir table.
5. ALTER TABLE `mahasiswa` DROP
`alamat`
Menghapus kolom alamat pada suatu
table.
6. ALTER TABLE `mahasiswa` DROP
`cob`, DROP `tes`
Menghapus lebih dari satu kolom.
7. ALTER TABLE MAHASISWA ADD PRIMARY
KEY(ID)
Menambah primary key pada kolom ID
8. ALTER TABLE MAHASISWA DROP PRIMARY
KEY
Menghapus primary key pada suatu
table
9. ALTER TABLE MAHASISWA CHANGE
BIRTHDAY tgl_lahir DATE NOT NULL DEFAULT ’0000-00-00′
Mengubah nama kolom (BIRTHDAY)
menjadi (tgl_lahir). Atribute (Type data, Default jika didefinisikan)harus sama
dengan attribute kolom sebelumnya.
10. ALTER TABLE MAHASISWA MODIFY NAMA
TEXT NOT NULL
Mengubah attribute tapi tidak mengubah nama table. Pada contoh
di atas kolom “NAMA” yang sebelumnya bertipe data VARCHAR(30) diubah menjadi
type data text.
11. ALTER TABLE MAHASISWA MODIFY ID
SMALLINT(5) NOT NULL AUTO_INCREMENT
Mengubah/menambah attribute tapi tidak mengubah nama table. Pada contoh
di atas kolom “ID” sebelumnya tidak AUTO INCREMENT.
Data Manipulation Language
Data Manipulation Language (DML)
adalah bahasa basis data yang berguna untuk melakukan modifikasi dan
pengambilan data pada suatu basis data. Modifikasi data terdiri dari: penambahan
(insert), pembaruan (update), penghapusan (delete), seleksi data (selection)
dan membuat tabel maya (view).
DML
digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang
umum dilakukan adalah:
§
SELECT untuk menampilkan data
§
INSERT untuk menambahkan data
baru
§
UPDATE untuk mengubah data yang
sudah ada
§
DELETE untuk menghapus data
DML pada MySQL
Query
|
Fungsi
|
Contoh
|
SELECT
|
Menampilkan data
|
SELECT * FROM user WHERE
total_transaksi = 0
|
INSERT
|
Memasukkan data
|
INSERT INTO TEST (NAMA, ALAMAT,
PASSWORD) VALUES ('test', 'alamat', 'pass');
|
UPDATE
|
Mengupdate data
|
UPDATE Msuser set
password="123456" where username="abc"
|
DELETE
|
Menghapus Data
|
DELETE FROM test WHERE NAMA='test';
|
DML pada SQL Server
Query
|
Fungsi
|
Contoh
|
SELECT
|
Menampilkan data
|
SELECT * FROM user WHERE
total_transaksi = 0
|
INSERT
|
Memasukkan data
|
INSERT INTO TEST (NAMA, ALAMAT,
PASSWORD) VALUES ('test', 'alamat', 'pass');
|
UPDATE
|
Mengupdate data
|
UPDATE Msuser set
password="123456" where username="abc"
|
DELETE
|
Menghapus Data
|
DELETE FROM test WHERE NAMA='test';
|
DML pada Oracle
Query
|
Fungsi
|
Contoh
|
SELECT
|
Menampilkan data
|
SELECT * FROM user WHERE
total_transaksi = 0
|
INSERT
|
Memasukkan data
|
INSERT INTO TEST (NAMA, ALAMAT,
PASSWORD) VALUES ('test', 'alamat', 'pass');
|
UPDATE
|
Mengupdate data
|
UPDATE Msuser set
password="123456" where username="abc"
|
DELETE
|
Menghapus Data
|
DELETE FROM test WHERE NAMA='test';
|
Stored Procedure
Stored Procedure adalah kumpulan
perintah SQL yang diberi nama dan disimpan di server. Stored Procedure biasanya
berisi perintah-perintah umum yang berhubungan dengan database pada server, dan
menghasilkan sekumpulan record. Stored Procedure ditulis dalam bentuk sebuah
script. Dalam SQL Server store procedure memiliki kemampuan antara lain :
1. Menerima parameter input dan mengembalikan beberapa nilai parameter output
dari procedure yang dipanggil.
2. Mengandung statement pemrograman yang melakukan operasi terhadap database
termasuk memanggil store procedure lain.
3. Memberikan status yang mengindikasikan keberhasilan atau kegagalan eksekusi
store procedure
Keuntungan pemakaian store procedure
adalah :
1. Merupakan
pemrograman modular
2. Store
procedure dibuat sekali dan dapat dipakai berulang untuk komputasi yang sama
3. Memungkinkan
eksekusi lebih cepat
4. Ketika
pertama kali dijalankan store procedure akan tersimpan dalam memori. Sehingga
memungkinkan eksekusi berikutnya lebih cepat.
5. Mengurangi
trafik jaringan
6. Barisan
kode transact SQL yang seharusnya dilewatkan jaringan, akan digantikan dengan
statement tunggal pemanggilan store procedure
7. Dapat
digunakan sebagai mekanisme sekuriti
8. Pengguna
dimungkinkan mengeksekusi Store procedure, walau mungkin tidak dapat
mengeksekusi procedure didalamnya secara langsung.
Tipe Data Pada MySQL
Berikut ini
akan diberikan tipe-tipe data yang didukung oleh MySQL yang terambil dari
dokumentasi MySQL. Tipe - tipe data ini diberikan dalam bentuk yang siap
dituliskan pada sintaks-sintaks MySQL, misalnya Create Table. Pada tipe-tipe
data tersebut terdapat beberapa atribut yang memiliki arti sebagai berikut:
- M, menunjukkan lebar karakter maksimum. Nilai M
maksimum adalah 255.
- D, menunjukkan jumlah angka di belakang
koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak
boleh lebih besar daripada M-2.
- Atribut yang diberi tanda [ dan ] berarti
pemakaiannya adalah optional.
- Jika atribut ZEROFILL disertakan, MySQL akan
otomatis menambahkan atribut UNSIGNED.
- UNSIGNED adalah bilangan tanpa tanda di depannya
(misalnya tanda negatif).
Inilah
tipe-tipe data tersebut:
- TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang
sangat kecil jangkauan nilainya, yaitu -128 hingga 127. Jangkauan unsigned
adalah 0 hingga 255.
- SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang
kecil jangkauan nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah
0 hinga 65535.
- MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Integer
tingkat menengah. Jangkauan nilainya adalah -8388608 hingga 8388607. Jangkauan
unsigned adalah 0 hingga 16777215.
- INT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang
berukuran normal. Jangkauan nilainya adalah -2147483648 hingga 2147483647.
Jangkauan unsigned adalah 0 hingga 4294967295.
- INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Sama dengan
INT.
- BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Integer
berukuran besar. Jangkauan nilainya adalah -9223372036854775808 hingga
9223372036854775807. Jangkauan unsigned adalah 0 hingga 18446744073709551615.
- FLOAT(precision) [ZEROFILL]
Bilangan
floating-point. Tidak dapat bersifat unsigned. Nilai atribut precision adalah
<=24 untuk bilangan floating-point presisi tunggal dan di antara 25 dan 53
untuk bilangan floating-point presisi ganda.
- FLOAT[(M,D)] [ZEROFILL]
Bilangan
floating-point presisi tunggal. Tidak dapat bersifat unsigned. Nilai yang
diijinkan adalah -3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0,
and 1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.
- DOUBLE[(M,D)] [ZEROFILL]
Bilangan
floating-point presisi ganda. Tidak dapat bersifat unsigned. Nilai yang
diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk
nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308
untuk nilai positif.
- DOUBLE PRECISION[(M,D)] [ZEROFILL] dan
REAL[(M,D)] [ZEROFILL]
Keduanya
sama dengan DOUBLE.
- DECIMAL[(M[,D])] [ZEROFILL]
Bilangan
floating-point yang “unpacked”. Tidak dapat bersifat unsigned. Memiliki sifat
mirit dengan CHAR. Kata “unpacked'' berarti bilangan disimpan sebagai string,
menggunakan satu karakter untuk setiap digitnya. Jangkauan nilai dari DECIMAL
sama dengan DOUBLE, tetapi juga tergantung dai nilai atribut M dan D yang
disertakan. Jika D tidak diisi akan dianggap 0. Jika M tidak diisi maka akan
dianggap 10. Sejak MySQL 3.22 nilai M harus termasuk ruang yang ditempati oleh
angka di belakang koma dan tanda + atau -.
- NUMERIC(M,D) [ZEROFILL]
Sama dengan
DECIMAL.
- DATE
Sebuah
tanggal. MySQL menampilkan tanggal dalam format 'YYYY-MM-DD'. Jangkauan
nilainya adalah '1000-01-01' hingga '9999-12-31'.
- DATETIME
Sebuah
kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal
dalam format 'YYYY-MM-DD HH:MM:SS'. Jangkauan nilainya adalah '1000-01-01
00:00:00' hingga '9999-12-31 23:59:59'.
- TIMESTAMP[(M)]
Sebuah
timestamp. Jangkauannya adalah dari '1970-01-01 00:00:00' hingga suatu waktu di
tahun 2037. MySQL menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS,
YYMMDDHHMMSS, YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau
tidak ditulis), 12, 8, atau 6.
- TIME
Tipe data
waktu. Jangkauannya adalah '-838:59:59' hingga '838:59:59'. MySQL menampilkan
TIME dalam format 'HH:MM:SS'.
- YEAR[(2|4)]
Angka tahun,
dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin
adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format
2-digit (70-69).
- CHAR(M) [BINARY]
String yang
memiliki lebar tetap. Nilai M adalah dari 1 hingga 255 karakter. Jika ada sisa,
maka sisa tersebut diisi dengan spasi (misalnya nilai M adalah 10, tapi data
yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan
spasi). Spasi ini akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan
disortir dan diperbandingkan secara case-insensitive menurut default character
set yang tersedia, kecuali bila atribut BINARY disertakan.
- VARCHAR(M) [BINARY]
String
dengan lebar bervariasi. Nilai M adalah dari 1 hingga 255 karakter. Jika nilai
M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka
lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.
- TINYBLOB dan TINYTEXT
Sebuah BLOB
(semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
- BLOB dan TEXT
Sebuah BLOB
atau TEXT dengan lebar maksimum 65535 (2^16 - 1) karakter.
- MEDIUMBLOB dan MEDIUMTEXT
Sebuah BLOB
atau TEXT dengan lebar maksimum 16777215 (2^24 - 1) karakter.
- LONGBLOB dan LONGTEXT
Sebuah BLOB
atau TEXT dengan lebar maksimum 4294967295 (2^32 - 1) karakter.
- ENUM('value1','value2',...)
Sebuah
enumerasi, yaitu objek string yang hanya dapat memiliki sebuah nilai, dipilih
dari daftar nilai 'value1', 'value2', ..., NULL atau nilai special ""
error. Sebuah ENUM maksimum dapat memiliki 65535 jenis nilai.
- SET('value1','value2',...)
Sebuah set,
yaitu objek string yang dapat memiliki 0 nilai atau lebih, yang harus dipilih
dari daftar nilai 'value1', 'value2', .... Sebuah SET maksimum dapat memiliki
64 anggota.
Tipe Data pada SQL Server
·
Bit
Tipe
data bit hanya bisa menerima input angka 1 dan 0 sebagai nilai (atau bisa juga
null, yang berarti tidak ada nilai). Tipe data ini sangat membantu jika Anda
ingin menghasilkan output yes/no, true/false, dsb.
·
Int
Tipe data ini mungkin sudah banyak
dikenal oleh Anda. Tipe data ini dapat menerima nilai mulai dari -231(-2,147,483,648) hingga 231-1 (2,147,483,647). Tipe data ini menghabiskan 4
bytes untuk menyimpan data pada harddisk.
·
Bigint
Tipe data ini mirip dengan int, hanya
saja nilai yang diterima lebih besar daripada int. Tipe data ini dapat menerima
nilai mulai dari -263 (-9,223,372,036,854,775,808) hingga 263-1 (-9,223,372,036,854,775,807). Tipe data ini
menghabiskan 8 bytes untuk menyimpan data pada harddisk.
·
Smallint
Tipe data ini juga mirip dengan int,
hanya saja nilai yang diterima lebih kecil dari int. Tipe data ini dapat
menerima nilai mulai dari -215 (-32,768) hingga 215-1 (32767). Tipe data ini hanya membutuhkan 2
bytesuntuk menyimpan data pada harddisk.
·
Tinyint
Tipe data ini menerima nilai yang lebih
kecil dari smallint. Nilai yang bisa diterima mulai dari 0 hingga 255, dan
hanya membutuhkan 1 bytes untuk menyimpan data pada harddisk.
·
Decimal
Tipe data ini menerima nilai yang lebih
presisi dibanding tipe data integer yang telah dibahas sebelumnya. Tipe data
ini menggunakan 2 parameter untuk menentukan tingkat presisi nilai yang
diterima; precision dan
scale. Precision adalah jumlah digit yang bisa diterima
oleh field, sedangkanscale adalah
jumlah angka di belakang koma yang bisa diterima oleh field. Jadi, jika kita
membuat parameter precision sebanyak 5 dan scale sebanyak
2 maka field kita
bisa menerima nilai seperti ini : 123,45. Tipe data ini bisa menerima nilai
mulai dari -1038hingga 1038-1. Tipe data ini menghabiskan 5-17 bytes untuk
menyimpan data pada harddisk, tergantung pada tingkat kepresisian nilai yang
dimasukkan.
·
Numeric
Tipe data ini pada dasarnya sama dengan
tipe data decimal. Jadi tipe data ini bisa disebut sinonim dari decimal.
·
Money
Tipe data ini dapat menerima nilai mulai
dari -263 (-9,223,372,036,854,775,808)
hingga 263-1 (-9,223,372,036,854,775,807). Tipe data ini
menghabiskan 8 bytes untuk menyimpan data pada harddisk.
·
Smallmoney
Tipe data ini pada dasarnya sama dengan
tipe data money, hanya saja nilai yang diterima lebih kecil, yaitu mulai dari
-214,748.3648 hingga 214,748.3647. Tipe data ini menghabiskan 4 bytes untuk
menyimpan data pada harddisk.
·
Float
Tipe data ini mirip dengan tipe data
decimal, hanya saja paramater scale pada tipe data ini bisa menerima nilai
yang tak terhingga, seperti pada nilai pi. Tipe data ini bisa menerima nilai
mulai dari -1.79E + 308 hingga 1.79E +308. Jika Anda mendeskripsikan field dengan
tipe data seperti ini : float(2), maka nilai output dari pi (misalnya) adalah
3,14. Angka 2 di dalam kurung menjelaskan berapa banyak angka yang harus
ditampilkan dibelakang koma. Tipe data ini menghabiskan 4-8 bytes untuk
menyimpan data pada harddisk.
·
Real
Tipe data ini mirip dengan tipe data
float, hanya saja menerima nilai yang lebih kecil dibandingkan dengan float,
yaitu mulai dari -3.40E +38 hingga 3.40E +38. Tipe data ini menghabiskan 4
bytes untuk
menyimpan data pada harddisk
·
Datetime
Tipe data ini dapat menerima nilai
tanggal dan waktu mulai dari 1 Januari 1753 hingga 31 Desember 9999. Tipe data
ini menghabiskan 8 bytes untuk menyimpan data pada harddisk.
·
Smalldatetime
Tipe data ini dapat menerima tanggal dan
waktu mulai dari 1 Januari 1900 hingga 6 Juni 2079, dengan akurasi waktu yang
digunakan adalah menit. Tipe data ini menghabiskan 4 bytes untuk
menyimpan data pada harddisk.
·
Timestamp
Tipe
data ini digunakan untuk mencatat record ketika data baru dimasukkan dan
diupdate. Tipe data ini sangat berguna untuk mencari tahu perubahan yang
terjadi pada database Anda.
·
Uniqueidentifier
Tipe
data ini berfungsi untuk membuat nilai yang unik yang mungkin bisa tampil
seperti ini 6F9619FF-8B86-D011-B42D-00C04FC964FF. Tipe data ini berguna jika
Anda ingin membuat serial number atau id yang unik.
·
Char
Tipe data ini dapat digunakan untuk
memasukkan data karakter non-Unicode dengan jumlah karakter yang fix. Tipe data
ini bisa menerima hingga 8000 karakter, dan jumlah bytes yang
dibutuhkan tergantung jumlah karakter yang dimasukkan. 1 karakter membutuhkan 1
bytes, sehingga jika Anda mendefinisikan seperti ini : char(5) maka field tersebut
hanya bisa menerima karakter sebanyak 5 buah karakter dengan space yang
dibutuhkan untuk menyimpan data pada harddisk sebanyak 5 bytes.
·
Varchar
Tipe data ini mirip dengan tipe data
char, namun tipe data ini berguna bagi Anda yang tidak mengetahui secara pasti
jumlah karakter yang akan dimasukkan oleh user. Tipe data ini juga bisa
menerima nilai hingga 8000 karakter. Jadi, jika pada tipe data char, Anda
mendefinisikan char(5), maka Anda akan selalu membutuhkan 5 bytes untuk
menyimpan data pada harddisk, walaupun jumlah karakter yang dimasukkan hanya 1
hingga 4 karakter; maka pada tipe data ini, jumlah bytes yang
dibutuhkan akan lebih fleksibel. Misalnya jika Anda mendefinisikan varchar(30)
untuk sebuah field, maka field tersebut dapat menerima data hingga 30
karakter (30 bytes), namun jika Anda hanya memasukkan 1 karakter, maka jumlah
bytes yang
dibutuhkan hanya sebanyak 1 bytes.
·
Varchar(max)
Tipe data ini juga mirip dengan varchar,
hanya saja, nilai yang bisa diterima mencapai 231-1(2,147,438,67)
bytes data.
·
Nchar
Tipe data ini mirip dengan tipe data
char, namun tipe data ini bisa menerima nilai atau data Unicode (berbeda dengan
tipe data char yang hanya bisa menerima nilai karakter non-Unicode). Tipe data
ini bisa menerima nilai hingga 4000 karakter. Tipe data ini menghabiskan 2-8000
bytes untuk
menyimpan data pada harddisk. Mengapa dibutuhkan 2-8000 bytes? Karena tipe data
ini mengkali 2 bytes untuk setiap karakternya. Jadi jika user hanya
memasukkan 1 karakter, maka dibutuhkan 2 bytes untuk
menyimpan data pada harddisk.
·
Nvarchar
Tipe
data ini mirip dengan tipe data varchar, namun tipe data ini bisa menerima
nilai atau data Unicode. Tipe data ini juga bisa menerima nilai hingga 4000
karakter.
·
Nvarchar(max)
Tipe data ini mirip dengan tipe data
varchar(max), namun tipe data ini bisa menerima nilai atau data Unicode. Tipe
data ini bisa menerima karakter hingga 231-1
(2,147,483,67) bytes data.
·
Binary
Tipe data ini dapat menerima data binary
dengan maksimum 8000 bytes data. Tipe data ini diinterpretasikan
sebagai string dari bit misalnya (110011001011).
·
Varbinary
Tipe data ini mirip dengan varchar,
hanya saja nilai yang bisa diterima hanya data binary. Tipe data ini berguna
untuk menyimpan data binary yang tidak diketahui dengan pasti jumlah bytes datanya.
·
Xml
Tipe
data ini berguna untuk menyimpan data dalam format XML Document. Tipe data ini
dapat menyimpan data hingga 2Gb. Tipe data ini merupakan tipe data baru yang
terdapat di SQL Server 2005.
·
SQL_Variant
Tipe
data ini merupakan tipe data baru di SQL Server 2005, saya pribadi belum
mengetahui dengan pasti kapan saat yang tepat untuk mengimplementasikan tipe
data ini. Tipe data ini disebutkan dapat digunakan untuk mengubah tipe data
sesuai dengan apa yang dimasukkan oleh user. Mungkin, ilustrasinya seperti ini
: jika user memasukkan angka ke dalam field dengan tipe data ini, maka
SQL_Variant akan menyesuaikan menjadi int atau tipe data lain yang lebih sesuai
(seperti varchar), tapi jika kemudian user mengisi field tersebut dengan tipe
data char, sql_variant akan mengubahnya tipe data field untuk row tersebut
menjadi char. Tipe data ini sebenarnya kurang disarankan untuk digunakan karena
tidak adanya batasan yang jelas dalam penggunaannya, dan dapat menyebabkan
collision data.
·
Image
Mendefinisikan
binary data untuk menyimpan image seperti GIF, JPG, TIFF,dll.
·
Text
Menyimpan
teks sampai dengan 2 GB. Text disebut juga dengan binary large objects (BLOBs).
No comments:
Post a Comment