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

Verze z 8. 4. 2018, 19:02, kterou vytvořila Hana.Svetelska (diskuse | příspěvky) (syntax příkazů ALTER a DROP)

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