Příkazy jazyka SQL ve VFP a na SQL Serveru

Slides:



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

Základní obeznámení s jazykem SQL
KIV/ZIS Cvičení 6 SQL - SELECT.
SQL Další dotazy a pohledy
Základy jazyka SQL Jan Tichava
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ázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Realizace sběru dat v rámci realizovaných úloh.
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
AGREGACE Distinct, Group By, Having, SUM, …. DISTINCT  Slučování stejných řádků ve výsledku dotazu. AGREGACE 2 JménoPříjmeníID FrantišekVomáčka1 JosefPokorný2.
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í č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
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 - 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á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.
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 Přednáška č. 6.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
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ý.
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í.
Informatika II PAA DOTAZOVACÍ JAZYKY
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
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.
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.
J. Pokorný, I Halaška1 DBS: SQL92 Jaroslav Pokorný MFF UK, Praha
Základní obeznámení s jazykem SQL Databázové systémy.
SQL Structured Query Language
Databázové systémy I Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy I Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
David Gešvindr MCT | MSP | MCITP | MCPD. Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů.
Databázové systémy přednáška 6 – Indexy
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Roman Danel Institut ekonomiky a systémů řízení 2016
Databázové systémy I Přednáška 5 Databázové systémy 1 – KIT/IDAS1
Databázové systémy I Přednáška 8 Databázové systémy 1 – KIT/IDAS1
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
Databázové systémy a SQL
Databázové systémy I Přednáška 11 Databázové systémy 1 – KIT/IDAS1
Dotazovací jazyk SQL I.
Databázové systémy přednáška 3 – CRUD
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 - II
Přednáška 7 SQL – JOIN.
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Transkript prezentace:

Příkazy jazyka SQL ve VFP a na SQL Serveru Hana Horová hana.horova@daquas.cz Praha, červen 2010

Příkazy jazyka SQL DDL Data Definition Language CREATE TABLE ALTER TABLE DROP TABLE … DML Data Manipulation Language INSERT UPDATE DELETE SELECT

Ukázková data

CREATE TABLE CREATE TABLE název_tabulky [ „obecné“ vlastnosti tabulky – jen VFP ] ( seznam definic sloupců [ , omezení tabulky ] )

Definice sloupce – VFP název_sloupce datový_typ [ ( délka [ , des_místa ] ) ] [ NULL | NOT NULL ] [ AUTOINC [ NEXTVALUE počátek [ STEP krok ] ] ] | [ DEFAULT výraz ] omezení: [ CHECK log_výraz [ ERROR text ] ] [ PRIMARY KEY | UNIQUE [ COLLATE collate_sequence ] ] [ REFERENCES název_tabulky [ TAG název_složky ] ]

