Come programmatore iniziale con +20 ore di codifica in Python e familiarità con i principianti con la riga di comando, ho aperto "Learn SQL The Hard Way" di Zed Shaw e sono stato rapidamente messo a tacere.Impara SQL in modo difficile - Creazione di .sql con .db in SQL Lite 3 - Perché e come?
In exercise 01, Zed ha si crea la tua prima tavola con questo primo comando:
sqlite3 ex1.db < ex1.sql
Tuttavia questo non riesce a correre nella mia riga di comando, dando il messaggio di errore, "-bash: ex1.sql: Nessun file o directory con questo nome." Inizialmente, ho ignorato questo codice raccomandato e proceduto con:
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
...>);
Running "ls -l" nella riga di comando mostra:
-rw-r--r-- 1 thefifth staff 2048 Feb 15 15:23 ex1.db
Ma quello che voglio e sto riuscendo a ottenere è:
$ 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
I Googled intorno e ho trovato this blog che implementa la stessa sintassi "name.db < name.sql", ma seguendo lungo il codice qui non ha funzionato per me. Questo Stack Overflow ha anche una sintassi simile, ma nel contesto della conversione di .sql in sqlite3.
In particolare, mi chiedo se questo è lo "<" per l'utilizzo nel terminale di bash nativo e che non riesco a soddisfare determinati criteri per il suo uso corretto. Inoltre, non conosco lo scopo di creare un file .sql e .db, anche se apparentemente uno è molto più piccolo dell'altro. Forse ho installato sqlite3 in modo errato, ma sembra funzionare bene.
Grazie per il vostro aiuto!
Delle due risposte, questa risposta assomigliava più strettamente alla risposta di Zed, sebbene il file 2048 sia stato in qualche modo creato in formato .dv, almeno in un formato di database. Grazie! – surrealdetective