Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội lhquynh@vnu.edu.vn Xuất dữ liệu ra file SELECT f.film_id, f.title, f.rating, f.rental_rate, c.name INTO OUTFILE 'filmlist.txt' FROM film f, film_category fc, category c WHERE f.film_id = fc.film_id AND fc.category_id = c.category_id; Xuất dữ liệu ra file SELECT f.film_id, f.title, f.rating, f.rental_rate, c.name INTO OUTFILE 'filmlist_fields.txt' FIELDS TERMINATED BY ',' ESCAPED BY '*' ENCLOSED BY '"' FROM film f, film_category fc, category c WHERE f.film_id = fc.film_id AND fc.category_id = c.category_id; Xuất dữ liệu ra file SELECT f.film_id, f.title, f.rating, f.rental_rate, c.name INTO OUTFILE 'filmlist_field_lines.txt' FIELDS TERMINATED BY '</TD><TD>' LINES STARTING BY '<TR><TD>' TERMINATED BY '</TD></TR>\n' FROM film f, film_category fc, category c WHERE f.film_id = fc.film_id AND fc.category_id = c.category_id; Xuất dữ liệu ra file • File được lưu vào thư mực chứa CSDL đang làm việc. Để lưu file ra vị trí khác, cần xác định đường dẫn cho file • Câu lệnh SELECT sẽ không ghi đè và sẽ thất bại nếu tồn tại file cùng tên • Ngầm định, khi ghi một giá trị là NULL, \N sẽ được trả lại Tạo một bảng sử dụng tập kết quả DROP TABLE film2; CREATE TABLE film2 ( film_id SMALLINT UNSIGNED NOT NULL PRIMARY KEY REFERENCES film(film_id), film_title VARCHAR(50), rating ENUM('G','PG','PG-13','R','NC-17') DEFAULT 'G', rental_rate DECIMAL(4,2) NOT NULL DEFAULT 4.99, category_name VARCHAR(25) )ENGINE=InnoDB DEFAULT CHARSET=utf8 SELECT f.film_id,f.title as film_title,f.rating,f.rental_rate,c.name as category_name FROM film f, film_category fc, category c WHERE f.film_id = fc.film_id AND fc.category_id = c.category_id; Sao chép dữ liệu vào một bảng đã tồn tại INSERT INTO film2 SELECT f.film_id,f.title as film_title,f.rating,f.rental_rate,c.name as category_name FROM film f, film_category fc, category c WHERE f.film_id = fc.film_id AND fc.category_id = c.category_id; Lệnh LOAD DATA • Lệnh LOAD DATA cho phép nhập các giá trị trực tiếp từ file tạo bởi lệnh SELECT trước đó • Ví dụ: – LOAD DATA INFILE 'filmlist.txt' INTO TABLE film2; – LOAD DATA INFILE 'filmlist_fields.txt' INTO TABLE film2 FIELDS TERMINATED BY ',' ESCAPED BY '*' ENCLOSED BY '"' ; Sử dụng tiện ích mysqlimport để nhập dữ liệu • Tiện ích mysqlimport cho phép nhập dữ liệu từ file tương tự lệnh LOAD DATA • Ví dụ: – mysqlimport --user=root --password=<password> sakila "film2.txt" – mysqlimport --user=root --password=<password> --fields-terminated-by="," --fields-escaped-by="*" --fields-enclosed-by="\"" sakila "..\Exercises\ filmlist_fields.txt" Tài liệu tham khảo • http://www.mysql.com • http://dev.mysql.com/doc/refman/8.0/en/