Definice sloupce – SQL Server název_sloupce datový_typ [ ( délka [ , des_místa ] ) ] [ COLLATE collate_sequence ] [ NULL | NOT NULL ] [ IDENTITY [ (počátek, krok) ] | [ DEFAULT výraz ] omezení: [ CONSTRAINT název_omezení ] PRIMARY KEY | UNIQUE | [ FOREIGN KEY ] REFERENCES název_tabulky [ (název_sloupce) ] | CHECK (log_výraz)

Omezení tabulky jako omezení sloupce v indexových a logických výrazech smí figurovat více sloupců

Dočasné tabulky VFP SELECT … INTO CURSOR CursorAlias bez fráze READWRITE jen ke čtení CREATE CURSOR CursorAlias … přepisovatelný některé vlastnosti jako pro tabulky v databázi SQL Server SELECT … INTO #TableName CREATE TABLE #TableName #TableName se založí v databázi Tempdb DECLARE @t table CTE

INSERT (1) jen VFP: INSERT INTO název_tabulky FROM ARRAY název_pole | FROM MEMVAR | FROM NAME název_objektu

INSERT (2) INSERT INTO název_tabulky [ (seznam sloupců) ] VALUES (seznam výrazů) INSERT INTO název_tabulky [ (seznam sloupců) ] příkaz_SELECT

UPDATE UPDATE cílová_tabulka SET název_sloupce = výraz [ , ... ] [ FROM zdrojové_tabulky ] [ WHERE log_výraz ]

DELETE DELETE [ cílová_tabulka ] [ FROM zdrojové_tabulky ] [ WHERE log_výraz ] bez WHERE odstraní všechny řádky tabulky! na SQL Serveru řádky opravdu odstraní, nikoliv označí k odstranění!

ALTER TABLE (1) Přidání sloupce: ALTER TABLE název_tabulky ADD definice_sloupce Odebrání sloupce: ALTER TABLE název_tabulky DROP COLUMN název_sloupce Přejmenování sloupce ve VFP: ALTER TABLE název_tabulky RENAME COLUMN starý_název TO nový_název Přejmenování sloupce na SQL Serveru: uloženou procedurou sp_rename

ALTER TABLE (2) Změna definice sloupce ve VFP: ALTER TABLE název_tabulky ALTER COLUMN název_sloupce datový_typ [ ( délka [ , des_místa ] ) ] [ NULL | NOT NULL ] [ SET DEFAULT výraz ] [ SET CHECK log_výraz ] [ DROP DEFAULT ] [ DROP CHECK ]

ALTER TABLE (3) Změna definice sloupce na SQL Serveru: ALTER TABLE název_tabulky ALTER COLUMN název_sloupce datový_typ [ ( délka [ , des_místa ] ) ] [ NULL | NOT NULL ] [ ADD CONSTRAINT omezení sloupce ] [ DROP CONSTRAINT název_omezení ]

ALTER TABLE (4) Změna omezení tabulky ve VFP: ALTER TABLE název_tabulky [ SET CHECK log_výraz ] [ DROP CHECK ] [ ADD PRIMARY KEY výraz TAG název_složky [ COLLATE collate_sequence ] ] [ DROP PRIMARY KEY ] [ ADD UNIQUE výraz TAG název_složky [ COLLATE collate_sequence ] ] [ DROP UNIQUE TAG název_složky ] [ ADD FOREIGN KEY [ výraz ] TAG název_složky REFERENCES název_tabulky [ TAG název_složky ] ] [ DROP FOREIGN KEY TAG název_složky [ SAVE ] ]

ALTER TABLE (5) Změna omezení tabulky na SQL Serveru: ALTER TABLE název_tabulky [ ADD CONSTRAINT omezení tabulky ] [ DROP CONSTRAINT název_omezení ]

DROP TABLE DROP TABLE název_tabulky

SELECT – základní syntaxe SELECT sloupce [ INTO výstup ] FROM tabulka [ JOIN tabulka ON podmínky … ] [ WHERE podmínky ] [ GROUP BY sloupce ] [ HAVING podmínky ] [ ORDER BY sloupce ] [ … ]

Typy spojení [ INNER ] JOIN LEFT [ OUTER ] JOIN RIGHT [ OUTER ] JOIN FULL [ OUTER ] JOIN „SELF JOIN“ „CROSS JOIN“

NULL NULL + hodnota = NULL porovnání: IS NULL, IS NOT NULL VFP: nikdy neporovnáváme = NULL nebo <> NULL VFP: ISNULL(par) NVL(par1, par2) SQL Server: ISNULL(par1, par2) nebo COALESCE(par1, par2, … parN) NULLIF(par1, par2)

Standardní pořadí zpracování FROM tabulky WHERE GROUP BY HAVING SELECT sloupce DISTINCT ORDER BY TOP

Pořadí zpracování ve VFP FROM tabulky WHERE SELECT sloupce GROUP BY HAVING DISTINCT ORDER BY TOP

Poddotazy (1) ve frázi WHERE ve všech verzích FoxPro výraz operátor ALL (poddotaz) | ANY (poddotaz) | SOME (poddotaz) výraz [ NOT ] IN (poddotaz) [ NOT ] EXISTS (poddotaz) ve všech verzích FoxPro ve VFP 9 a na SQL Serveru je lze vnořovat

Poddotazy (2) VFP 9 a SQL Server: ve frázi FROM místo tabulky musí mít lokální alias v seznamu sloupců SELECT smí vracet jediný sloupec a max. 1 řádek

Poddotazy (3) korelované nekorelované odkazují se na sloupec některé tabulky v hlavním příkazu SELECT jsou pomalejší nekorelované SELECT si je může „předzpracovat“

GROUP BY agregační funkce COUNT, SUM, AVG, MAX, MIN kromě COUNT(*) ignorují NULL nelze je vnořovat všechny výstupní sloupce buď obsahují agregační funkci, nebo musí být uvedeny v seznamu GROUP BY HAVING podmínka filtrující výsledek SQL Server: WITH ROLLUP, WITH CUBE GROUPING()

SELECT – SQL Server 2005+ ROW_NUMBER() APPLY FOR XML PATH PIVOT …

ROW_NUMBER() ROW_NUMBER() OVER ( [ PARTITION BY sloupce ] ORDER BY sloupce ) … a další „ranking functions“ RANK() DENSE_RANK() NTILE(int)

APPLY zdrojová_tabulka { CROSS | OUTER } APPLY funkce nebo poddotaz obdoba { INNER | LEFT OUTER } JOIN pravá strana se zpracuje pro každý řádek levé strany

FOR XML PATH SELECT … FROM … WHERE … FOR XML PATH ('') pohodlné zřetězení hodnot z několika vstupních řádků

PIVOT SELECT pevný_sloupec, [první_souhrnný_sloupec] AS alias_sloupce, [druhý_souhrnný_sloupec] AS alias_sloupce, ... [poslední_souhrnný_sloupec] AS alias_sloupce FROM ( poddotaz ) AS lokální_alias PIVOT ( agregační_výraz FOR [sloupec_jehož_hodnoty_budou_hlavičkami_sloupců] IN ( [první_souhrnný_sloupec], [druhý_souhrnný_sloupec], ... [poslední_souhrnný_sloupec] ) ) AS lokální_alias

Zdroje informací anglicky nápověda Taming Visual FoxPro's SQL Inside MS SQL Server 2008: T-SQL Querying webová fóra, např. www.sqlservercentral.com www.mssqltips.com www.sql-server-performance.com www.sqlteam.com www.simple-talk.com

Zdroje informací česky SQL Bez předchozích znalostí předchozí přednášky Nejen SELECTem živ je člověk (DevCon 2009) Visual FoxPro – úvod do jazyka SQL (seminář jaro 2007) Magický příkaz SELECT (DevCon 2005) webová fóra, např. pandora.idnes.cz/conference/foxpro/ knowledge-base.havit.cz/sql/

Dotazy (možná i odpovědi )