SQL základy 1. část

Pokračujeme v seriálu základům Testingu. Do poručují si přečíst předchozí články Základy testování 1. část a Základy testování 2. část. Pokud vás bude zajímat pouze SQL nemusíte základy testovaní číst.

Všechny příklady jsem dělal v SQL Developer od Oracle který využívá Javu Oracle. Pokud budete chtít využít produktů Oracle je potřeba registrace a zdarma si je stáhnout, nabízí je pro Windows, Mac i Linux. Nebo můžete využit třeba MySQL nebo SQL od jiného výrobce. Rozdíly by oproti SQL Developer měli být minimální.

Vždy doporučuji používat poslední verze software.

Upozorňuji není to úplný návod jak vytvářet tabulky, ale hlavně pro testery a proti co chtějí umět používat SQL na vyhledávaní. Hlouběji do SQL se ponoříme v dalších článcích.

K dotazování jazykem SQL, pro tento článek jsem použil databázi z svého hostingu a z školení Acamar. Ale databázi si můžete i vytvořit na vlastním PC zcela jednoduše aniž by jste se museli někam přihlašovat. Více si můžete přečíst zde.

SQL základy 1. část:

Relační databáze

  • Skládá se z tabulek
  • Využívá dotazovací jazyk SQL
  • MySQL, Oracle atd.

SQL= Structured Query Language

SQL – DDL = Data Defintion Language – Create table, Drop table

          DML = Data Manipulation Language

>  není case sensitive – nerozlišuje malá a velká písmena

>  pro lepší čitelnost se doporučuje psát velkými písmeny

>  dotaz může být rozdělen na více řádků

>  čísla se píší normálně, text musí být v rovných uvozovkách ‘apostrof‘

>  každý příkaz končí středníkem ;

>  klíčové slovo jazyka SQL nesmí být název tabulky nebo sloupce

Datové typy

> NUMBER (p,s) – číslo, p = počet celých čísel, s = počet desetinných čísel  (2,1- 99,9)

> CHAR (n) – řetězec s pevnou délkou n, využívá se pro logické hodnoty 0/1, N/Y

> VARCHAR2 – řetězec, až n znaků

> DATE – datum 2017-01-01

> TIMESTAMP – datum a čas 2017-01-01 12:00:00

Primární klíč

  • Jednoznačný a jedinečný identifikátor řádků tabulky, standardně sloupce ID.
  • Název obvykle ID, generované sekvencí.
  • Může být, rodné číslo, číslo OP…….
  • Nejlepší uměle vytvořený klíč.

SQL základní příkazy

Tabulka uzivatel

IDJménoPrijmeniVek
1PavelNovák35
2JanaMalá27
  • INSERT – vložení řádku

   INSERT INTO <tabulka> (<sloupec>) VALUES (<hodnota>)

   INSERT INTO Uzivatel (ID, Jmeno, Prijmeni, Vek ) VALUES (4, ‘Jan’, ‘Svoboda’, 40);

  • UPDATE – změna řádku – změna/aktualizace řádku

   ! bez WHERE změní všechny řádky, WHERE – kde, podmínka !

   UPDATE <tabulka> SET <sloupec> = <hodnota> [WHERE <podminka>];

   UPDATE Uzivatel SET Vek=41 WHERE ID=3;

  • DELETE FROM – smazání řádku

    DELETE FROM <tabulka> [WHERE <podminka>];

    DELETE FROM Uzivatel WHERE ID=3;

*  SELECT – vyhledávání řádků

   SELECT <sloupce> FROM <tabulka>

   SELECT * FROM <uzivatel>; všechny sloupce v tabulce uživatel

   SELECT ID, Jmeno, Prijmeni, Vek FROM Uzivatel; vypíše sloupce podle kritérii v tabulce uživatel

* COMMIT – potvrdí změnu, musí být po INSERT, UPDATE, DELETE. Po SELECT zbytečné. 

                   Může se použít buď příkaz nebo tlačítko 

  • ROLLBACK – vrátí změnu k poslednímu COMMIT, buď příkaz nebo tlačítko
  • TRANSAKCE – více SQL příkazu na jednou, všechno nebo nic

                           na konci nutno potvrdit COMMIT

                           pokud dojde k chybě ROLLBACK   

  • WHERE – podmínka      
  • =, >, <, <=, >=
  • Je různo <> nebo !=  SELECT * FROM Uzivatel WHERE Vek<>35
  • IS NULL výběr řádku bez hodnoty ve sloupci SELECT * FROM Uzivatel WHERE Vek IS NULL;
  • IS NOT NULL výběr řádku z hodnotou ve sloupci 

                           SELECT * FROM Uzivatel WHERE Vek IS NOT NULL;

  • BETWEEN (Bitvín) : Mezi dvěmi hodnotami                                                                                   SELECT * FROM Uzivatel WHERE Vek BETWEEN 27 AND 40;

    Lze take zadat jako >= minimum AND <= maximum

–  LIKE – vyhledávání v textu % zástupný znak = žolík 

   SELECT * FROM Uzivatel WHERE Jmeno LIKE ‘Jan%‘; můzě třeba být ‘%a%’, najde vše v řádku jméno – jména co obsahují a.

  • IN přesně definované hodnoty
  • SELECT * FROM Uzivatel WHERE Jmeno IN ‘Pavel’
  • SELECT * FROM Uzivatel WHERE Vek IN (35, 27,40);
  • AND – logické A

               Musí být splněny obě podmínky

ANDNEPRAVDAPRAVDA
NEPRAVDANEPRAVDANEPRAVDA
PRAVDANEPRAVDA PRAVDA

 SELECT * FROM Uzivatel WHERE Vek >=27 AND Vek <=41; najde uživatele od 27 do 41 let.

  • OR – logické nebo 
  • Musí být splněna aspoň jedna podmínka
ORNEPRAVDAPRAVDA
NEPRAVDANEPRAVDAPRAVDA
PRAVDAPRAVDAPRAVDA

 SELECT * FROM Uzivatel WHERE Prijmeni=‚Svobodová‘OR Prijmeni=‚Malá‘;

Typ: nahraď Malá jiným přímením, aby bylo vidět OR.

Aritmické operace

  • sčítání +
  • odčítání –
  • násobení *
  • dělení /

SELECT Pocet*Cena_za_kus FROM Produkt; vynásobí cenu x počet

Agregační funkce

  • SUM – součet  SELECT SUM (Vek) FROM Uzivatel; sečte věk všech uživatelů
  • COUNT – počet řádků
  • AVG – průměr
  • MIN
  • MAX

SELECT MAX (Vek) FROM Uzivatel; – maximální věk

SELECT COUNT * FROM Uzivatel; – počet řádků v tabulce

SELECT COUNT (Vek) FROM Uzivatel; – vrátí počet ne nula hodnot uživatele

ORDER BY

  • řazení výsledku
  • ORDER BY <sloupec> ASC/DSEC
  • ASC – řazení vzestupně , defaultně, ale i tak by jsme měli psát
  • DESC – sestupně, nutné uvést

 SELECT Jmeno FROM Uzivatel ORDER BY Jmeno DESC; seřadí uživatele podle abecedy po zpátku

Alias sloupce

  • AS <sloupce>
  • Pro lepší pojmenování sloupců

SELECT COUNT (*) AS Pocet_radku FROM Uzivatel; hodnota COUNT se přepíše na Pocet_radku pro lepší orientaci.

SQL Developer

  • nástroj na prohlížení a provádění operací s databází

www.demo-1.sql-vyuka.cz – zde si můžete ozkoušet SQL

Časté pohovorové otázky

  • Napsat INSERT nebo UPDATE
  • Co je to primární klíč a zda je vhodné používat např. rodné číslo, email, telefonní číslo
  • Vyhledávání řádku bez hodnoty – IS NULL
  • Co je to transakce. Co se stane, když nastane v průběhu vykonávání transakce chyba – ROLLBACK

    

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
5 based on 1 votes

1 thought on “SQL základy 1. část

Napsat komentář