www.mamboteam.com
aptitude : me and my debian - a work in progress  
Startsida arrow debian arrow projekt ordlista, 2
2008-07-09
 
 
Huvudmeny
Startsida
debian
bash
Forum
Användarmeny
tidigare material
nyheter
grafik
Artikeltips
BadVista
projekt ordlista, 2  E-post

Del 2 i artikelserien 'projekt ordlista'. Läs även del 1.

Nu ska listan med ord in i tabellen 'word'. Fast tabellen word vill ju ha två kolumner - 'id' och 'word'.

 
$ cat -n sorted.lst >word.lst

Så! Nu har varje rad ett nummer. Tyvärr är de skiftade åt höger och flera rader innehåller inledande mellanslag. Jag öppnar listan i vim och skriver.
 
:%s/^s*//
:%s/s/,/
:wq

(Den första raden raderar inledande mellanslag. Den andra byter ut mellanslaget mellan siffra och ord mot ett kommatecken. Den tredje raden sparar och avslutar vim.)

Så startar jag sqlite igen.

$ sqlite3 words.db
sqlite> .separator ,
sqlite> .import word.lst word
sqlite> .quit

(Den första raden sätter avskiljare till kommatecken. Den andra importerar filen word.lst till tabellen 'word'. Den tredje avslutar sqlite3).

Nu ska jag testa lite :

Öppna databasen: sqlite3 words.db
Kollar om ordet 'ra' är lagrat: select id from word where word = 'ra';
Det är det inte så jag lägger till det: insert into word values(NULL,'ra');
Kolla vad ordet fick för ID: select id from word where word = 'ra';

I mitt fall fick ordet 'ra' id 232308

Lägg till ledtrådar för ordet i tabellen 'leads'

 
insert into leads values('Drev med norrmän', 232308);
insert into leads values('Thors båt', 232308);
insert into leads values('Egyptisk solgud', 232308);
insert into leads values('Radium', 232308);

Kollar att det funkar, att jag får relevant utdata :
select word.word, lead.lead from word, lead where (word.id = lead.wordID and word = 'ra');
select word.word, lead.lead from word, lead where (word.id = lead.wordID and lead like '%solgud%');

Avsluta sqlite3 med ett .quit

Jag kan ju passa på att visa ett annat sätt att anropa sqlite :

 
$ sqlite3 -html words.db "select word.word, lead.lead from word,
 lead where (word.id = lead.wordID and lead like '%solgud%');"
 
 
<TR><TD>ra</TD>
<TD>Egyptisk solgud</TD>
</TR>

Växeln -html är ju bra om man ska presentera utdata i en tabell på en webbsida.

I del 3 av denna artikelserie bygger jag ett enkelt gränssnitt i BASH.

Läs mer om sqlite3
 
Kommentarer (0)Add Comment

Skriv kommentar

busy
 
< Föregående   Nästa >
 
Top! Top!