Obsahuje tabulky, úvod, přílohy, cvičení, slovníček častých příkazů jazyka SQL, rejstřík, údaje o autorech, stejnojmenný přiložený CD-ROM obsahuje Oracle Database 10g pro Windows, e-book s lekcemi pro 22.-28. den a skripty k příkladům
27 // Stručný obsah // Úvod // Týden 1 Stručný přehled // Den 1 Začínáme s SQL // 2 Úvod do dotazů // 3 Výrazy, podmínky a operátory // 4 Zpracování dat pomocí vestavěných funkcí // 5 Klauzule v dotazech SQL // 6 Spojování tabulek // 7 Vkládání poddotazů do dotazů // Týden 1 Opakování Týden 2 Stručný přehled // Den 8 Normalizace databáze // 9 Vytváření a údržba tabulek // 10 Zajištění integrity dat // 11 Manipulace s daty // 12 Řízení transakcí // 13 Data a časy v SQL // 14 Vytváření pohledů // Týden 2 Opakování Týden 3 Stručný přehled // Den 15 Zlepšování výkonu indexací tabulek // 16 Optimalizace příkazů SQL // 17 Bezpečnost databáze // 18 Datový slovník (systémový katalog) // 19 Uložené procedury, spouště a vnořený kód SQL // 20 Nové objekty dle posledního standardu: SQL3 // 21 Generování příkazů SQL pomocí jazyka SQL // Týden 3 Opakování // 31 // 33 // 47 // 61 // 103 // 151 // 179 // 205 // 229 // 231 // 233 // 245 // 267 // 283 // 303 // 317 // 335 // 353 // 355 // 357 // 373 // 393 // 411 // 437 // 461 // 471 // 491 // Obsah // Úvod 27 // Týden 1 Stručný přehled 31 // Den 1 Začínáme s SQL 33 // Stručná historie jazyka SQL ...33 // Stručná historie databází ...34 // Dvanáct pravidel Dr. Codda pro model relační databáze ...34 // Podoba dnešní databáze...38 // Jazyk pro různé produkty...39 // Rané implementace ...40 // Vývoj aplikací SQL a klient-server...40
// Přehled jazyka SQL...40 // Oblíbené implementace jazyka SQL...41 // Microsoft Access ...41 // MySQL ...41 // Personal Oracle...41 // Microsoft Query...42 // Rozhraní ODBC ...42 // Začlenění jazyka SQL do programování aplikací...44 // Shrnutí...43 // Otázky a Odpovědi...45 // Úkoly...46 // Kvíz...46 // Praktická cvičení...46 // Den 2 Úvod do dotazů 47 // Jazyky SQL v souvislostech...47 // Základní syntaxe dotazu ...48 // Stavební kameny získávání dat:SELECT a FROM...49 // Použití dotazu...50 // Váš první dotaz...51 // Ukončení příkazu SQL...52 // Naučte se SQL za 21 dní // Co jsou indexy? ...358 // Tipy pro indexování...364 // Indexování více polí...365 // Klíčové slovo UNIQUE v příkazu CREATE INDEX...367 // Indexy a spojení ...368 // Použití clusterovaných indexů...369 // Shrnutí ...370 // Otázky a odpovědi ...370 // Cvičení...371 // Kvíz ...371 // Praktická cvičení ...371 // Den 16 Optimalizace příkazů SQL // Čitelnost příkazů SQL ... // Vyhýbání se prohledávání celých tabulek... // Vytvoření dalšího indexu... // Uspořádání prvků v dotazu... // Procedury ... // Vyhýbání se operátoru OR ... // OLAP versus OLII3 ... // Vylaďování systému OLTP... // Vylaďování systému OLAP... // Dávky versus transakce... // Optimalizace zpracovávání dat odstraněním indexů Časté používání příkazu COMMIT šetří práci správci // Znovu vytvoření tabulek a indexů v dynamickém prostředí
// Vyladbvání databáze... // Identifikace překážek výkonu ... // Vestavěné nástroje pro vylaďování... // Shrnutí // Otázky a odpovědi Cvičení... // Kvíz ... // Praktická cvičení // 373 // .374 // .375 // .376 // .376 // .378 // .378 // .379 // .380 // .380 // .381 // .382 // .383 // .384 // .386 // .388 // .389 // .389 // .390 // .390 // .391 // .391 // Den 17 Bezpečnost databáze // Hledáme správce databáze // 393 // .393 // Obsah // Populárni databázové produkty a bezpečnost...394 // Čím je databáze zabezpečená?...395 // Personal Oracle a bezpečnost ...395 // Vytváření uživatelů...395 // Vytváření rolí...398 // Práva uživatelů...399 // Přístup uživatele ? pohledům ...399 // Využití pohledů v oblasti bezpečnosti...405 // Používání synonym místo pohledů...406 // Klauzule WITH GRANT OPTION...408 // Shrnutí ...409 // Otázky a odpovědi ...409 // Cvičení...410 // Kvíz ...410 // Praktická cvičení ...410 // Den 18 Datový slovník (systémový katalog) // Úvod do datového slovníku... // Identifikace uživatelů datového slovníku . . Prozkoumávání obsahu datového slovníku // Datový slovník Oracle ... // Datový slovník Sybase ... // Datový slovník MySQL... // Pohled do nitra datového slovníku Oracle . // Pohledy pro uživatele... // Kdo jste?... // Jaká máte práva? ... // ? čemu máte přístup?... // Pohledy pro správce databáze (DBA) . . . // Informace o uživatelích databáze... // Zabezpečení
databáze... // Dynamické výkonové pohledy... // Příkazy SHOW v MySQL... // Tabulka PLAN ... // Shrnutí ... // Otázky a odpovědi ... // Cvičení... // // 411 // 412 // 413 // 413 // 413 // 414 // 414 // 414 // 414 // 413 // 416 // 422 // 423 423 431 // Naučte se SQL za 21 dní // Kvíz ...435 // Praktická cvičení ...435 // Den 19 Uložené procedury, spouště a vnořený kód SQL 437 // Vytváření dočasných tabulek...438 // Kurzorové tabulky...442 // Vytváření kurzorové tabulky ...443 // Otevření kurzorové tabulky...443 // Procházení kurzorovou tabulkou...443 // Testování stavu kurzorové tabulky...444 // Uzavření kurzorové tabulky...445 // Rozsah platnosti kurzorových tabulek...446 // Vytváření a využití uložených procedur ...447 // Parametry uložených procedur ...448 // Odstranění uložené procedury...450 // Vnořování uložených procedur ...450 // Vytváření a využití spouští...452 // Spouště a transakce ...453 // Omezení při používání spouští ...454 // Vnořené spouště ...454 // Testování příkazů SELECT před implementací ...454 // Integrovaný kód SQL...455 // Statické a dynamické SQL...455 // Programování v jazyce SQL...457 // Shrnutí ...457 // Otázky a odpovědi ...458 // Cvičení...458 // Kvíz ...459 // Praktická cvičení ...459 // Den 20 Nové objekty dle posledního standardu: SQL3 461 // Pnkaz CREATE ROLE ...462 // Příklad 20.1 ...463 // Vytváření spouští...463 // Příkaz CREATE
TYPE ...465 // Shrnutí ...468 // Obsah // Otázky a odpovědi ...469 // Cvičení...469 // Kvíz ...469 // Praktická cvičení ...469 // Den 21 Generování příkazů SQL pomocí jazyka SQL 471 // Proč generovat príkazy SQL... 471 // Různé príkazy jazyka SQĽTlus ...473 // SET ECHO ON/OFF...473 // SET FEEDBACK ON/OFF ...473 // SET HEADING ON/OFF ...473 // SPOOL FILENAME/OFF...474 // START FILENAME...474 // ED FILENAME...474 // Počítání řádků ve všech tabulkách...474 // Přidělování systémových práv více uživatelům...477 // Přidělování práv ? vašim tabulkám jinému uživateli ...478 // Deaktivace omezení tabulky při vkládání dat...479 // Vytváření více synonym na jeden průchod...480 // Vytváření pohledů na základě vašich tabulek...483 // Vyprázdnění všech tabulek ve schématu ...484 // Generování skriptů pro příkazový řádek ...484 // Zpětné inženýrství tabulek a indexů...486 // Generování SQL a jiné techniky v praxi...486 // Shrnutí ...487 // Otázky a odpovědi ...487 // Cvičení...488 // Praktická cvičení ...489 // Týden 3 Opakování 491 // Příloha A Odpovědi 493 // Příloha ? Skripty pro vytvoření ukázkových tabulek 533 // Příloha C Skripty pro naplnění ukázkových tabulek 541 // Příloha D Použití databázového softwaru pro cvičení // 549 // 22 // Naučte se SQL za 21 dní // Příloha E Prémiová cvičení 553 // Příloha F Slovníček častých příkazů jazyka SQL 559 // Příloha
G Tabulka ASCI 565 // Příloha H Další zdroje 571 // Rejstřík 575 // Naučte se SQL za 21 dní // Změna pořadí sloupců...52 // Výběr jednotlivých sloupců...54 // Výběr jiných tabulek ...54 // Výběr navzájem odlišných hodnot...55 // Shrnutí...56 // Otázky a odpovědi...56 // Úkoly...57 // Kvíz... 59 // Praktická cvičení...59 // Den 3 Výrazy, podmínky a operátory // Práce s výrazy v dotazech... // Začlenění podmínek do dotazů ... Použití klauzule WHERE... // ké prostředí v dotazech // Nastavení v Oracle... // V Microsoft Windows... // Pod Linuxem... // Nastavení v MySQL ... // Nastavení na Microsoft SQL Serveru // Používání operátorů ... // Aritmetické operátory... // Porovnávací operátory ... // Znakové operátory... // Logické operátory ... // Množinové operátory... // Další operátory: IN a BETWEEN . . // Shrnutí... // Otázky a odpovědi // Úkoly... // Kvíz ... // Praktická cvičení // 61 // .61 // .62 // .62 // .63 // .63 // .64 // .64 // .64 // .65 // .66 // .66 // .77 // .84 // .90 // .94 // .97 // .99 // .99 // .99 // 100 // 101 // Den 4 Zpracování dat pomocí vestavěných funkcí 103 // Sumarizace dat pomocí agregačních funkcí ...104 // COUNT...ř...104 // SUM...105 // / ’ // / // Obsah // AVG... // MAX... // MIN ... // VARIANCE... // STDDEV ... // Formátování kalendářních a časových údajů pomocí funkcí // ADD_MONTHS/ADD_DATE ... // LAST_DAY... // MONTHS_BETWEEN ... // NEW_TIME ...
// NEXT_DAY... // SYSDATE... ... // Funkce pro aritmetické operace... // ABS ... // CEIL a FLOOR... // COS, COSH, SIN, SINH, TAN a TANH ... // EXP ... // LN a LOG ... // MOD ... // POWER... // SIGN... // SQRT ... // Upravení vzhledu znakových hodnot pomocí funkcí ... // CHR ... // CONCAT... // INITCAP ... // LOWER a UPPER... // LPAD a RPAD ... // LTRIM a RTRIM ... // REPLACE ... // SUBSTR... // TRANSLATE... // INSTR... // LENGTH... // Konverzní funkce ... // TO.CHAR ... // TO NUMBER... // 107 // 107 // 108 // 109 // 110 111 111 // ?? // 114 // 115 // 116 116 118 118 // 119 // 120 122 122 // 123 // 124 // 124 // 125 // 125 // 126 126 128 128 // 130 // 131 // 132 // 133 137 // 137 // 138 // 139 // 139 // 140 // ? // Naučte se SQL za 21 dní // Různé funkce // GREATEST a LEAST ... // USER ... // Další příklady znakových funkcí MySQL // LENGTH ... // LOCATE ... // INSTR... // LPAD ... // RPAD ... // LEFT... // RIGHT ... // SUBSTRING... // LTRIM... // RTRIM... // TRIM... // Další příklady kalendářních funkcí MySQL // DATE_FORMAT... // TIME_FORMAT ... // CURDATE... // Shrnutí ... // Otázky a odpovědi Cvičení... // Kvíz ... // Praktická cvičení // 140 // 140 // 141 // 141 // 142 142 142 // 142 // 143 143 143 143 // 143 // 144 144 // 144 // 144 // 146 // 146 // 146 // 146 // 147 // 148 148 // Den 5 Klauzule v dotazech SQL 151 // Definování kritéria v klauzuli WHERE ...152 // Pořádek z chaosu: klauzule ORDER BY...154 // Klauzule GROUP BY...l6l // Klauzule
HAVING...166 // Kombinace klauzulí...171 // Příklad 5.1...171 // Příklad 5.2...172 // Příklad 5.3...172 // Velké finále...174 // Shrnutí ...176 // Otázky a odpovědi ...176 // Obsah // Cvičení...176 // Kvíz ...177 // Praktická cvičení ...177 // Den 6 Spojování tabulek 179 // Spojení více tabulek v jednom příkazu SELECT ...179 // Křížová spojení tabulek...181 // Nalezení správného sloupce ... .186 // Spojování tabulek na základě rovnosti...186 // Spojení tabulek na základě nerovnosti...193 // Vnější spojení versus vnitřní spojení...194 // Spojení tabulky samé se sebou: vlastní spojení...198 // Shrnutí ...200 // Otázky a odpovědi ...200 // Cvičení...200 // Kvíz ...202 // Praktická cvičení ...202 // Den 7 Vkládání poddotazů do dotazů 205 // Vytvoření poddotazů...207 // Použití agregovaných funkcí v poddotazech...213 // Vnořování poddotazů ...215 // Korelované dotazy s vnějšími odkazy...218 // Operátory EXISTS, ANY a ALL...221 // Shrnutí ... 225 // Otázky a odpovědi ...225 // Cvičení...226 // Kvíz ...226 // Praktická cvičení ...227 // Týden 1 Opakování 229 // Týden 2 Stručný přehled 231 // Den 8 Normalizace databáze 233 // Normalizace databáze ...233 // Logický návrh databáze ...234 // Naučte se SQL za 21 dni // Normální formy...235 // První normální forma ...235 // Druhá normální forma ...236 // Třetí normální forma...237 // Uplatnění normalizace v praxi...238 // Referenční
integrita...238 // Výhody normalizace ...240 // Nevýhody normalizace ...240 // Denormalizace databáze ...241 // Shrnutí ...241 // Otázky a odpovědi ...242 // Úkoly...242 // Kvíz ...242 // Praktická cvičení ...243 // Den 9 Vytváření a údržba tabulek 245 // Začátky s příkazem CREATE DATABASE...246 // Možnosti příkazu CREATE DATABASE ...247 // Návrh databáze ...248 // Vytvoření datového slovníku (systémového katalogu) ...248 // Vytváření klíčových polí...249 // Rozkládání dat na menší jednotky...250 // Definice tabulek příkazem CREATE TABLE ...251 // Název tabulky ...251 // Název pole ...252 // Datový typ pole...252 // Hodnota NULL...253 // Jedinečná pole...254 // Uložení a velikost tabulky...256 // Vytvoření tabulky z jiné tabulky...257 // Změna struktury tabulky příkazem ALTER TABLE ...259 // Příkaz DROP TABLE...26l // Příkaz DROP DATABASE ...262 // Práce s příkazy DROP TABLE a DROP DATABASE ...262 // Shrnutí ...262 // Otázky a odpovědi ...263 // Úkoly...263 // O b s a h // Kvíz ...264 // Praktická cvičení ...264 // Den 10 Zajištění integrity dat 267 // Úvod do omezení...267 // Integrita dat...268 // Proč používat omezení? ...268 // Jaké jsou typy omezení... . .269 // Zákaz prázdných hodnot: NOT NULL...269 // Primární klíč: PRIMARY KEY...270 // Jedinečné hodnoty: UNIQUE...272 // Cizí klíč: Foreign Key...273 // Kontrola rozsahu hodnot: Check ...274 // Správa omezení...276 // Správné
pořadí...276 // Různé přístupy ? tvorbě omezení...277 // Příklad sestav dokumentujících referenční integritu v Oracle...277 // Sestava na základě podřízené tabulky...278 // Sestava na základě nadřízené tabulky...279 // Shrnutí ...280 // Otázky a odpovědi ...280 // Úkoly...281 // Kvíz ...281 // Praktická cvičení ...281 // Den 11 Manipulace s daty 283 // Úvod do příkazů pro manipulaci s daty...283 // Zadávání dat příkazem INSERT ...284 // Vložení jednoho záznamu příkazem INSERT...VALUES...284 // Příklad 11.1...285 // Příklad 11.2...286 // Vkládání prázdných hodnot...286 // Vkládání jedinečných hodnot ...287 // Zadávání více záznamů příkazem INSERT...SELECT...288 // Příklad 11.3...289 // Modifikace stávajících dat příkazem UPDATE...290 // Příklad 11.4...290 // Naučte se SQL za 21 dni // Příklad 11.5 Příklad 11.6 // Příklad 11.7... // Příklad 11.8... // Import a export dat z cizích zdrojů // Microsoft Access ... // Microsoft SQL Server ... // Personal Oracle ... // MySQL ... // Shrnutí ... // Otázky a odpovědi... // Úkoly... // Kvíz ... // Praktická cvičení ... // . .291 . .292 . .293 // . .294 . .294 . .296 . .297 . .298 . .298 . .299 . .299 . .299 . .300 . .300 . .301 // Den 12 Řízení transakcí 303 // Řízení transakcí...304 // Bankovní aplikace ...304 // Zahájení transakce...306 // Ukončení transakce...308 // Zrušení transakce ...309 // Úložné body transakce ...312
Shrnutí ...314 // Otázky a odpovědi ...315 // Úkoly...315 // Kvíz ... 315 // Praktická cvičení ...316 // Den 13 Data a časy v SQL 317 // Jak jsou hodnoty data a časy uloženy?...318 // Standardní datové typy ANSI pro datum a čas...318 // Prvky datového typu DATETIME...319 // Implementace konkrétních datových typů...319 // Použití datových funkcí v dotazu...320 // Aktuální datum ...320 // Časová pásma ...321 // Obsah // Přičítání doby k datům...322 // Odečítání dat...324 // Porovnávám dat a časových období...326 // Nejrůznější další kalendářní funkce ...326 // Konverze datových formátů...326 // Kalendářní obrazy ...327 // Konverze kalendářních dat na znakové řetězce...329 // Konverze znakových řetězců na data...330 // Shrnutí ...331 // Otázky a odpovědi ...331 // Úkoly...332 // Kvíz ...332 // Praktická cvičení ...332 // Den 14 Vytváření pohledů 335 // Úvod do pohledů ...335 // Práce s pohledy...336 // Rozbor jednoduchého pohledu ...338 // Přejmenování sloupců...340 // Zpracování pohledu pomocí SQL...341 // Restrikce použití příkazu SELECT...344 // Modifikace dat v pohledu...344 // Problémy s modifikací dat v pohledech ...346 // Obvyklé využití pohledů...346 // Konverze jednotek...347 // Odstraňování pohledů příkazem DROP VIEW...350 // Shrnutí ...350 // Otázky a odpovědi ...351 // Úkoly...351 // Kvíz ...351 // Praktická cvičení ...352 // Týden 2 Opakování Týden 3
Stručný přehled // Den 15 Zlepšování výkonu indexací tabulek // Použití indexů // // 353 // 355 // 357 // BRNO