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

Slides:



Advertisements
Podobné prezentace
Základní obeznámení s jazykem SQL
Advertisements

Základy jazyka SQL Jan Tichava
Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Fakulta elektrotechniky a informatiky
Základní obeznámení s jazykem SQL
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Martin Kirschbaum 4.A,  určitá uspořádaná množina informací (dat) uložená na paměťovém médiu  Databázový program - umožňuje tvořit, editovat,
Databáze Jiří Kalousek.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databázové systémy Štěpán Šípal.
Databáze Úvod.
Databáze výhody a nevýhody Ing. Emilie Šeptáková
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Fakulta elektrotechniky a informatiky
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační databáze.
Konceptuální návrh databáze
Vypracoval: Ondřej Dvorský Třída: VIII.A
Aplikační a programové vybavení
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy Přednáška č. 6.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Aplikační a programové vybavení
Konceptuální návrh databáze
Databázové modelování
Databázové systémy Relační model.
Informatika II PAA DOTAZOVACÍ JAZYKY
Aplikační a programové vybavení
Aplikační a programové vybavení
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Základní obeznámení s jazykem SQL Databázové systémy.
Databázové systémy SQL Výběr dat.
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
Příkazy jazyka SQL ve VFP a na SQL Serveru
Databázové systémy I Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Úvod do databází zkrácená verze.
Datové typy MS Access (3). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně.
Databáze MS ACCESS 2010.
Databázové systémy a SQL
Unix a Internet 9. SQL server
Z3104 Geodatabáze úvod.
Dotazovací jazyk SQL I.
Databázové systémy přednáška 2 – Datové typy
Z3104 Geodatabáze úvod.
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Počítačová cvičení z předmětu Datové sklady
Relační model databáze
Přednáška 9 Triggery.
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Transkript prezentace:

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

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.

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.

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í

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í

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í :

Čí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. -

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

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)

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.

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.

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;

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

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

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

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 )

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

Ú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:

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;

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], … )

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

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:

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: