Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Základní obeznámení s jazykem SQL Databázové systémy.

Podobné prezentace


Prezentace na téma: "Základní obeznámení s jazykem SQL Databázové systémy."— Transkript prezentace:

1 Základní obeznámení s jazykem SQL Databázové systémy

2 Historie 70-ta léta - vznikl z výzkumného projektu o relačních databázích vedeného v firmou IBM - Sequel byl přijat jako oficiální standard ANSI (označován SQL/86) 1989 – integritní dodatek (označován SQL/89) opravená verze označována jako SQL/92 - je standardem dodnes. - další standardy X_OPEN SQL (Unix), SAA-SQL (IBM) 1996 – dodatek pro uložené moduly 1999 – poslední sada dokumentů SQL/99 – SQL3 Pro řešení problémů různých syntaxi SQL (používaných před zavedením standardu), Microsoft formalizoval CLI – Common Language Interface pro pracovní stanice a oznámil, že jeho produkty by měli používat toto rozhraní – nazývá ho ODBC – Open Databaze Connectivity.

3 SQL patři do kategorie tzv. deklarativních programovacích jazyků - kód jazyka SQL nepíšeme v žádném samostatném programu, ale vkládáme jej do jiného programovacího jazyka, který je již procedurální. Se samotným jazykem SQL můžeme pracovat pouze v případě, že se terminálem připojíme na SQL server a na příkazový řádek zadáváme přímo příkazy jazyka SQL.

4 Kontexty použití jazyka SQL přímý (direct) SQL hostitelská verze (embedded) SQL jazyk modulů Hlavní kategorie příkazů definice dat a pohledů (DDL – Data Definition Language) manipulace s daty (DML – Data Manipulation Language) - pro přímý SQL - pro hostitelskou verzi autorizace (řízení přístupových práv) integrita dat řízení transakcí

5 SSQL se skládá z několika částí: 1) jazyk DDL - Data Definition Language - jedná se o jazyk pro vytváření databázových schémat a katalogů 2) jazyk SDL - Storage Definition Language - definuje způsob ukládání tabulek 3) jazyk VDL - View Definition Language, určující vytváření pohledů (pohled si lze představit jako virtuální tabulku složenou z různých jiných tabulek - pro návrháře a správce) 4) jazyk DML - Data Manipulation Language - obsahuje základní příkazy INSERT, UPDATE, DELETE a nejpoužívanější příkaz SELECT. S jazykem DML pracují nejvice koncovi uživatelé a programátoři aplikací

6 Návrh tabulky Podle pravidel používaných v SQL se k pojmenování sloupců používají alfanumerické znaky a podtržítka. Datové typy sloupců V SQL existují 3 hlavní typy: text čísla datum a čas V rámci hlavních typu pak existuje řada specifikací :

7 Číselné datové typy (MySQL) Název typuPopisIntervalBez znaménka TINYINT celé číslo – 1B -128 do 1270 – 255 SMALLINT celé číslo – 2B do – MEDIUMINT celé číslo – 3B do – INT celé číslo – 4B do – BIGINT celé číslo – 8B do – FLOAT(M,D) malé reálné číslo – 4B Liší se podle použitých hodnot. - DOUBLE(M,D) velké reálné číslo – 8B Liší se podle použitých hodnot. - DECIMAL(M,D)Hodnota M + 2B Liší se podle použitých hodnot. -

8 Textové datové typy (MySQL) Název datového typuMaximální velikostPřidělená paměť CHAR(X)255 Bdélka v B VARCHAR(X)255 Bdélka+1 B TINYTEXT255 Bdélka+1 B TINYBLOB255 Bdélka+2 B TEXT65535 Bdélka+2 B BLOB65535 Bdélka+2 B MEDIUMTEXT1,6 MBdélka+3 B MEDIUMBLOB1,6 MBdélka+3 B LONGTEXT4,2 GBdélka+4 B LONGBLOB4,2 GBdélka+4 B

9 Datum a čas (MySQL) TypVelikostPopis DATE3 bajtydatum ve formátu YYYY-MM-DD DATETIM8 bajtůdatum ve formátu YYYY-MM-DD HH:MM:SS TIME3 bajtyčas ve formátu HH:MM:SS TIMESTAMP4 bajtyve formátu YYYYMMDDHHMMSS (hodnoty končí v roce 2037) ENUM1 nebo 2 bajtyvýčet jenž označuje, že sloupec může nabýt jen jednu z povolen. hodnot SET1 – 8 bajtůvýčet jenž označuje, že sloupec může nabýt více povolených hodnot Ostatní (MySQL)

10 Modifikátory AUTO_INCREMENT – (automatické číslo) definuje datový typ pole, který při přidání nového záznamu do tabulky automaticky uloží jedinečné číslo o jedničku větší než předchozí. Nedovolí uložit už jednou použitou hodnotu, i když záznam s touto hodnotou byl již z databáze odstraněn. Modifikátor AUTO_INCREMENT lze použít pouze u polí s celočíselnými hodnotami. ZEROFILL – používá se k zobrazení vedoucích nul u čísel, která jsou založena na šířce zobrazení, tj. vyžadují určitý počet číslic. Chceme-li číslo 23 zobrazit jako , musíme pole deklarovat jako INT(6) ZEROFILL. BINARY – umožňuje ukládání textových informací jako binárních řetězců. Řetězce uložené v binárním formátu rozlišují velikost písmen. To se projeví také na třídění těchto polí. DEFAULT – umožňuje určit hodnotu pole, jehož hodnota nebude při uložení záznamu (řádku) známá. Výchozí hodnotou používanou v systému MySQL je NULL. Hodnota NULL je dosazována do všech prázdných polí, kromě polí typu ENUM.

11 Integritní omezení NULL a NOT NULL – určují, zda je zadání hodnoty do příslušného pole povinné. PRIMARY KEY – primární klíč je pole, jehož hodnota jedinečným způsobem identifikuje každý záznam tabulky. UNIQUE – omezující podmínka jedinečnosti vynucuje integritu entity klíčem, který není primární. Zajišťuje, aby do sloupců s omezující podmínkou jedinečnosti nebyly vloženy duplicitní hodnoty. UNSIGNED – označuje neznaménkový číselný typ.

12 Příkazy pro definici dat Vytvoření databáze CREATE DATABASE název_databáze; Pokud provedeme příkaz DROP DATABASE, tak přijdeme o všechny tabulky a data, která v databáze byla uložena. Odstranění databáze DROP DATABASE název_databáze;

13 Vytvoření bázové tabulky CREATE TABLE název_tabulky ( jméno_sloupce1 TYP [integritní omezení], jméno_sloupce2 TYP [integritní omezení],...); - příkaz vytvoří novou, prázdnou tabulku s definovaným počtem sloupců a popis uloží do katalogu Integritní omezení jsou omezení kladená na hodnoty ve sloupcích tabulky, aby nedošlo k porušení integrity dat. CREATE TABLE název_tabulky (definice_sloupce, … [definice_integritních_omezení_tabulky] ); jméno_sloupce TYP [impl_hodnota] [integritní omezení_sloupce] Definice sloupce

14 Integritní omezení celé tabulky PRIMARY KEY (jm_sloupce, …) UNIQUE (jm_sloupce, …) FOREIGN KEY (jm_sloupce, …) REFERENCES tabulka [(jm_sloupce, …)] [událost ref_akce] CHECK (podmíněný_výraz) Integritní omezení sloupce NULL, resp NOT NULL CHECK (podmíněný_výraz) PRIMARY KEY UNIQUE FOREIGN KEY REFERENCES tabulka [(jm_sloupce)] [událost ref_akce] Referenční akce - CASCADE, SET DEFAULT, SET NULL

15 Př. Spořitelna - tabulky KLIENT: r_cislo jmeno prijmeni ulice mesto /1224 Jan Nový Jánská 25Zlín /5267 Petra Nováková Poštová 128Lešná /4891 PavelNováček Nezvalova 697Zlín /2459 Ivana Novotná Pod mlýnem 12Lukov UCET: POBOCKA: c_uctu stav r_cislopobockanazevjmeni /5267Zarámí 325Nám. Míru /4891Nám. Míru 12Zarámí /5267Nám. Míru 12 TRANSAKCE: c_uctu c_transakcecastkadatum

