SQL - select

Z Kiwiki
Verzia z 22:54, 6. október 2010, ktorú vytvoril Juraj (diskusia | príspevky) (Vytvorená stránka „{{Skripta_dbs}} {{Draft}} Príkaz SELECT sa používa pre výber dát z databázy. Výsledok je uložený v tabuľke výsledkov. ==Syntax príkazu SELECT== Základná synta…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Skočit na navigaci Skočit na vyhledávání
Imbox draft.png
Toto je projekt, na ktorom sa ešte stále pracuje!!

Aj keď sú v tomto dokumente použiteľné informácie, ešte nie je dokončený. Svoje návrhy môžete vyjadriť v diskusii o tejto stránke.

Príkaz SELECT sa používa pre výber dát z databázy. Výsledok je uložený v tabuľke výsledkov.

Syntax príkazu SELECT

Základná syntax (zjednodušená) je

  SELECT názvy_stĺpcov_tabuľky FROM názov_tabuľky

Kompletná syntax je nasledujúca:

SELECT 
[ALL | DISTINCT | DISTINCTROW ]
select_expr, ... 
	[FROM table_references 
	[WHERE where_condition] 
	[GROUP BY {col_name | expr | position} 
		[ASC | DESC], ... [WITH ROLLUP]] 
	[HAVING where_condition] 
	[ORDER BY {col_name | expr | position} [ASC | DESC], ...] 
	[LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] 
	[INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] 
	[FOR UPDATE | LOCK IN SHARE MODE]]

Poznámka: Výrazy v hranatých zátvorkách sú nepovinné, hodnoty oddelené čiarou (|) v zložených zátvorkách znamenajú výberj jednoej hodnoty z viacerých.

SELECT výber všetkých údajov

Úloha: vyberte všetky záznamy z tabuľky city.

Riešenie:

  SELECT * from city

Výsledok:

Úloha: vyberte všetky záznamy z tabuľkt city. Vo výbere bude len názov mesta a populácia.

Riešenie:

  SELECT Name, Population from city

Výsledok:

SELECT obmedzenie výberu

Pre obmedzenie počtu výsledkov sa v príkaze SQL používa kľúčové slovo WHERE. Za kľúčové slovo sa píše logická podmienka. Výsledkom dotazu sú záznamy, ktoré vyhovujú danej logickej podmienke. Syntax je nasledovná:

  SELECT názvy_stĺpcov_tabuľky FROM názov_tabuľky WHERE logicka_podmienka

Logická podmienka je výraz, ktorého výsledok môže byť pravda (true) alebo nepravda (false). V logickej podmienke sa používajú relačné operátory:

= porovnanie
>= väčší rovný
> väčší
<= menší rovný
< menší
IS NULL Test na hodnotu NULL
IS Test na logickú hodnotu true/false
LIKE Porovnávanie reťazcov
!=, <> Operátor nerovnsti
NOT LIKE Negácia pri porovnávaní reťazcov
BETWEEN Výber hodnoty z daného intervalu

Úloha: Vyberte všetky mestá, v ktorých je populácia väčšia ako 5 000 000.

Riešenie:

  SELECT * FROM city WHERE Population>5000000

Výsledok:

Úloha: Vyber všetky mestá, ktoré majú kód krajiny "SVK"

Riešenie:

  SELECT * FROM city WHERE CountryCode like "SVK"

Výsledok:


Úloha: Vyber všetky mestá v ktorých je populácia medzi 1 a 2 miliónmi obyvateľov

Riešenie:

  SELECT * FROM city WHERE Population between 1000000 and 2000000

Výsledok:


Úloha: Vyber všetky mestá, ktorých názov začína na "Bra"

Riešenie:

  SELECT * FROM city WHERE Name LIKE 'Bra%'

Výsledok:

Poznámka: Znak % (percento) zastupuje ľubovoľný počet znakov.


Úloha: Vyber všetky mestá, ktorých kód krajiny začína na "N" a končí na "L"

Riešenie:

  SELECT * FROM city WHERE CountryCode LIKE "N_L"

Výsledok:

Poznámka: Znak _ (podčiarkovník) zastupuje jeden znak.

Spájanie viacerých podmienok

Pre vytváranie komplikovanejších logických podmienok v príkaze SELECT slúžia logické spojky. Existujú dve logické spojky:

  • AND
    • Výraz x AND y je pravdivý vtedy a len vtedy ak je pravdivý výrok x A ZÁROVEŇ je pravdivý výrok y
  • OR
    • Výraz x OR y je pravdivý vtedy ak je pravdivý výrok x ALEBO je pravdivý výrok y

Úloha: Vyber všetky mestá vo Veľkej britácii, v ktorých je populácia menšia ako 100tisíc obyvateľov.

Riešenie:

  SELECT * FROM city WHERE CountryCode like "GBR" and Population<100000

Výsledok:


Úloha: Vyber všetky mestá zo Slovenska a z Čiech

Riešenie:

  SELECT * FROM city WHERE CountryCode like "SVK" or CountryCode like "CZE"

Výsledok:


Úloha: Vyber všetky mestá zo Slovenska a z Čiech, ktoré majú menej ako 100 tisíc obyvateľov

Riešenie:

    SELECT * FROM city WHERE (CountryCode like "SVK" or CountryCode like "CZE") and population<100000

Výsledok:

SELECT - usporiadanie výsledku

SELECT - zoskupovanie

SELECT - obmedzenie zoskupovania

Úloha: Riešenie:

Výsledok:

Úloha: Riešenie:

Výsledok: