02 Table Data
02 Table Data
2. Tipe data
Tipe data dalam MySQL terdiri atas beberapa jenis:
• Tipe data teks
Tipe data teks terdiri atas beberapa tipe sebagai berikut:
CHAR( ) A fixed section from 0 to 255 characters long.
1
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
ENUM( value1, value2,...) A string object that can only have one value, chosen from the list of
'value1', 'value2', … An ENUM can have a maximum of 65535 distinct
values
SET (value1, value2, ... ) A string object that can have zero or more values, each of which must be
chosen from the list of values 'value1', 'value2', … SET values can have
a maximum of 64 members.
Tipe data numerik FLOAT, DOUBLE, dan DECIMAL, nilai M menunjukkan jumlah digit keseluruhan,
sedangkan D menunjukkan jumlah digit di belakang koma. Sebagai contoh, jika ada kolom yang didefinisikan
sebagai FLOAT(7,4) maka akan tampak seperti 999.9999.
• Tipe data date
DATE YYYY-MM-DD.
TIMESTAMP YYYYMMDDHHMMSS.
TIME HH:MM:SS.
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| plate | varchar(10) | YES | UNI | NULL | |
| brand | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
4
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
5
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
Pengisian tabel dapat menggunakan statement LOAD DATA INFILE dengan cara membuat file teks, misalkan
bernama 'employee.txt' dan memisahkan kolom dengan tab. Selanjutnya memasukkan file dapat dilakukan sebagai
berikut:
mysql> LOAD DATA INFILE '/app/mysql/employee.txt' INTO TABLE employee FIELDS TERMI NATED
BY '\t';
Query OK, 8 rows affected (0.08 sec)
Records: 8 Deleted: 0 Skipped: 0 Warnings: 0
Selanjutnya, kita mulai menyalin tabel. Pada contoh di bawah, data yang akan disalin ke tabel yang baru adalah data
employee yang mulai bekerja antara 1 Januari 1970 sampai 31 Desember 1990.
mysql> CREATE TABLE employee_copy AS
-> SELECT *
-> FROM employee
-> WHERE start_date BETWEEN '1970-01-01' AND '1990-12-31';
Query OK, 6 rows affected (0.18 sec)
Records: 6 Duplicates: 0 Warnings: 0
6
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
+----+------------+-----------+------------+------------+---------+-----------+-------------+
| 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester |
| 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester |
| 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager |
| 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester |
| 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester |
| 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager |
+----+------------+-----------+------------+------------+---------+-----------+-------------+
6 rows in set (0.00 sec)
mysql> \q
Bye
Berikut adalah contoh membuat tabel yang memiliki foreign key dengan engine InnoDB:
mysql> CREATE TABLE models (
-> modelid smallint not null auto_increment,
-> name varchar(40) not null,
-> primary key (modelid)
-> )
-> engine=InnoDB;
Query OK, 0 rows affected (0.13 sec)
8
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
9
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
10
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| first_name | varchar(30) | YES | | NULL | |
| name | varchar(5) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
11
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
14.Menghapus kolom
mysql> ALTER TABLE TABLE5 DROP first_name;
Query OK, 0 rows affected (0.55 sec)
Records: 0 Duplicates: 0 Warnings: 0
| Tables_in_PRAK2 |
+-----------------+
| TABLE1 |
| TABLE2 |
| TABLE3 |
| TABLE4 |
| employee |
| senior_employee |
+-----------------+
6 rows in set (0.00 sec)
17.Menghapus Tabel
Untuk menghapus tabel dari database, digunakan command DROP TABLE.
mysql> DROP TABLE employee_copy;
Query OK, 0 rows affected (0.06 sec)
13
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
| Tables_in_PRAK2 |
+-----------------+
| TABLE1 |
| TABLE2 |
| TABLE3 |
| TABLE4 |
| TABLE5 |
| employee |
| senior_employee |
+-----------------+
7 rows in set (0.00 sec)
14
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
-> 'Spy'
-> );
Query OK, 1 row affected (0.05 sec)
Tabel employee memiliki 8 kolom. Kita memasukkan 8 nilai menggunakan command INSERT. Satu buah nilai diisi
ke kolom sesuai dengan urutan penulisan nilai.
Selain menggunakan INSERT seperti di atas, kita juga dapat menggunakan command INSERT sebagai berikut:
mysql> INSERT INTO employee
-> (first_name, last_name, start_date, end_date, salary, city, description)
-> VALUES
-> ('Hercule',
-> 'Poirot',
-> '1973-05-23',
-> '2001-08-09',
-> 4312.98,
-> 'Brussels',
-> 'Detective'
-> );
Query OK, 1 row affected (0.05 sec)
16
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
17
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
18
Praktikum Basis Data Pra S2 Ilmu Komputer UGM Arif Nurwidyantoro
| 4124.21 |
+---------+
12 rows in set (0.00 sec)
20