Là một lập trình viên bắt đầu với +20 giờ mã hóa Python và quen thuộc với người mới bằng dòng lệnh, tôi đã mở ra "Tìm hiểu về SQL theo cách cứng" của Zed Shaw và nhanh chóng bị bối rối.Tìm hiểu SQL Cách cứng - Tạo .sql với .db trong SQL Lite 3 - Tại sao và như thế nào?
Trong exercise 01, Zed có bạn tạo bảng đầu tiên của bạn với lệnh đầu tiên này:
sqlite3 ex1.db < ex1.sql
Tuy nhiên điều này không chạy trong dòng lệnh của tôi, đưa ra các thông báo lỗi, "-bash: ex1.sql: Không có tập tin hoặc thư mục." Ban đầu, tôi bỏ qua này đang khuyến khích và tiến hành với:
sqlite3 ex1.db
SQLite version 3.7.15.1 2012-12-19 20:39:10
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TABLE person (
...> id INTEGER PRIMARY KEY,
...> first_name TEXT,
...> last_name TEXT,
...> age INTEGER
...>);
Chạy "ls -l" trong dòng lệnh cho thấy:
-rw-r--r-- 1 thefifth staff 2048 Feb 15 15:23 ex1.db
Nhưng những gì tôi muốn và đang thất bại trong việc nhận được là:
$ ls -l
-rw-r--r-- 1 zedshaw staff 2048 Nov 8 16:18 ex1.db
-rw-r--r-- 1 zedshaw staff 92 Nov 8 16:14 ex1.sql
tôi đã google xung quanh và tìm thấy this blog mà thực hiện cùng một cú pháp "name.db < name.sql", nhưng sau cùng mã ở đây không làm việc cho tôi cả. Stack Overflow này cũng có cú pháp tương tự, nhưng trong ngữ cảnh chuyển đổi .sql thành sqlite3.
Cụ thể, tôi tự hỏi nếu đây là "<" để sử dụng trong thiết bị đầu cuối bash gốc và tôi không đáp ứng các tiêu chí nhất định để sử dụng chính xác. Ngoài ra, tôi không biết mục đích của việc tạo cả tệp .sql và .db, mặc dù dường như một tệp nhỏ hơn nhiều so với tệp kia. Có lẽ tôi đã cài đặt sqlite3 không chính xác, nhưng nó có vẻ là làm việc tốt.
Cảm ơn sự giúp đỡ của bạn!
Trong hai câu trả lời, câu trả lời này gần giống với câu trả lời của Zed, mặc dù tệp 2048 được tạo bằng cách nào đó dưới định dạng .dv, ít nhất nó ở định dạng cơ sở dữ liệu. Cảm ơn! – surrealdetective