Nevíte si s SQL rady? Zeptejte se!

Důkazem čtenářského zájmu o seriál SQL jsou vaše dotazy, které se mi začaly objevovat v e-mailové schránce. Dnes se pokusím odpovědět na jejich první část. Máte-li nějaký další problém, napište, a já na Živě odpovím opět touto formou.
Nevíte si s SQL rady? Zeptejte se!
Důkazem čtenářského zájmu o seriál SQL jsou vaše dotazy, které se mi začaly objevovat v e-mailové schránce. Dnes se pokusím odpovědět na jejich první část. Máte-li nějaký další problém, napište, a já na Živě odpovím opět touto formou.

Mohu si jednoduše ověřit, jaké normě SQL systém odpovídá?

Bohužel ne. Pro začátek můžete vyjít z údajů uváděných výrobcem. Ani takto získaným informacím však není možné stoprocentně důvěřovat a tak je třeba získat další informace z nezávislých zdrojů, od kolegů či z odborného tisku.

Podle čeho se třídí řádky, neuvedu-li v SELECTu ORDER BY?

Na tuto otázku neexistuje jednoznačná odpověď. Záleží totiž na tom, jak systém data do tabulek ukládá. Pokud není uvedena klauzule pro třídění, systém záznamy nejčastěji zobrazí v tom pořadí, jak je má interně uložené. Při složitějších dotazech (například za využití agregačních funkcí) může být třídění závislé od vnitřních algoritmů. Pokud nám však na třídění záleží, neměli bychom na ORDER BY zapomenout.

Jak zařídit třídění v obráceném pořadí (sestupně)?

Snadno. Stačí uvést za položku, která je součástí klauzule ORDER BY, slůvko DESC. Vybrané záznamy jsou pak tříděny sestupně. Zápis může mít následující tvar: SELECT jméno FROM osoby ORDER BY jméno DESC

Proč se dělá tolik humbuku okolo architektury client/server?

Tato architektura má jednu podstatnou výhodu - přenesení zpracování značné části úlohy na stranu serveru. Zjednodušeně to celé funguje tak, že klient (například program na Vašem PC) pošle dotaz serveru, ten jej zpracuje a zpět pošle pouze výsledky. Další výhodou je tedy menší přenos dat po komunikačních linkách. Přímým opakem pak je architektura file/server, kde server slouží pouze k uložení dat (ta jsou zpracovávána na klientovi). Na druhou stranu však architektura client/server přináší celou řadu nevýhod, mezi které patří i obtížnější tvorba (a tím pádem i vyšší náklady) takového systému.

Je SQL case sensitive?

Ne, není. Správněji řečeno - neměl by být. Ovšem je nutné rozlišovat problém velkých a malých písmen v zadávání příkazů a v hodnotách. SeLecT je vykonán správně, ale výraz `A` = `a` je pochopitelně nepravdivý. Zejména u začátečníků tímto vzniká značné množství chyb.

Chci-li vybrat pomocí SELECTu všechny položky, musím je vypisovat? Neexistuje snadnější cesta?

Ano, existuje. V příkazu SELECT je možné nahradit výčet položek znakem `*`, který zaručí výběr všech atributů. Zápis příkazu pak může mít podobu: SELECT * FROM osoby

Jaké operátory mohu použít za klauzulí WHERE?

Je jich celá řada. Známé =, >, <, AND, OR, NOT doplňují LIKE (WHERE jméno LIKE `Mar%` omezí výběr na všechny záznamy, pro které platí, že jméno začíná na Mar) či BETWEEN (WHERE věk BETWEEN 20 AND 30 omezí výběr na záznamy s hodnotou položky věk mezi 20 a 30).

Proč nejsou příklady detailnější?

Tento seriál nemá za cíl nahradit odbornou příručku. Spíše vás má uvést do tajů tohoto jazyka a podnítit k jeho dalšímu studiu. Dává tedy k dispozici pouze základní přehled, a to přehled nejen o příkazech, ale také o dalších souvislostech.

Diskuze (11) | Lucent pro příští tisíciletí

Témata článku: Software, Programování, Značný problém, Select, SQL, Jednoznačná odpověď, Komunikační link, Order, Like

Určitě si přečtěte


Aktuální číslo časopisu Computer

Zachraňte nefunkční Windows

Jak nakupovat a prodávat kryptoměny

Otestovali jsme konvertibilní notebooky

Velký test 14 herních myší