16 CREATE TABLE Klient (r_cislo VARCHAR(11) NOT NULL, jmeno VARCHAR(20) NOT NULL, prijmeni VARCHAR(30) NOT NULL, ulica VARCHAR(30) NOT NULL, mesto VARCHAR(30) NOT NULL, PRIMARY KEY (r_cislo)); CREATE TABLE Pobocka (nazev VARCHAR(10), jmeni DECIMAL(10,2), PRIMARY KEY (nazev)); CREATE TABLE Ucet (c_uctu DECIMAL(7,0) NOT NULL, stav DECIMAL(10,2), r_cislo VARCHAR(11) NOT NULL, pobocka VARCHAR(20) NOT NULL, PRIMARY KEY (c_uctu), FOREIGN KEY (r_cislo) REFERENCES Klient ON DELETE CASCADE, FOREIGN KEY (pobocka) REFERENCES Pobocka )

17 Změna struktury tabulky ALTER TABLE název_tabulky aktualizace; ALTER TABLE název_tabulky ADD COLUMN jméno_sloupce typ_sloupce [integritní omezení]; Modifikuje tabulku a změní informace v katalogu V případě, že v tabulce již nějaká data jsou, lze použít následující příkaz: Přidání sloupců do tabulky

18 Úprava definice sloupců ALTER TABLE název_tabulky CHANGE COLUMN staré_jméno_sloupce nové_jméno_sloupce typ_sloupce [integritní mezení]; ALTER TABLE název_tabulky DROP COLUMN jméno_sloupce [CASCADE] Základní příkaz: Mazání sloupců Máme-li nějaký sloupec, jehož hodnoty už opravdu nepotřebujeme, jednoduše jej smažeme následujícím příkazem:

19 Přejmenování sloupce První možnost je rychlejší a využijeme v ní již známý příkaz : Druhá možnost je obecnější je potřeba provést ji ve více krocích: ALTER TABLE název_tabulky CHANGE COLUMN staré_jméno_sloupce nové_jméno_sloupce typ_sloupce [integritní omezení]; ALTER TABLE název_tabulky ADD COLUMN jméno_sloupce typ_sloupce [integritní omezení]; UPDATE název_tabulky SET staré_jméno_sloupce = nové_jméno_sloupce; ALTER TABLE název_tabulky DROP staré_jméno_sloupce;

20 Přejmenování tabulky Změna názvu tabulky je možná v MySQL následovně: Pokud provedeme příkaz DROP TABLE, tak přijdeme o všechna data, která v mazané tabulce byla uložena. ALTER TABLE název_tabulky RENAME AS nový_název_tabulky; Odstranění tabulky DROP TABLE název_tabulky; Vytvoření indexu CREATE [UNIQUE]INDEX jm_indexu ON jm_bázové_tabulky (jm_sloupce [ASC|DESC], … )

21 Příkazy pro manipulaci s daty Vkládání záznamů INSERT INTO název_tabulky [(náz_sloupce]] zdroj Zdroje pro vkládaní dat: Řádek implicitních hodnot – z příkazu CREATE TABLE Řádek zadaných hodnot DEFAULT_VALUES VALUES (skalarní_výraz|NULL|DEFAULT,…) Výsledek poddotazu tabulkový_výraz

22 Zobrazení vložených dat Pro zobrazení dat v tabulce se používá základní výběrový příkaz SELECT: SELECT * FROM název_tabulky; Aktualizace dat UPDATE název_tabulky SET sloupec = ’hodnota’; UPDATE název_tabulky SET sloupec1 = ’hodnota1’, sloupec2 = ’hodnota2’,…; UPDATE název_tabulky SET sloupec1 = ’hodnota1’ WHERE sloupec2 = ’hodnota2’; Použití klauzule WHERE: Pro změnu více hodnot se používá zápis:

23 Odstraňování dat POZOR! – po odstranění záznamu už není možné záznam obnovit. Je dobré mít data pro jistotu zálohovaná. Při odstraňování dat je nutné používat podmínku WHERE, jinak se může stát, že z tabulky odstraníte všechna data! Chcete-li zajistit větší bezpečnost před nechtěným odstraněním záznamů, můžete použít klauzuli LIMIT, která omezí počet odstraňovaných záznamů: DELETE FROM název_tabulky WHERE sloupec = ’hodnota’; DELETE FROM název_tabulky WHERE sloupec = ’hodnota’LIMIT 1; Pro účely odstraňování dat se používá příkaz DELETE:


Stáhnout ppt "Základní obeznámení s jazykem SQL Databázové systémy."

Podobné prezentace


Reklamy Google