Bài viết này bao gồm ba cách để tạo một tập lệnh SQL từ một bảng hiện có trong SQLite.
Cả ba phương pháp đều tạo CREATE TABLE
script, nhưng phương thức cuối cùng cũng tạo ra INSERT
câu lệnh để chèn dữ liệu.
Lệnh .schema
Nếu bạn chỉ muốn viết cấu trúc bảng (tức là không có dữ liệu của nó), bạn có thể sử dụng .schema
yêu cầu.
Để thực hiện việc này, chỉ cần sử dụng .schema
theo sau là tên của bảng bạn muốn tập lệnh.
Đây là một ví dụ:
.schema Genre
Kết quả:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
Trong trường hợp này, tôi đã viết kịch bản cho Genre
bảng.
Bạn cũng có thể sử dụng đối sánh mẫu với .schema
yêu cầu.
Ví dụ:lệnh sau trả về kết quả giống như lệnh trước:
.schema Gen%
Bạn cũng có thể sử dụng .schema
lệnh để tập lệnh cho toàn bộ cơ sở dữ liệu. Để làm điều này, chỉ cần sử dụng lệnh mà không có đối số. Như thế này:
.schema
Theo mặc định, .schema
hiển thị lược đồ cho tất cả các cơ sở dữ liệu đính kèm. Nếu bạn chỉ muốn xem lược đồ cho một cơ sở dữ liệu duy nhất, bạn có thể thêm đối số để chỉ định / các cơ sở dữ liệu mà bạn quan tâm.
Ví dụ:
.schema main.*
Bảng sqlite_master
Một thay thế cho .schema
là truy vấn trực tiếp sqlite_master bàn. Bảng này chứa một cột có tên sql , chứa SQL được sử dụng để tạo bảng.
Đây là một ví dụ:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';
Kết quả:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Bao gồm dữ liệu bảng
Nếu bạn muốn tất cả dữ liệu, hãy sử dụng .dump
yêu cầu. Lệnh này tập lệnh cho CREATE TABLE
cũng như INSERT
câu lệnh để chèn tất cả dữ liệu vào bảng.
Đây là một ví dụ:
.dump Genre
Kết quả:
PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) ); INSERT INTO Genre VALUES(1,'Rock'); INSERT INTO Genre VALUES(2,'Jazz'); INSERT INTO Genre VALUES(3,'Metal'); INSERT INTO Genre VALUES(4,'Alternative & Punk'); INSERT INTO Genre VALUES(5,'Rock And Roll'); INSERT INTO Genre VALUES(6,'Blues'); INSERT INTO Genre VALUES(7,'Latin'); INSERT INTO Genre VALUES(8,'Reggae'); INSERT INTO Genre VALUES(9,'Pop'); INSERT INTO Genre VALUES(10,'Soundtrack'); INSERT INTO Genre VALUES(11,'Bossa Nova'); INSERT INTO Genre VALUES(12,'Easy Listening'); INSERT INTO Genre VALUES(13,'Heavy Metal'); INSERT INTO Genre VALUES(14,'R&B/Soul'); INSERT INTO Genre VALUES(15,'Electronica/Dance'); INSERT INTO Genre VALUES(16,'World'); INSERT INTO Genre VALUES(17,'Hip Hop/Rap'); INSERT INTO Genre VALUES(18,'Science Fiction'); INSERT INTO Genre VALUES(19,'TV Shows'); INSERT INTO Genre VALUES(20,'Sci Fi & Fantasy'); INSERT INTO Genre VALUES(21,'Drama'); INSERT INTO Genre VALUES(22,'Comedy'); INSERT INTO Genre VALUES(23,'Alternative'); INSERT INTO Genre VALUES(24,'Classical'); INSERT INTO Genre VALUES(25,'Opera'); COMMIT;