Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 4. diel - SQLite - Výber dát (vyhľadávanie)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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.

 
Odpovedať
+6
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;
 
Odpovedať
5.8.2023 13:26
Avatar
Karel Zaoral
Člen
Avatar
Odpovedá 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.

 
Odpovedať
+1
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);
 
Odpovedať
16.1.2024 17:16
Avatar
Odpovedá 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.

 
Odpovedať
+2
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 :)

 
Odpovedať
+1
19.5.2024 1:45
Avatar
Odpovedá 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?

Odpovedať
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....

Odpovedať
20.7.2024 22:48
Každý máme jiné oči.
Avatar
Odpovedá na Lucie Králová
Petra Strašáková:20.7.2024 22:52

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

Odpovedať
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?

 
Odpovedať
8.10.2024 11:08
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 22.