You are on page 1of 10

Hệ quản trị CSDL

BÀI 8 (TH): XUẤT, NHẬP LIỆU

TS. Lê Hoàng Quỳnh


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/

You might also like