Jenis Data, Kolom, Operator dan Fungsi
JENIS DATA Secara umum jenis data pada MySQL dibagi menjadi 4 jenis, yaitu: • Numeric Values, yaitu angka atau bilangan. • String/Character Values, yaitu teks atau karakter. • Date and Time Values, yaitu tanggal dan waktu. • NULL
Jenis Data Cont..
Numeric Values • Numeric Values, adalah angka atau bilangan seperti 10; 123; 100.50; -1 0; 1.2E+17; 2.7e-11; dan sebagainya. • Jenis data bilangan dibagi lagi menjadi dua, yaitu Bilangan Bulat (integer) dan Bilangan Pecahan (Floating point). Kedua jenis bilangan ini dapat bernilai positif (+) dan juga negatif (-). • Jika bilangan tersebut menggunakan tanda (+) atau (-), maka disebut SIGNED. Sebaliknya, bila tanpa tanda apapun disebut UNSIGNED. Karena tanda (+) dapat diabaikan penulisannya, maka pada bilangan yang bernilai positif disebut juga unsigned.
Character Values
Jenis Data Cont..
• adalah semua karakter (atau teks) yang penulisannya diapit oleh tanda kutip, baik kutip tunggal maupun kutip ganda. • Untuk angka yang ditulis dengan tanda kutip akan dianggap sebagai karakter atau string (bukan Numeric Values). • Contoh penulisan teks yang benar adalah sebagai berikut: • "Jl. Surabaya No. 34" • 'Kota Malang' • "Saya suka masakan ini" • ‘123456' • "Saya akan berkunjung ke rumahmu pada hari Jum'at depan"
Date and Time Values,
Jenis Data Cont..
• format standar (default) penulisan tanggal adalah "Tahun-Bulan-Tangg al" (“YYYY-MM-DD”). • Misalkan untuk 22 Januari 2002, dituliskan "2002-01-22". Untuk menam pilankannya, kita bisa menggunakan fungsi DATE_FORMAT() yang dapat disesuaikan dengan kebutuhan kita. • Untuk penulisan waktu, formatnya adalah "Jam:Menit:Detik" (“HH:MM:SS ”). Contoh, "13:55:07". Data tanggal dan waktu bisa digabung penulisan-nya, menjadi “2002-01-22 13:55:07”.
NULL
Jenis Data Cont..
• NULL sebenarnya bukan data, tapi dia mewakili sesuatu yang "tidak pasti", 'tidak diketahui", atau “belum ada nilainya”. • NULL tidak identik dengan angka NOL (0). • Sebagai contoh, selama melakukan survei mengenai berapa jumlah peng guna sistem operasi Linux dan Windows di Indonesia, data pastinya bel-u m dapat diketahui sebelum survei tersebut dilakukan secara tuntas. Oleh sebab itu, data tersebut bisa diwakili dengan NULL, alias belum diketahui atau kosong.
Attribut Kolom/Field Pada MySQL • Jenis kolom merupakan rincian dari tipe/jenis data yang diterapkan pada setiap kolom sebuah tabel. • Sedangkan Atribut merupakan pelengkap dari karakteristik sebuah kolom/field.
• Pengisian attribut tambahan bersifat optional.
Auto Increment
Atribut/Kolom Cont..
• Digunakan untuk menaikan nilai sebuah kolom numerik secara otomatis dengan perta mbahan nilai 1, dengan nilai awal yang digunakan pada kolom tersebut adalah 1. • Hal yang perlu diperhatikan saat menggunakan atribut AUTO_INCREMENT, yaitu: 1) Hanya bisa digunakan pada jenis kolom Integer. 2) Dalam satu tabel hanya boleh ada satu kolom yang menggunakan atribut auto-in crement. 3) Kolom tersebut harus bersifat unik (unique) atau berstatus Primary Key. 4) Kolom tersebut tidak boleh bersifat NULL (atribut lainnya harus NOT NULL) Contoh: C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p Enter password: rootpassword mysql>USE mydatabase; mysql>CREATE TABLE mytable1 ->(nip INT UNSIGNED AUTO_INCREMENT PRIMARY KEY);
Signed dan Unsigned
Atribut/Kolom Cont..
• Signed digunakan apabila kolom numeric baik bilangan bulat maupun pecahan tersebut dapat memiliki nilai negative, karena akan menggunakan tanda minus (-). • Unsigned digunakan apabila kolom numeric tersebut tidak me miliki nilai negatif (hanya positif saja). Oleh karena itu disebut tidak bertanda atau unsigned.
NULL / NOT NULL dan Default
Atribut/Kolom Cont..
• Secara default setiap kolom selalu bersifat NULL, bila kita ti -dak memberikan atau menyatakan nilai awalnya. Sebaliknya , bila kita menyatakan sebagai NOT NULL, maka sebaiknya kolom tersebut harus memiliki sebuah nilai default. • Digunakan untuk mendeklarasikan nilai standar yang berlaku pada suatu kolom, bila tidak ada isian data yang kita masukkan.
Zerofill
Atribut/Kolom Cont..
• Digunakan untuk memberikan angka nol (0) di depan nilai numeric pada suatu kolom numeric. Contoh : mysql>CREATE TABLE myzerotable (columnzero INT(5) ZEROFILL); mysql>INSERT INTO myzerotable VALUES (1), (20), (300), (4000), (50000 ), 600000); mysql>SELECT FROM myzerotable;
Tabel : Tipe Data Numerik Jenis Kolom Bentuk Penulisan TINYINT SMALLINT MEDIUMINT
INT BIGINT
FLOAT
Jangkauan Nilai
Ukuran
TINYINT [(M)] [UNSIGNED] [ZEROFILL] SMALLINT [(M)] [UNSIGNED] [ZEROFILL] MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL]
Bilangan bulat dengan kisaran nilai: SIGNED: -128 s/d 127 UNSIGNED: 0 s/d 255 Bilangan bulat dengan kisaran nilai: SIGNED: -32768 s/d 32767 UNSIGNED: 0 s/d 65535 Bilangan bulat dengan kisaran nilai: SIGNED: -8388608 s/d 8388607 UNSIGNED: 0 s/d 1677215
1 Byte
INT [(M)] [UNSIGNED] [ZEROFILL] BIGINT [(M)] [UNSIGNED] [ZEROFILL]
Bilangan bulat dengan kisaran nilai SIGNED:-2147683648 s/d 2147683647 UNSIGNED: 0 s/d 4294967295 Bilangan bulat dengan kisaran nilai: SIGNED: -9223372036854775808 s/d 9223372036854775807 UNSIGNED:0 s/d 18446744073709551615 Bilangan pecahan presisi tunggal (single precision) dengan kisaran nilai: Nilai minimum (tanpa nilai no])
4 Byte
FLOAT [(M,D)] [UNSIGNED] [ZEROFILL] atau FLOAT(4)
DOUBLE
DOUBLE [(M,D)] [UNSIGNED] [ZEROFILL] atau FLOAT(8)
DECIMAL
DECIMAL [(M,D)]
1.175494351E-38 Nilai maksimum (tanpa nilai no]) 6.402823466E+38 Bilangan pecahan presisi ganda (double precision) dengan kisaran nilai: Nilai minimun (tanpa nilai nol) 2.2250738580720E-308 Nilai maksimum (tanpa nilai nol) ±1.7976931348623157E+308 Bilangan desimal, dengan nilai M Byte tergantung pada besaran M dan D.
2 Byte 3 Byte
8 Byte
4 Byte
8 Byte
M Byte
Tabel : Tipe Data String/Character Jenis Kolom
Bentuk Penulisan
CHAR
CHAR(M)
VARCHAR
VARCHAR(M)
Keterangan Ukuran Data string dengan lebar data yang tetap(M). M Byte Maksimum lebar data 255 karakter Data string dengan lebar data yang bervariasi(M). M Byte Maksimum lebar data 255 karakter
Tabel : Tipe Data BLOB dan Text Jenis Kolom
Keterangan
Ukuran
TINYBLOB
Data binary dengan lebar data maksimum 255 karakter
M+1 Byte
BLOB
Data binary dengan lebar data maksimum 65.535 karakter
M+2 Byte
MEDIUMBLOB
Data binary dengan lebar data maksimum 16.777.215 karakter
M+3 Byte
LONGBLOB
Data binary dengan lebar data maksimum 4.294.967.295 karakter
M+4 Byte
TINYTEXT
Data text dengan lebar data maksimum 255 karakter
M+1 Byte
TEXT
Data text dengan lebar data maksimum 65.535 karakter
M+2 Byte
MEDIUMTEXT
Data text dengan lebar data maksimum 16.777.215 karakter
M+3 Byte
LONGTEXT
Data text dengan lebar data maksimum 4.294.967.295 karakter
M+4 Byte
Contoh pendeklarasian tipe data ENUM ; •Jenis_Kelamin ENUM(“L”, “P”) •Status_Pernikahan ENUM(“Menikah”, ”Lajang”, ”Janda”, ”Duda”) •Status_Karyawan ENUM(“Karyawan Tetap”, “Karyawan Honorer”) •Ukuran_Baju ENUM(“S”, ”M”, ”L”, ”XL”) mysql>CREATE TABLE mytable1 ->(nip INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, ->nama VARCHAR(35) NOT NULL, ->tmp_lahir VARCHAR(35) NOT NULL, ->tgl_lahir DATE NULL DEFAULT “0000-00-00”, ->kelamin ENUM(‘L’,’P’), ->alamat VARCHAR(35) NOT NULL);
ENUM dan SET • ENUM (enumeration) dan SET (himpunan) adalah jenis string khusus. Kolomnya harus diisi dengan pilihan yang sudah ditentukan pada saat deklarasi ENUM dan SET • Perbedaan diantara kedua tipe data tersebut adalah, pada ENUM hanya bisa dipilih salah satu dari pilihan yang ada. Sedangkan pada SET, dapat dipilih satu atau lebih dari pilihan yang ada. Tabel : Tipe Data ENUM dan SET Jenis Kolom ENUM
Bentuk Dasar ENUM(nilai1, nilai2, nilaiN)
Keterangan ….., Hanya dapat menampung 1 data saja dari pilihan data yang ada atau NULL, dengan jumlah pilihan maksimum 65.535 pilihan data.
SET
SET(nilai1, nilai2, ….., nilaiN)
Dapat menampung lebih dari 1 data saja dari pilihan data yang ada atau NULL, dengan jumlah pilihan maksimum 64 pilihan data.
Date dan Time Jenis Kolom DATE
Bentuk Penulisan -
Keterangan Digunakan untuk tanggal dengan format
Ukuran 3 Byte
"YYYY-MM-DD". Batasan nilai dari “1000-01-01” s/d "9999-12-31” DATETIME
-
Digunakan untuk tanggal dan waktu dengan 8 Byte format penulisan “YYYY-MM-DD HH:MM:SS". Batasan nilai dari “1000-01-01 00:00:00” s/d “9999-12-31 23:59:59”.
TIME
-
Digunakan untuk waktu dengan format penulisan 3 Byte “HH:MM:SS”.
TIMESTAMP
TIMESTAMP[(M)]
Digunakan untuk penulisan waktu dan tanggal, dengan format penulisan “YYYYMMDDhhmmss”.
4 Byte
YEAR
YEAR[(2)|(4)]
Digunakan untuk penulisantahun, dengan
1 Byte
format penulisan “YYYY”. Jangkauan mulai dari tahun 1901 s/d 2155 untuk 4 digit. Dan dari 1970 sampai dengan 2069 untuk format 2 digit (ditulis 70 s/d 69).
Jenis Operator pada MySQL Operator Logika Operator
Contoh
Fungsi
NOT atau ! OR atau ||
AND atau &&
Sebagai NEGASI (bukan) dari suatu nilai NOT Perempuan atau !Perempuan ATAU, akan bernilai benar bila salah satu Buah=”Jambu” OR Buah=”Mangga” atau kedua ekspresi adalah benar. Atau Buah=”Jambu” || Buah=”Mangga” DAN, akan bernilai benar hanya bila Buah=”Jambu” AND Hewan=”Monyet” ekspresi adalah benar. Atau Buah=”Jambu” && Hewan=”Monyet”
Operator Aritmatika Operator
+ * / %
Fungsi
Melakukan penjumlahan pada operasi matematika Melakukan pengurangan pada operasi matematika Melakukan perkalian pada operasi matematika Melakukan pembagian pada operasi matematika Melakukan proses modulus (mencari sisa bagi) pada operasi matematika
Operator Pembanding Operator
Contoh
Fungsi
Nama=”anwar” = > < >= <= != atau <>
Sama dengan Lebih dari Kurang dari Lebih dari atau sama dengan Kurang dari atau sama dengan
Harga=45610 TinggiBadan>150 TinggiBadan<150 TinggiBadan>=150 TinggiBadan<=150 Nama!=”anwar”
Tidak sama dengan
Harga<>100 3!=2
IS NOT NULL IS NULL BETWEEN … AND IN NOT IN LIKE NOT LIKE REGEXP NOT REGEXP <=>
Apakah nilai tidak NULL Apakah nilai NULL Apakah suatu nilai berada diantara nilai Apakah suatu nilai berada diantara nilai pilihan yang ada
Nama IS NOT NULL Nama IS NULL Harga BETWEEN 150 AND 500 Nama IN (“Anwar”, “Amir”)
Apakah suatu nilai tidak berada diantara nilai pilihan yang Nama NOT IN (“Anwar”, “Amir” ada Nama LIKE “An%” Apakah suatu nilai memiliki kriteria nilai yang ada Nama NOT LIKE “An%” Apakah suatu nilai tidak memiliki kriteria nilai yang ada Nilai menjadi benar bila kedua nilai tersebut sama Nilai menjadi benar bila kedua nilai tersebut tidak sama Nilai menjadi benar bila kedua nilai tersebut sama
a REGEXP b a NOT REGEXP b a <=> b
Latihan Praktek Membuat Database mysql>CREATE DATABASE ujimhsdb; mysql>USE ujimhsdb;
Membuat Tabel mysql>CREATE TABLE dosen ->(kode_dosen VARCHAR(5) NOT NULL PRIMARY KEY, ->nama_dosen VARCHAR(35) NOT NULL, ->kelamin ENUM(‘L’,’P’), ->tmp_lahir VARCHAR(35) NOT NULL, ->tgl_lahir DATE NULL DEFAULT “0000-00-00”, ->alamat VARCHAR(50) NOT NULL);
Mengisi Record mysql>INSERT INTO dosen ->VALUES (‘D1001’,’Roy Markun’,’L’,’Bogor’,’1969-01-23’,’Jl. Mayjend. Sungkono 93’); atau mysql>INSERT INTO dosen (kode_dosen, nama_dosen, kelamin, tgl_lahir, alamat) ->VALUES (‘D1001’,’Roy Markun’,’L’,’Bogor’,’1969-01-23’,’Jl. Mayjend. Sungkono 93’); atau mysql>INSERT INTO dosen SET ->kode_dosen=‘D1001’, ->nama_dosen=’Roy Markun’, ->kelamin=’L’, ->tmp_lahir=’Bogor’, ->tgl_lahir=’1969-01-23’, ->alamat=’Jl. Mayjend. Sungkono 93’; kode_dosen D1001 D1002 D1003 D1004 D1005 D1006 D2001 D2002 D2003
nama_dosen Roy Markun Ginanjar Gina Sonia Ian Antono Indri Jelita Desi Ratnasari Moh. Umar Aisyah Kamila Ika Nurul
kelamin tmp_lahir L L P L P Bengkulu P P L P
tgl_lahir 1969-01-23 1971-03-21 1962-09-12 1970-10-11 1973-07-19 1970-11-09 1973-12-25 1968-10-03 1971-10-10
alamat Jl. Mayjend. Sungkono 93 Jl. Ahmad Yani 100 Jl. Citarum 53 Jl. Raden Saleh II/42 Jl. Ahmad Yani 21 Jl. Mayjend. Panjaitan 45 Jl. Citandui 52 Jl. Panglima Sudirman 15 Jl. Sidodadi 76
Membuat Tabel mysql>CREATE TABLE copy_dosen SELECT * FROM dosen;
Mengganti Nama Tabel mysql>ALTER TABLE copy_dosen RENAME dosen_copy; mysql>RENAME TABLE dosen_copy TO copy_dosen;
Menghapus Tabel mysql>DROP TABLE copy_dosen;
Menduplikasi Tabel mysql>CREATE TABLE copy_dosen SELECT * FROM dosen;
Mengganti Nama dan Tipe Data Field mysql>CREATE TABLE dosen_copy SELECT * FROM dosen; mysql> ALTER TABLE dosen_copy CHANGE COLUMN nama_dosen nama_dsn -> VARCHAR(45); mysql> ALTER TABLE dosen_copy MODIFY COLUMN nama_dsn CHAR(45); mysql> ALTER TABLE dosen_copy CHANGE COLUMN nama_dsn nama_dosen -> VARCHAR(45);
Menambah Field mysql> ALTER TABLE dosen_copy ADD COLUMN kota VARCHAR(45) AFTER -> alamat, ADD COLUMN telpon VARCHAR(13) AFTER kota;
Merubah Urutan Field mysql> ALTER TABLE dosen_copy MODIFY nama_dosen VARCHAR(45) FIRST; mysql> ALTER TABLE dosen_copy MODIFY kelamin ENUM(‘L’, ’P’) AFTER tgl_lahir; mysql> ALTER TABLE dosen_copy MODIFY kode_dosen VARCHAR(5) FIRST;
Menghapus Field mysql> ALTER TABLE dosen_copy DROP COLUMN kota, DROP COLUMN telpon;