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; ‑10; 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‑Tanggal" (“YYYY-MM-DD”). Misalkan untuk 22 Januari 2002, dituliskan "2002‑01‑22". Untuk menampilankannya, 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 NULL sebenarnya bukan data, tapi dia mewakili sesuatu yang "tidak Jenis Data Cont.. NULL 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 pengguna sistem operasi Linux dan Windows di Indonesia, data pastinya bel-um dapat diketahui sebelum survei tersebut dilakukan secara tuntas. Oleh sebab itu, data tersebut bisa diwakili dengan NULL, alias belum dike-tahui 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 pertambahan nilai 1, dengan nilai awal yang digunakan pada kolom tersebut adalah 1. Hal yang perlu diperhatikan saat menggunakan atribut AUTO_INCREMENT, yaitu: Hanya bisa digunakan pada jenis kolom Integer. Dalam satu tabel hanya boleh ada satu kolom yang menggunakan atribut auto‑increment. Kolom tersebut harus bersifat unik (unique) atau berstatus Primary Key. 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);
Atribut/Kolom Cont.. Signed dan Unsigned 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 memiliki nilai negatif (hanya positif saja). Oleh karena itu disebut tidak bertanda atau unsigned.
NULL / NOT NULL dan Default Atribut/Kolom Cont.. NULL / NOT NULL dan Default 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.
Atribut/Kolom Cont.. Zerofill 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 Jangkauan Nilai Ukuran TINYINT TINYINT [(M)] [UNSIGNED] [ZEROFILL] Bilangan bulat dengan kisaran nilai: SIGNED: ‑128 s/d 127 UNSIGNED: 0 s/d 255 1 Byte SMALLINT SMALLINT [(M)] SIGNED: ‑32768 s/d 32767 UNSIGNED: 0 s/d 65535 2 Byte MEDIUMINT MEDIUMINT [(M)] SIGNED: ‑8388608 s/d 8388607 UNSIGNED: 0 s/d 1677215 3 Byte INT INT [(M)] Bilangan bulat dengan kisaran nilai SIGNED:‑2147683648 s/d 2147683647 UNSIGNED: 0 s/d 4294967295 4 Byte BIGINT BIGINT [(M)] SIGNED: ‑9223372036854775808 s/d 9223372036854775807 UNSIGNED:0 s/d 18446744073709551615 8 Byte FLOAT FLOAT [(M,D)] atau FLOAT(4) Bilangan pecahan presisi tunggal (single precision) dengan kisaran nilai: Nilai minimum (tanpa nilai no]) 1.175494351E‑38 Nilai maksimum (tanpa nilai no]) 6.402823466E+38 DOUBLE DOUBLE [(M,D)] FLOAT(8) 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 DECIMAL DECIMAL [(M,D)] Bilangan desimal, dengan nilai M Byte tergantung pada besaran M dan D. M Byte
Tabel : Tipe Data String/Character Tabel : Tipe Data BLOB dan Text Jenis Kolom Bentuk Penulisan Keterangan Ukuran CHAR CHAR(M) Data string dengan lebar data yang tetap(M). Maksimum lebar data 255 karakter M Byte VARCHAR VARCHAR(M) Data string dengan lebar data yang bervariasi(M). 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 TEXT Data text dengan lebar data maksimum 65.535 karakter MEDIUMTEXT Data text dengan lebar data maksimum 16.777.215 karakter LONGTEXT Data text dengan lebar data maksimum 4.294.967.295 karakter
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);
Tabel : Tipe Data 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 Bentuk Dasar Keterangan ENUM ENUM(nilai1, nilai2, ….., nilaiN) 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 Bentuk Penulisan Keterangan Ukuran DATE - Digunakan untuk tanggal dengan format "YYYY‑MM‑DD". Batasan nilai dari “1000‑01‑01” s/d "9999‑12‑31” 3 Byte DATETIME Digunakan untuk tanggal dan waktu dengan 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”. 8 Byte TIME Digunakan untuk waktu dengan format penulisan “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 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). 1 Byte
Jenis Operator pada MySQL Operator Logika Operator Fungsi Contoh NOT atau ! Sebagai NEGASI (bukan) dari suatu nilai NOT Perempuan atau !Perempuan OR atau || ATAU, akan bernilai benar bila salah satu atau kedua ekspresi adalah benar. Buah=”Jambu” OR Buah=”Mangga” Atau Buah=”Jambu” || Buah=”Mangga” AND atau && DAN, akan bernilai benar hanya bila ekspresi adalah benar. Buah=”Jambu” AND Hewan=”Monyet” 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 Fungsi = Sama dengan Nama=”anwar” Contoh = Sama dengan Nama=”anwar” Harga=45610 > Lebih dari TinggiBadan>150 < Kurang dari TinggiBadan<150 >= Lebih dari atau sama dengan TinggiBadan>=150 <= Kurang dari atau sama dengan TinggiBadan<=150 != atau <> Tidak sama dengan Nama!=”anwar” Harga<>100 3!=2 IS NOT NULL Apakah nilai tidak NULL Nama IS NOT NULL IS NULL Apakah nilai NULL Nama IS NULL BETWEEN … AND Apakah suatu nilai berada diantara nilai Harga BETWEEN 150 AND 500 IN Apakah suatu nilai berada diantara nilai pilihan yang ada Nama IN (“Anwar”, “Amir”) NOT IN Apakah suatu nilai tidak berada diantara nilai pilihan yang ada Nama NOT IN (“Anwar”, “Amir” LIKE Apakah suatu nilai memiliki kriteria nilai yang ada Nama LIKE “An%” NOT LIKE Apakah suatu nilai tidak memiliki kriteria nilai yang ada Nama NOT LIKE “An%” REGEXP Nilai menjadi benar bila kedua nilai tersebut sama a REGEXP b NOT REGEXP Nilai menjadi benar bila kedua nilai tersebut tidak sama a NOT REGEXP b <=> a <=> b
Latihan Praktek Membuat Database Membuat Tabel 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) 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 nama_dosen kelamin tmp_lahir tgl_lahir alamat D1001 Roy Markun L 1969‑01‑23 Jl. Mayjend. Sungkono 93 D1002 Ginanjar 1971‑03‑21 Jl. Ahmad Yani 100 D1003 Gina Sonia P 1962‑09‑12 Jl. Citarum 53 D1004 Ian Antono 1970‑10‑11 Jl. Raden Saleh II/42 D1005 Indri Jelita Bengkulu 1973‑07‑19 Jl. Ahmad Yani 21 D1006 Desi Ratnasari 1970‑11‑09 Jl. Mayjend. Panjaitan 45 D2001 Moh. Umar 1973-12-25 Jl. Citandui 52 D2002 Aisyah Kamila 1968-10-03 Jl. Panglima Sudirman 15 D2003 Ika Nurul 1971-10-10 Jl. Sidodadi 76
Membuat Tabel Mengganti Nama Tabel Menghapus 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; mysql>RENAME TABLE copy_mahasiswa TO mahasiswa_copy, ->matakuliah_dosen TO matakuliah_copy; Menghapus Tabel mysql>DROP TABLE copy_dosen;
Mengganti Nama dan Tipe Data Field 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
Menambah Field Merubah Urutan Field Menghapus 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;