- Giới thiệu
- MySQL là gì
- Cài đặt
- Quản lý
- Cú pháp MySQL-PHP
- Kết nối MySQL
- Tạo Database
- Xóa Database
- Chọn cơ sở dữ liệu
- Kiểu dữ liệu
- Tạo bảng
- Xóa bảng
- Truy vấn Insert
- Truy vấn Select
- Mệnh đề Where
- Truy vấn Update
- Truy vấn Delete
- Mệnh đề Like
- Mệnh đề Order By
- Sử dụng Join
- Giá trị NULL
- Regexp trong MySQL
- Transaction trong MySQL
- Lệnh Alter
- Chỉ mục (Index)
- Bảng tạm (Temporary Table)
- Mô phỏng bảng
- Thông tin Database
- Sử dụng Sequence
- Xử lý bản sao
- SQL Injection
- Export và Sao lưu (Backup)
- Import và Phục hồi (Recovery)
- Mệnh đề Group By
- Mệnh đề In
- Mệnh đề Between
- Từ khóa Union
- Hàm hữu ích
- Tài liệu tham khảo
- Học SQL cơ bản và nâng cao
- Học PHP cơ bản và nâng cao
Mô phỏng bảng trong MySQL
Có một tình huống khi bạn cần một bản sao thực sự của một bảng và các lệnh CREATE TABLE … SELECT … không phù hợp với mục đích của bạn, bởi vì bản sao phải bao gồm cùng chỉ mục, cùng giá trị mặc định, và …
Bạn có thể xử lý tình huống này theo các bước sau:
Sử dụng lệnh SHOW CREATE TABLE để lấy một lệnh CREATE TABLE mà xác định cấu trúc, chỉ mục và tất cả thông tin của bảng nguồn.
Sửa đổi lệnh để thay đổi tên bảng thành tên một bảng mô phỏng và thực thi lệnh. Theo cách này, bạn sẽ có bảng mô phỏng thực sự.
Tùy ý, nếu bạn cần sao các nội dung bảng, bạn thông báo một lệnh INSERT INTO … SELECT.
Ví dụ
Bạn thử ví dụ sau để tạo một bảng mô phỏng cho sinhvienk60:
Bước 1:
Lấy toàn bộ cấu trúc của bảng với lệnh SHOW CREATE TABLE ten_bang;:
SHOW CREATE TABLE sinhvienk60;
Khi bạn đang làm việc trên MySQL Workbench thì lệnh trên sẽ trả về một hàng, bạn có thể nhấn chuột phải vào hàng này và lựa chọn các tùy chọn Copy, sau đó dán vào phần bạn đang làm việc, kết quả là:
CREATE TABLE `sinhvienk60` ( `mssv` int(11) NOT NULL AUTO_INCREMENT, `ho` varchar(255) NOT NULL, `ten` varchar(255) NOT NULL, `diemthi` float(4,2) NOT NULL, PRIMARY KEY (`mssv`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
Bước 2:
Thay tên bảng này và tạo bảng khác.
CREATE TABLE `sinhvienk61` ( `mssv` int(11) NOT NULL AUTO_INCREMENT, `ho` varchar(255) NOT NULL, `ten` varchar(255) NOT NULL, `diemthi` float(4,2) NOT NULL, PRIMARY KEY (`mssv`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
Bước 3:
Sau khi thực thi bước 2, bạn sẽ mô phỏng một bảng trong Database. Nếu bạn muốn sao chép dữ liệu từ bảng cũ, thì bạn có thể thực hiện bằng việc sử dụng lệnh INSERT INTO … SELECT.
INSERT INTO sinhvienk61 (mssv, ho, ten, diemthi) SELECT mssv, ho, ten, diemthi FROM sinhvienk60;
Cuối cùng, bạn sẽ có bảng mô phỏng thực sự như bạn muốn có.
Các bài học MySQL phổ biến khác tại AZCode: