Popis definiční části jazyka SQL,specifikace deklarace primárních a cizích klíčů a příklady na modelu knihovny: Porovnání verzí

(syntax příkazu CREATE)
(syntax příkazů ALTER a DROP)
Řádek 2: Řádek 2:
  
 
==Příkazy==
 
==Příkazy==
Data Definition Language obsahuje tři základní příkazy<ref>Programování v SQL. In: ''Ucimedatabaze.cz: Podpora výuky databázových systémů na SOŠ, založené na technologiích společnosti ORACLE'' [online]. 2011, s. 55 [cit. 2016-12-16]. Dostupné z: http://ucimedatabaze.cz/wp-content/uploads/2012/02/CZ_programovani_SQL.pdf</ref>: <br/>
+
Data Definition Language obsahuje tyto příkazy<ref>Programování v SQL. In: ''Ucimedatabaze.cz: Podpora výuky databázových systémů na SOŠ, založené na technologiích společnosti ORACLE'' [online]. 2011, s. 55 [cit. 2016-12-16]. Dostupné z: http://ucimedatabaze.cz/wp-content/uploads/2012/02/CZ_programovani_SQL.pdf</ref>: <br/>
# CREATE - vytvoření objektu (databáze, tabulky)
+
# CREATE - vytvoří objekt (databázi, tabulku)
# ALTER - změna definice objektu
+
# ALTER - změní definici objektu
# DROP - smazání objektu
+
# DROP - smaže objekt
# RENAME
+
# RENAME - přejmenuje objekt
# TRUNCATE
+
# TRUNCATE - vymaže data z tabulky, ale ne tabulku samotnou
  
 
===Syntax příkazů===
 
===Syntax příkazů===
Řádek 16: Řádek 16:
 
Vytvoření tabulky
 
Vytvoření tabulky
 
   CREATE TABLE nazev_tabulky (  
 
   CREATE TABLE nazev_tabulky (  
        sloupec_1 datovy_typ_1,
+
      sloupec_1 datovy_typ_1,
        ...
+
      ...
        sloupec_n datovy_typ_n);
+
      sloupec_n datovy_typ_n);
 
Název databáze i tabulky se musí řídit základními pravidly pro názvy všech objektů jazyka SQL - viz [[SQL]].<br/>
 
Název databáze i tabulky se musí řídit základními pravidly pro názvy všech objektů jazyka SQL - viz [[SQL]].<br/>
Každý název atributu bude jeden sloupec tabulky - nazývají se pole. A každý sloupec musí mít určený tzv. datový typ, který určuje hodnoty, které jsou pro daný sloupec přípustné.
+
Každý sloupec tabulky je jeden atribut (vlastnost) popisovaných dat. A každý sloupec musí mít určený tzv. datový typ, který určuje hodnoty, které jsou pro daný sloupec přípustné.
 
Nejčastějšími datovými typy jsou:
 
Nejčastějšími datovými typy jsou:
 
* CHAR(d) - řetězec znaků určité délky, kterou označuje číslo d. Např. tedy CHAR(20) bude řetězec o délce 20 znaků.
 
* CHAR(d) - řetězec znaků určité délky, kterou označuje číslo d. Např. tedy CHAR(20) bude řetězec o délce 20 znaků.
 
* DATE - datum ve formátu RRRR-MM-DD
 
* DATE - datum ve formátu RRRR-MM-DD
 
* INTEGER - číslo od -2 147 483 648 do 2 147 483 647, maximální počet znaků může být specifikován v závorkách. Existují i další datové typy pro čísla, ale INTEGER je pro většinu dat dostačující.<ref name="w3">W3schools.com [online]. [cit. 2017-01-03]. Dostupné z: http://www.w3schools.com/sql/default.asp</ref>
 
* INTEGER - číslo od -2 147 483 648 do 2 147 483 647, maximální počet znaků může být specifikován v závorkách. Existují i další datové typy pro čísla, ale INTEGER je pro většinu dat dostačující.<ref name="w3">W3schools.com [online]. [cit. 2017-01-03]. Dostupné z: http://www.w3schools.com/sql/default.asp</ref>
 +
 +
====ALTER====
 +
Přidání sloupce
 +
  ALTER TABLE nazev_tabulky
 +
      ADD nazev_sloupce datovy_typ;
 +
Odstranění sloupce
 +
  ALTER TABLE nazev_tabulky
 +
      DROP COLUMN nazev_sloupce;
 +
Úprava sloupce
 +
  ALTER TABLE nazev_tabulky
 +
      MODIFY nazev_sloupce datovy_typ;<ref name="w3"></ref>
 +
====DROP====
 +
Pozor, odstraňování objektů používáme pouze v případě, že jsme si jisti, že daná data už nebudeme potřebovat.<br/>
 +
Odstranění databáze
 +
  DROP DATABASE nazev_databaze;
 +
Odstranění tabulky
 +
  DROP TABLE nazev_tabulky;<ref name="w3"></ref>
  
 
==Primární a cizí klíče==
 
==Primární a cizí klíče==
Řádek 72: Řádek 89:
 
''Vysvětlení: datový typ, např. "CHAR(200)" nebo "INT" píšeme jenom tehdy, když něco vytváříme. Když mažeme, nemusíme datový typ psát/definovat.''<br/>
 
''Vysvětlení: datový typ, např. "CHAR(200)" nebo "INT" píšeme jenom tehdy, když něco vytváříme. Když mažeme, nemusíme datový typ psát/definovat.''<br/>
 
<br/>
 
<br/>
<ref name="SQL_5">Basic SQL statements: DDL and DML. In: Database design with UML and SQL, 3rd edition [online]. [cit. 2016-12-24]. Dostupné z: http://www.tomjewett.com/dbdesign/dbdesign.php?page=ddldml.php</ref><ref name="SQL_3">POKORNÝ, Jaroslav a Ivan HALAŠKA. Databázové systémy: vybrané kapitoly a cvičení. 2. přepr. vyd. Praha: Karolinum, 1998. ISBN 8071846872.</ref><ref name="SQL_6">W3schools.com [online]. [cit. 2017-01-03]. Dostupné z: http://www.w3schools.com/sql/default.asp</ref>
+
<ref name="SQL_5">Basic SQL statements: DDL and DML. In: Database design with UML and SQL, 3rd edition [online]. [cit. 2016-12-24]. Dostupné z: http://www.tomjewett.com/dbdesign/dbdesign.php?page=ddldml.php</ref><ref name="SQL_3">POKORNÝ, Jaroslav a Ivan HALAŠKA. Databázové systémy: vybrané kapitoly a cvičení. 2. přepr. vyd. Praha: Karolinum, 1998. ISBN 8071846872.</ref><ref name="w3"></ref>
  
 
== Odkazy ==
 
== Odkazy ==

Verze z 8. 4. 2018, 20:02

SQL (Structured Query Language) je databázový programovací jazyk, který se skládá z více částí. Jednou z nich je část definiční (Data Definition Language, DDL), která umožňuje vytvářet, upravovat a mazat objekty databáze.

Příkazy

Data Definition Language obsahuje tyto příkazy[1]:

  1. CREATE - vytvoří objekt (databázi, tabulku)
  2. ALTER - změní definici objektu
  3. DROP - smaže objekt
  4. RENAME - přejmenuje objekt
  5. TRUNCATE - vymaže data z tabulky, ale ne tabulku samotnou

Syntax příkazů

Obecná syntax základních tří příkazů vypadá takto:

CREATE

Vytvoření databáze

  CREATE DATABASE nazev_databaze;

Vytvoření tabulky

  CREATE TABLE nazev_tabulky ( 
     sloupec_1 datovy_typ_1,
     ...
     sloupec_n datovy_typ_n);

Název databáze i tabulky se musí řídit základními pravidly pro názvy všech objektů jazyka SQL - viz SQL.
Každý sloupec tabulky je jeden atribut (vlastnost) popisovaných dat. A každý sloupec musí mít určený tzv. datový typ, který určuje hodnoty, které jsou pro daný sloupec přípustné. Nejčastějšími datovými typy jsou:

  • CHAR(d) - řetězec znaků určité délky, kterou označuje číslo d. Např. tedy CHAR(20) bude řetězec o délce 20 znaků.
  • DATE - datum ve formátu RRRR-MM-DD
  • INTEGER - číslo od -2 147 483 648 do 2 147 483 647, maximální počet znaků může být specifikován v závorkách. Existují i další datové typy pro čísla, ale INTEGER je pro většinu dat dostačující.[2]

ALTER

Přidání sloupce

  ALTER TABLE nazev_tabulky
     ADD nazev_sloupce datovy_typ;

Odstranění sloupce

  ALTER TABLE nazev_tabulky
     DROP COLUMN nazev_sloupce;

Úprava sloupce

  ALTER TABLE nazev_tabulky
     MODIFY nazev_sloupce datovy_typ;[2]

DROP

Pozor, odstraňování objektů používáme pouze v případě, že jsme si jisti, že daná data už nebudeme potřebovat.
Odstranění databáze

  DROP DATABASE nazev_databaze;

Odstranění tabulky

  DROP TABLE nazev_tabulky;[2]

Primární a cizí klíče

Příklady

Konceptuální schéma knihovny
File:SQL_knihovna.png


Vytvoř tabulku dílo.
CREATE TABLE Dilo
(id_dilo PK INT,
nazev CHAR(200),
popis CHAR(200));

Vysvětlení interpunkce: středník odděluje jednotlivé SQL dotazy, čárka odděluje vstupní parametry.

Vytvoř tabulku vydání.
CREATE TABLE vydani
(id_vyd PK INT,
id_dilo FK INT REFERENCES Dilo(id_dilo),
cis_vyd CHAR(20),
rok_vyd CHAR(20));

Vysvětlení references: references píšeme, protože používáme cizí klíč - musíme definovat, kam cizí klíč odkazuje.

Vytvoř tabulku autorství.
CREATE TABLE Autorstvi
(id_autorstvi PK INT,
id_dilo FK INT REFERENCES Dilo(id_dilo),
id_aut FK INT REFERENCES Autor(id_aut));

Vymaž tabulku druh sekundárního autorství.
DROP TABLE Drusekaut;

Vymaž databázi knihovna.
DROP DATABASE Knihovna;

Uprav tabulku dílo: přidej sloupec evidenční číslo.
ALTER TABLE dilo
ADD ev_cis CHAR(200);

Uprav tabulku pokuta: odstraň datum pokuty.
ALTER TABLE pokuta
DROP dat_pok;

Vysvětlení: datový typ, např. "CHAR(200)" nebo "INT" píšeme jenom tehdy, když něco vytváříme. Když mažeme, nemusíme datový typ psát/definovat.

[3][4][2]

Odkazy

Reference

  1. Programování v SQL. In: Ucimedatabaze.cz: Podpora výuky databázových systémů na SOŠ, založené na technologiích společnosti ORACLE [online]. 2011, s. 55 [cit. 2016-12-16]. Dostupné z: http://ucimedatabaze.cz/wp-content/uploads/2012/02/CZ_programovani_SQL.pdf
  2. 2,0 2,1 2,2 2,3 W3schools.com [online]. [cit. 2017-01-03]. Dostupné z: http://www.w3schools.com/sql/default.asp
  3. Basic SQL statements: DDL and DML. In: Database design with UML and SQL, 3rd edition [online]. [cit. 2016-12-24]. Dostupné z: http://www.tomjewett.com/dbdesign/dbdesign.php?page=ddldml.php
  4. POKORNÝ, Jaroslav a Ivan HALAŠKA. Databázové systémy: vybrané kapitoly a cvičení. 2. přepr. vyd. Praha: Karolinum, 1998. ISBN 8071846872.

Použitá literatura

Externí odkazy

Související články

Klíčová slova

Databázové systémy, Jazyk SQL