Základní obeznámení s jazykem SQL

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

Základní obeznámení s jazykem SQL
Tabulky v MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
Základy jazyka SQL Jan Tichava
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.
Databáze.
 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
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
Temporální databáze a TSQL
SQL Přednáška DB1. Literatura CONNOLLY, T.M.-BEGG,C.E.-STRACHAN,A.D.: Database Systems – A Practial Approach to Design, Implementation and Management.
MySQL ÚVOD DO JAZYKA SQL
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.
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační 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.
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ý.
MySQL ÚVOD DO JAZYKA SQL
Aplikační a programové vybavení
Databázové systémy UIN010 N-ticový (řádkový) relační kalkul Hodnoty proměnných n-tice relací (řádky) Konstanty hodnoty atributů Unární funkční.
Databázové modelování
Informatika II PAA DOTAZOVACÍ JAZYKY
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK2(p_table_name VARCHAR2, p_min_nuls NUMBER, p_drop.
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
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B15 Autor Ing. Jiří Kalousek Období vytvoření březen.
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.
Základní obeznámení s jazykem SQL Databázové systémy.
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.
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
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
Dotazovací jazyk SQL I.
Přednáška 9 Triggery.
Databázové systémy a SQL
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Transkript prezentace:

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

Číselné datové typy (MySQL) Název typu Popis Interval Bez znaménka TINYINT celé číslo – 1B -128 do 127 0 – 255 SMALLINT celé číslo – 2B -23768 do 32767 0 – 56535 MEDIUMINT celé číslo – 3B -8388608 do 8388607 0 – 16777215 INT celé číslo – 4B -2147483648 do 2147483647 0 – 4294967295 BIGINT celé číslo – 8B -9223372036854775808 do 9223372036854775807 0 – 18446744073709550615 FLOAT(M,D) malé reálné číslo – 4B Liší se podle použitých hodnot. - DOUBLE(M,D) velké reálné číslo – 8B DECIMAL(M,D) Hodnota M + 2B

Textové datové typy (MySQL) Název datového typu Maximální velikost Přidělená paměť CHAR(X) 255 B délka v B VARCHAR(X) délka+1 B TINYTEXT TINYBLOB délka+2 B TEXT 65535 B BLOB MEDIUMTEXT 1,6 MB délka+3 B MEDIUMBLOB LONGTEXT 4,2 GB délka+4 B LONGBLOB

Datum a čas (MySQL) Typ Velikost Popis DATE 3 bajty datum ve formátu YYYY-MM-DD DATETIM 8 bajtů datum ve formátu YYYY-MM-DD HH:MM:SS TIME čas ve formátu HH:MM:SS TIMESTAMP 4 bajty ve formátu YYYYMMDDHHMMSS (hodnoty končí v roce 2037) ENUM 1 nebo 2 bajty výčet jenž označuje, že sloupec může nabýt jen jednu z povolen. hodnot SET 1 – 8 bajtů výčet jenž označuje, že sloupec může nabýt více povolených hodnot

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 000023, 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.

Práce s databází Výpis seznamu existujících databází na serveru MySQL: SHOW databases; 1. Existuje-li databáze, se kterou chceme pracovat - výběr databáze: např. Firma USE Firma; 2. Neexistuje-li databáze, se kterou chceme pracovat a) vytvoření databáze: např. Firma CREATE DATABASE Firma; b) výběr databáze: Firma USE Firma;

Vytvoření tabulky CREATE TABLE název_tabulky ( jméno_sloupce1 TYP [integritní omezení], jméno_sloupce2 TYP [integritní omezení], ...);

Vkládání záznamů Vkládání několika záznamů najednou : INSERT INTO název_tabulky (sloupec1, sloupec4, …) VALUES (hodnota1, hodnota4, …); nebo INSERT INTO tabulka VALUES(hodnota1, hodnota2, …); Vkládání několika záznamů najednou : INSERT INTO název_tabulky (sloupec1, sloupec4, …) VALUES (hodnota11, hodnota41, …), (hodnota12, hodnota42, …), (hodnota13, hodnota43, …);

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’; Pro změnu více hodnot se používá zápis: UPDATE název_tabulky SET sloupec1 = ’hodnota1’, sloupec2 = ’hodnota2’,…; Použití klauzule WHERE: UPDATE název_tabulky SET sloupec1 = ’hodnota1’ WHERE sloupec2 = ’hodnota2’;

Odstraňování dat Pro účely odstraňování dat se používá příkaz DELETE: DELETE FROM název_tabulky WHERE sloupec = ’hodnota’; 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’LIMIT 1;

