NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 4 - SQLite - Výběr dat (vyhledávání)

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Hana Svobodová:20.7.2023 11:41

Užitečné funkce. Ale u vymazání dosavadních dat jste nepoužili
DELETE FROM uzivatele;
DELETE FROM SQLITE_SEQUENCE WHERE name = "uzivatele";
jako v předchozí lekci, takže se nečíslují od 1. Uživatelů není 38, ale 31.

 
Odpovědět
20.7.2023 11:41
Avatar
Michal Salvet:5.8.2023 13:26

Chci se zeptat jestli je neco spatneho (best practice) u toho posledniho prikazu kdy hledame pouze cele roky si to takto ulehcit

SELECT jmeno, prijmeni, datum_narozeni
FROM 'uzivatele'
WHERE datum_narozeni BETWEEN 1980 and 1990;
 
Odpovědět
5.8.2023 13:26
Avatar
Karel Zaoral
Člen
Avatar
Odpovídá na Michal Salvet
Karel Zaoral:26.9.2023 14:10

Ahoj Michale, SQLite je dynamicky typovaná databáze, což znamená, že pole datum_narozeni bude nejspíš typu DATE (nebo podobného). Pokud porovnáváš hodnotu typu DATE s číslem (jako je 1980), můžeš se setkat s neočekávanými chybami nebo výsledky.

 
Odpovědět
26.9.2023 14:10
Avatar
Jakub Ježek
Člen
Avatar
Jakub Ježek:16.1.2024 17:16

Pokud to někomu nefunguje jako mě, tak tady s dvojitýma uvozovkama:

INSERT INTO "uzivatele"(
"jmeno", "prijmeni", "datum_narozeni", "pocet_clanku"
)
VALUES
("Jan",  "Novák", "1984-11-03", 17),
("Tomáš", "Marný", "1942-10-17", 12),
("Josef", "Nový", "1958-7-10", 5),
("Alfons", "Svoboda", "1935-5-15", 6),
("Ludmila", "Dvořáková", "1967-4-17", 2),
("Petr", "Černý", "1995-2-20", 1),
("Vladimír", "Pokorný", "1984-4-18", 1),
("Ondřej", "Bohatý", "1973-5-14", 3),
("Vítezslav", "Churý", "1969-6-2", 7),
("Pavel", "Procházka", "1962-7-3", 8),
("Matěj", "Horák", "1974-9-10", 0),
("Jana", "Veselá", "1976-10-2", 1),
("Miroslav", "Kučera", "1948-11-3", 1),
("František", "Veselý", "1947-5-9", 1),
("Michal", "Krejčí", "1956-3-7", 0),
("Lenka", "Němcová", "1954-2-11", 5),
("Věra", "Marková", "1978-1-21", 3),
("Eva", "Kučerová", "1949-7-26", 12),
("Lucie", "Novotná", "1973-7-28", 4),
("Jaroslav", "Novotný", "1980-8-11", 8),
("Petr", "Dvořák", "1982-9-30", 18),
("Jiří", "Veselý", "1961-1-15", 2),
("Martina", "Krejčí", "1950-8-29", 4),
("Marie", "Černá", "1974-2-26", 5),
("Věra", "Svobodová", "1983-3-2", 2),
("Pavel", "Dušín", "1991-5-1", 9),
("Otakar", "Kovář", "1992-12-17", 9),
("Kateřina", "Koubová", "1956-11-15", 4),
("Václav", "Blažek", "1953-10-20", 6),
("Jan", "Spáčil", "1967-5-6", 3),
("Zdeněk", "Malačka", "1946-3-10", 6);
 
Odpovědět
16.1.2024 17:16
Avatar
Odpovídá na Michal Nespurek
Petr Lukanič:4.3.2024 14:53

Zkoušel jsem variantu b a pořád se to nečíslovalo od 1, nakonec jsem na to přišel, to nejsou varianty ale musí se zadat oba řádky abys mohl opravdu začít od 1.

 
Odpovědět
4.3.2024 14:53
Avatar
Lucie Králová:19.5.2024 1:45

Za mě celkem hezky pochopitelná lekce.

Jen nerozumím tomu, proč jste nepoužili:
DELETE FROM uzivatele;
DELETE FROM SQLITE_SEQUENCE WHERE name = "uzivatele";

Chceme mít logicky tabulku číslovanou od jedničky. Myslím si že by stálo za to lekci v tomto případě aktualizovat :)

 
Odpovědět
19.5.2024 1:45
Avatar
Odpovídá na Petr Dostál
Petra Strašáková:20.7.2024 21:59

Ano, chybí tam 0 už v poskytnutých datech v lekci. Já tedy 0 nevidím ani ve výsledcích. Vypadá to divně bez 0 😀 , ale asi to ničemu v rámci kurzu nevadí. Nicméně by mě zajímalo, jakou chybu by to příp. mohlo způsobit - jestli by to vadilo jiné DB, nebo by si formát sama upravila, nebo to ničemu nevadí.... a nebo třeba Julian formát v nějakých systémech, zda by to nevadilo?

Odpovědět
20.7.2024 21:59
Každý máme jiné oči.
Avatar
Petra Strašáková:20.7.2024 22:48

SELECT pod bych upravila - bez =, nebo upravila zadání, jelikož zni:
"Vyberme všechny uživatele, narozené po roce
1960 a s počtem článků vyšším než 5:".

V zadání je "po roce" a to se nerovná roku 1960.
Výsledek je sice bez roku 1960, jelikož rok 1960 není mezi daty, ale kdyby byl mezi daty....

Odpovědět
20.7.2024 22:48
Každý máme jiné oči.
Avatar
Odpovídá na Lucie Králová
Petra Strašáková:20.7.2024 22:52

Myslím, že tady (v dané lekci) to ničemu nevadí. ;-)

Odpovědět
20.7.2024 22:52
Každý máme jiné oči.
Avatar
Jaroslava Kovářová :8.10.2024 11:08

Ahoj všem,
mám dotaz/připomínku k úkolu "najděme si uživatele, kteří se narodili mezi lety 1980 a 1990". Pokud začínáme s hledáním 1.1.1980 neměli bychom končit vyhledávání datem 31.12.1990 (nikoliv datem 1.1.1990) tzn. abychom hledáním našli i osoby, které se narodily v roce 1990 a narodily se po 1. lednu?

 
Odpovědět
8.10.2024 11:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 23.