Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

### Definice a manipulace s daty, ostatní příkazy

Standard SQL podporuje několik druhů datových typů:

- textové v národní a globální (UTF) znakové sadě (několika druhů - proměnné a pevné délky): `CHARACTER(n)`, `NCHAR(n)`, `CHAR VARYING(n)`
- číselné typy - `NUMERIC(p[,s]), INTEGER, INT, SMALLINT,
  FLOAT(presnost), REAL, DOUBLE PRECISION`
- datumové typy - `DATE, TIME, TIMESTAMP, TIMESTAMP(presnost_sekund) WITH TIMEZONE`

Databázové servery ne vždy podporují všechny uvedené typy. Nemusí je podporovat nativně, někdy si pouze přeloží název typu na podobný nativně podporovaný typ.

Příkaz `CREATE TABLE`

Tento příkaz slouží k vytvoření nové tabulky. Je nutné definovat její název, atributy a jejich domény (datové typy); dále je možné definovat integritní omezení (klíče, cizí klíče, odkazy, podmínky). Příkaz vypadá následovně:

`CREATE TABLE <název> <def. sloupce/i.o. tabulky, ...>`
A uvnitř potom

    def. sloupce = <název> <dat.typ>
    [DEFAULT NULL|<hodnota>] [<i.o.sloupce>]
    dat.typ = [VARCHAR(n) | BIT(n) | INTEGER | FLOAT | DECIMAL ...]
    i.o.sloupce = [CONSTRAINT <jméno>] [NOT NULL / UNIQUE / PRIMARY KEY],
    REFERERENCES <tabulka>(<sloupec>) <akce>, CHECK <podmínka>
    akce = [ON UPDATE / ON DELETE]
    [CASCADE / SET NULL / SET DEFAULT / NO ACTION(hlášení chyby) ]
    i.o.tabulky = UNIQUE, PRIMARY KEY <sloupec, ... >,
    FOREIGN KEY <sloupec, ... >,
    REFERENCES <tabulka>(<sloupec, ... >),
    CHECK( <podmínka> )

Příkazy pro manipulaci se schématem

- Úprava tabulky:

      ALTER TABLE <název> ADD {COLUMN} <def.sloupce>, ADD <i.o.tabulky>,
      ALTER COLUMN <sloupec> [ SET / DROP ], DROP COLUMN <sloupec>,
      DROP CONSTRAINT <jméno i.o.>

- Smazání tabulky (není to samé jako vymazání všech dat z tabulky!):

      DROP TABLE <tabulka>

- Vytvoření pohledu - navenek se chová jako tabulka, ale vnitřně se při každém dotazu provede vnořený dotaz (který definicí pohledu zapisuji):

      CREATE VIEW <název "tabulky"> ( <sloupec, ... > )
      AS <dotaz> {WITH [ LOCAL / CASCADED ] CHECK OPTION }

  Některé databázové platformy umožňují do takto vytvořených pohledů i zapisovat.

Příkazy pro manipulaci s daty

- Vložení nových dat do tabulky

      INSERT INTO <tabulka> ( <sloupec, ... > )
      [VALUES ( <výraz, ... > ) / (<dotaz>) ]

- Úprava dat (na řádcích které vyhovují podmínce se nastaví zadané hodnoty vybraným sloupcům):

      UPDATE <tabulka> SET
      ( <sloupec> = [ NULL / <výraz> / <dotaz> ] , ... )
      WHERE (<podmínka>)

- Smazání řádků vyhovujících podmínce z tabulky:

      DELETE FROM <tabulka> ( WHERE <podmínka> )

TODO: doplnit ?