Změna struktury Přidání sloupců do tabulky ALTER TABLE název_tabulky Základní příkaz, který se používá pro jakoukoliv manipulaci s existující tabulkou je: ALTER TABLE název_tabulky vlastní příkaz pro aktualizaci; Přidání sloupců do tabulky V případě, že v tabulce již nějaká data jsou, lze použít následující příkaz: ALTER TABLE název_tabulky ADD COLUMN jméno_sloupce typ_sloupce [ integritní omezení];

Úprava definice sloupců Základní příkaz: ALTER TABLE název_tabulky CHANGE COLUMN staré_jméno_sloupce nové_jméno_sloupce typ_sloupce [integritní omezení]; 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: ALTER TABLE název_tabulky DROP COLUMN jméno_sloupce [CASCADE]

Přejmenování sloupce Máme dvě možnosti: První možnost je rychlejší a využijeme v ní již známý příkaz : ALTER TABLE název_tabulky CHANGE COLUMN staré_jméno_sloupce nové_jméno_sloupce typ_sloupce [integritní omezení];

Přejmenování sloupce ALTER TABLE název_tabulky Druhá možnost je obecnější a je potřeba provést ji v několika krocích. Nejprve musíme vytvořit nový sloupec, zkopírovat hodnoty ze starého sloupce do nového a smazat starý sloupec : 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; DROP staré_jméno_sloupce;

Vazby mezi tabulkami Reprezentace vazby 1:N ZAMESTNANEC: ID_ZAM JMENO PRIJMENI ROD_CISLO ODDELENI FUNKCE 1 Jan Nový 751015/2352 10 127 2 Petr Novák 780401/4421 15 121 3 Ivan Nováček 650906/1566 10 156 4 Pavel Novotný 740205/3566 20 127 ODDELENI: FUNKCE: ID_ODD NAZEV ID_FN FUNKCE PLAT 10 sklad 121 vedoucí 21500 15 centrála 127 technik 15000 20 počítačový sál 156 správce 17500

CREATE TABLE oddeleni (id_odd INTEGER, nazev VARCHAR(20), PRIMARY KEY (id_odd)); CREATE TABLE funkce (id_fn INTEGER, funkce VARCHAR(10), plat FLOAT(10) DEFAULT 8000, PRIMARY KEY (id_fn));

CREATE TABLE zamestnanec (id_zam INTEGER, jmeno VARCHAR(10), prijmeni VARCHAR(20), rod_cislo VARCHAR(11) NOT NULL, oddeleni INTEGER, funkce INTEGER, PRIMARY KEY (id_zam), FOREIGN KEY (oddeleni) REFERENCES oddeleni (id_odd), FOREIGN KEY (funkce) REFERENCES funkce (id_fn));

Reprezentace vazby M:N ZAMESTNANEC: ID_ZAM JMENO PRIJMENI ROD_CISLO 1 Jan Nový 751015/2352 2 Petr Novák 780401/4421 3 Ivan Nováček 650906/1566 4 Pavel Novotný 740205/3566 FUNKCE: VYKON_FUNKCE: ID_FUN NAZEV CISLO_ZAM CISLO_FUN 121 vedoucí 1 127 127 technik 2 121 156 správce 3 156 2 127

CREATE TABLE zamestnanec (id_zam INTEGER, jmeno VARCHAR(10), prijmeni VARCHAR(20), rod_cislo VARCHAR(11) NOT NULL, PRIMARY KEY (id_zam)); CREATE TABLE funkce (id_fn INTEGER, nazev VARCHAR(10), PRIMARY KEY (id_fn));

CREATE TABLE vykon_funkce (cislo_zam INTEGER, cislo_fn INTEGER, PRIMARY KEY (cislo_zam, cislo_fn), FOREIGN KEY (cislo_zam) REFERENCES zamestnanec (id_zam), FOREIGN KEY (cislo_fn) REFERENCES funkce (id_fn));

Zadání cv.3: Vytvořte databázi SUDIJNI_AGENDA, která bude obsahovat tabulky: Student: id_st, jmeno, prijmeni, obor, rocnik, vek, st_prumer Predmet: id_pr, nazev_pr, mistnost, ucitel Zapis: student, predmet Ucitel: id_uc, jmeno, prijmeni, titul, ustav Navrhněte odpovídající datové typy, integritní omezení a další modifikátory. Tabulky naplňte cvičebními daty (cca 5-10 záznamů v každé!)