Skip to content

Commit 9932d65

Browse files
authored
Merge pull request #9 from sschonss/select-obj
Adicionada função SelectFrom para executar consultas SQL de seleção d…
2 parents 4b141d2 + 48b4208 commit 9932d65

File tree

3 files changed

+71
-2
lines changed

3 files changed

+71
-2
lines changed

commands/commands.go

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,77 @@ func InsertInto(command string) {
8989
}
9090

9191
func SelectFrom(command string) {
92+
if strings.Contains(command, "*") {
93+
SelectAllFrom(command)
94+
return
95+
}
96+
97+
//pegar o nome das colunas que vao estar na query
98+
// select nome, idade from tabela -> exemplo
99+
//depois de select, pega o que vem depois do select e antes do from que vai estar separado por virgula
100+
//depois de from, pega o que vem depois do from que vai ser o nome da tabela
101+
102+
//salvar as colunas em um array
103+
//salvar o nome da tabela em uma variavel
104+
105+
arrayColumns := strings.Split(command, " ")[1]
106+
arrayColumns = strings.Split(arrayColumns, "from")[0]
107+
arrayColumns = strings.Replace(arrayColumns, " ", "", -1)
108+
arrayColumns = strings.Split(arrayColumns, ",")[0]
109+
110+
fmt.Println("Colunas: " + arrayColumns)
111+
112+
table := strings.Split(command, " ")[3]
113+
114+
if _, err := os.Stat("data/" + table + ".csv"); os.IsNotExist(err) {
115+
fmt.Println("Tabela não existe")
116+
return
117+
}
118+
119+
file, err := os.Open("data/" + table + ".csv")
120+
if err != nil {
121+
fmt.Println("Erro ao abrir arquivo")
122+
return
123+
}
124+
125+
defer file.Close()
126+
127+
fmt.Println("Tabela: " + table)
128+
129+
//pegar as colunas do arquivo, vao ser a primeira linha do arquivo separada por ;
130+
var columnsTable string
131+
fmt.Fscanf(file, "%s\n", &columnsTable)
132+
columnsTableArray := strings.Split(columnsTable, ";")
133+
134+
//pegar os dados somente das colunas que foram passadas na query
135+
136+
for i := 0; i < len(columnsTableArray); i++ {
137+
if columnsTableArray[i] == arrayColumns {
138+
fmt.Println(columnsTableArray[i])
139+
}
140+
}
141+
142+
//pegar os dados das colunas que foram passadas na query
143+
var line string
144+
for {
145+
_, err := fmt.Fscanf(file, "%s\n", &line)
146+
if err != nil {
147+
break
148+
}
149+
lineArray := strings.Split(line, ";")
150+
for i := 0; i < len(lineArray); i++ {
151+
if columnsTableArray[i] == arrayColumns {
152+
fmt.Println(lineArray[i])
153+
}
154+
}
155+
}
156+
157+
158+
}
159+
160+
161+
162+
func SelectAllFrom(command string) {
92163

93164
table := strings.Split(command, " ")[3]
94165

data/config.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

veritas

-2.02 MB
Binary file not shown.

0 commit comments

Comments
 (0)