Pages

Monday, March 18, 2013

SQL


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