Kita juga dapat membuat tabel dari tabel lain menggunakan statement SELECT. Caranya ditunjukkan sebagai berikut.
Pertama, kita membuat terlebih dahulu tabel sumber dengan nama 'employee' seperti sebagai berikut:
mysql> CREATE TABLE employee(
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> first_name VARCHAR(15),
-> last_name VARCHAR(15),
-> start_date DATE,
-> end_date DATE,
-> salary FLOAT(8,2),
-> city VARCHAR(10),
-> description VARCHAR(15)
-> );
Query OK, 0 rows affected (0.16 sec)
mysql> DESCRIBE employee;
8 rows in set (0.00 sec)
Kemudian kita isikan dengan data ke tabel 'employee' sebagai berikut:
1 Jason Martin 1996-07-25 2006-07-25 1234.56 Toronto Programmer
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
8 James Cat 1996-09-17 2002-04-15 1232.78 Vancouver Tester
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 TERMINATED 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
mysql> SHOW TABLES;
6 rows in set (0.00 sec)
mysql> SELECT * FROM employee_copy;
6 rows in set (0.00 sec)
No comments:
Post a Comment