Arsenał programisty T-SQL Common Table Expression (CTE)

Wielkość: px
Rozpocząć pokaz od strony:

Download "Arsenał programisty T-SQL Common Table Expression (CTE)"

Transkrypt

1 Arsenał programisty T-SQL Common Table Expression (CTE Autor: Paweł Potasiński, Marek Adamczuk Ostatnie dwie wersje systemu Microsoft SQL Server 2005 i 2008 dostarczają zestaw nowości w języku Transact-SQL (T-SQL, dzięki którym rozwiązywanie najbardziej wyrafinowanych problemów stawianych przed programistami baz danych staje się o wiele prostsze. Seria Arsenał programisty T-SQL ma na celu przedstawienie tych konstrukcji dostępnych w T-SQL w SQL Server 2008, które mogą się przydad programistom najbardziej. Jedną z takich konstrukcji jest Common Table Expression (CTE. CTE podstawy CTE to nazwane zapytanie reprezentujące tymczasowy zestaw rekordów definiowany w zasięgu jednego polecenia, INSERT, UPDATE lub DELETE. Składniowo CTE przypomina podzapytanie w z języka Transact-SQL lub elementy obliczane z języka MDX. Składnię CTE łatwo rozpoznad po charakterystycznym słowie WITH. Słowo to jest w języku Transact-SQL wykorzystywane między innymi do podawania wskazówek (ang. hint dla optymalizatora lub do deklarowania przestrzeni nazw XML (klauzula WITH XMLNAMESPACES. Aby uniknąd błędów parsowania, definicję CTE należy oddzielid średnikiem od poprzedniego polecenia. Przy braku średnika przed słowem WITH parser zwróci następujący komunikat błędu: Msg 319, Level 15, State 1, Line 2 Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon. Przykład prostego CTE: WITH MojePierwszeCTE AS ( Name FROM HumanResources.Department * FROM MojePierwszeCTE; Name Document Control Engineering Executive Facilities and Maintenance... Tool Design (16 row(s affected 1

2 Zestawem generowanym przez CTE o nazwie MojePierwszeCTE jest zbiór wartości kolumny Name z tabeli HumanResources.Department. Zapytanie wybiera wszystkie dane ze zbioru generowanego przez CTE. Zmieomy nieco definicję CTE z powyższego przykładu. WITH MojePierwszeCTE (Department AS ( Name FROM HumanResources.Department * FROM MojePierwszeCTE; Podobnie jak przy definiowaniu widoków, użytkownik może zdefiniowad nazwy dla kolumn generowanych przez CTE (tu kolumna została nazwana Department. Należy pamiętad, że nazwy kolumn w CTE muszą byd unikalne. Nie mamy tu do czynienia z klasycznymi aliasami określanymi dla kolumn w zapytaniach. Analogicznie działa składnia, którą można by uznad za podanie aliasów dla kolumn: WITH MojePierwszeCTE AS ( Name AS Department FROM HumanResources.Department * FROM MojePierwszeCTE; W powyższym przykładzie ponownie słowo Department nie jest aliasem dla kolumny Name, ale jest nazwą kolumny generowanej przez CTE. Jedno CTE czy więcej? Definicji CTE nie można bezpośrednio zagnieżdżad. To ograniczenie można jednak łatwo obejśd poprzez zastosowanie więcej niż jednego CTE dla pojedynczego polecenia DML. Ta właściwośd CTE daje ogromne możliwości uzyskiwania krok po kroku pożądanego wyniku. Każde kolejne definiowane CTE może odwoływad się do CTE wcześniej zdefiniowanych. W poniższym przykładzie, dla każdego z dostawców, do których złożyliśmy zamówienia prezentujemy datę ostatniego i ewentualnego poprzedniego zamówienia: WITH cte_vendors AS ( v.businessentityid AS VendorID, v.name FROM Purchasing.Vendor v WHERE v.activeflag = 1, cte_orders AS ( ROW_NUMBER( OVER (PARTITION BY o.vendorid ORDER BY o.shipdate DESC rn, o.vendorid, o.shipdate 2

3 FROM Purchasing.PurchaseOrderHeader o INNER JOIN cte_vendors cv ON o.vendorid = cv.vendorid cv.vendorid, cv.name, co1.shipdate LastShipDate, co2.shipdate PrevShipDate FROM cte_vendors cv INNER JOIN cte_orders co1 ON co1.vendorid = cv.vendorid AND co1.rn = 1 LEFT OUTER JOIN cte_orders co2 ON co2.vendorid = cv.vendorid AND co2.rn = 2; Przykład ten pokazuje również, w jaki sposób obejśd ograniczenie składni zabraniające odwoływania się do funkcji rankingowych poza listą pól i klauzulą ORDER BY. Nie tylko O ile zapytanie stanowiące CTE jest edytowalne (reguły jak w widoku, to i na samym CTE możemy wykonywad operacje modyfikujące, tzn. INSERT, UPDATE czy DELETE. Co więcej, dzięki CTE możliwe jest obejście pewnego ograniczenia związanego z nową składnią UPDATE i DELETE. Otóż od wersji SQL Server 2005 wprowadzono do składni poleceo UPDATE i DELETE klauzulę TOP, pozwalającą usuwad czy nadpisywad zadaną liczbę wierszy. Niestety, nowej składni nie rozszerzono o klauzulę ORDER BY, w ten sposób znacznie ograniczając użytecznośd klauzuli TOP. Bez ORDER BY nie jesteśmy w stanie kontrolowad, które konkretnie wiersze zostaną nadpisane lub usunięte. I tu znowu z pomocą spieszy nam CTE. W poniższym przykładzie z tabeli dbo.numbers o 100 kolejnych liczbach usuniemy najpierw ostatnie 30, a następnie pierwsze 30 wierszy. WITH cte_numbers AS ( TOP PERCENT * FROM dbo.numbers ORDER BY Number DESC DELETE TOP (30 FROM cte_numbers; -- usuwa wiersze od 71 do 100 WITH cte_numbers AS ( TOP PERCENT * FROM dbo.numbers ORDER BY Number ASC DELETE TOP (30 FROM cte_numbers; - usuwa wiersze od 1 do 30 Rozwiązanie polega na zastosowaniu żądanego ORDER BY wewnątrz CTE. Klauzula TOP PERCENT jest niezbędna, bowiem bez niej w CTE nie możemy stosowad ORDER BY, podobnie jak w widokach czy podzapytaniach. Nie możemy również użyd TOP 100 PERCENT, bowiem dla tej wartości ignorowane jest ORDER BY, jako niestanowiące warunku filtrowania dla TOP. 3

4 Rekursywne CTE CTE w przeciwieostwie do podzapytao, ma pewną unikalną właściwośd. Polega ona na możliwości odwołania CTE do samego siebie wewnątrz definicji. Rekursywne CTE składa się z co najmniej dwóch zapytao połączonych operatorem zbiorowym UNION ALL. Pierwszy człon, to zapytanie inicjujące, np. szczyt hierarchii. Drugie zapytanie, odwołujące się do samej definicji CTE będzie rekursywnie dołączad rekordy do zbioru wynikowego. Przy czym ważne, by pamiętad, że każda iteracja w rekursywnym CTE wykonywana jest w oparciu o rekordy zwrócone przez poprzednią iterację (oczywiście wyjątkiem jest tu zapytanie inicjujące. Drugie zapytanie w rekursywnym CTE będzie wykonywane dopóki będą zwracane jakiekolwiek nowe rekordy lub zostanie przekroczony poziom zagnieżdżenia. Nie należy mylid poziomu zagnieżdżenia CTE z poziomem zagnieżdżenia wywołao obiektów zwracanym przez Domyślna wartośd poziomu zagnieżdżenia CTE jest ustawiona na 100 i nie ma niestety żadnego parametru, którym można byłoby ją regulowad. Możliwa jest natomiast modyfikacja maksymalnego poziomu zagnieżdżenia w samym zapytaniu opcją MAXRECURSION. Ustawienie tej opcji na 0 powoduje wyłączenie kontroli poziomu zagnieżdżenia. Zapytanie będące członem rekursywnym CTE jest obarczone pewnymi ograniczeniami nie może zawierad: słowa kluczowego DISTINCT, klauzuli GROUP BY, klauzuli HAVING, agregacji skalarnej, klauzuli TOP, złączeo zewnętrznych (LEFT JOIN, RIGHT JOIN, FULL JOIN, podzapytao, wskazówek dla optymalizatora (jeżeli dotyczą samego CTE. Poniższe fragmenty kodu ilustrują metodę generowania tabeli liczb (tu -od 1 do 100 oraz tabeli dat (tu od 1 stycznia 1990 do 31 grudnia = = 100; WITH Numbers AS AS Number UNION ALL Number + 1 FROM Numbers WHERE Number Number INTO dbo.numbers 4

5 FROM Numbers ORDER BY Number OPTION (MAXRECURSION 0; -- bez ograniczenia poziomu rekursji = = ' '; WITH Dates AS AS Date UNION ALL DATEADD(day, 1, Date FROM Dates WHERE Date Date, YEAR(Date AS Year, MONTH(Date AS Month, DATENAME(weekday, Date AS Weekday INTO dbo.dates FROM Dates ORDER BY Date OPTION (MAXRECURSION 0; Po wygenerowaniu w powyższy sposób tabele dobrze jest poindeksowad (np. dodając klucze główne z indeksem grupowanym odpowiednio na kolumnach Number i Date. Dzięki rekursywnemu CTE można z łatwością wydobyd informacje o strukturze hierarchii, m.in. numer poziomu, na jakim znajduje się dany wiersz w hierarchii. Przykład: USE AdventureWorksLT WITH Categories AS ( ProductCategoryID, Name, 0 AS Level, CAST('/' + Name AS nvarchar(max AS Path FROM SalesLT.ProductCategory WHERE ParentProductCategoryID IS NULL UNION ALL PC.ProductCategoryID, PC.Name, C.Level + 1, CAST(C.Name + '/' + PC.Name AS nvarchar(max FROM Categories AS C INNER JOIN SalesLT.ProductCategory AS PC ON PC.ParentProductCategoryID = C.ProductCategoryID * FROM Categories; 5

6 W powyższym przykładzie w CTE o nazwie Categories w pierwszej iteracji wybierane są kategorie, które nie mają kategorii. Podsumowanie Common Table Expression to potężna broo w rękach programisty T-SQL. Dzięki ogromnej elastyczności wynikającej z możliwości definiowania wielu CTE dla jednego zapytania oraz z tego, że w prosty sposób można zbudowad w nich zaimplementowad rekursywnośd, jest to jeden z najbardziej docenianych elementów składni języka T-SQL. Opanowanie CTE jest, w naszym odczuciu, obowiązkowe dla każdego, kto pracuje z systemem SQL Server 2005 lub Autor Paweł Potasiński (MVP, MCT, MCDBA, MCSE, MCSD, MCITP Starszy programista w Asseco Business Solutions S.A. W codziennej pracy zajmuje się rozwojem aplikacji ERP oraz zagadnieniami z zakresu R&D. Wykładowca akademicki na kilku uczelniach w Warszawie. Wcześniej pracował jako administrator baz danych oraz trener. Założyciel i lider Polskiej Grupy Użytkowników SQL Server. Wolontariusz organizacji GITCA wspierającej działalnośd grup pasjonackich IT Pro. Prelegent na licznych konferencjach krajowych i zagranicznych, m.in. European PASS Conference i Microsoft Technology Summit. Microsoft Most Valuable Professional (MVP w kategorii SQL Server od lipca 2008 roku. Marek Adamczuk (MVP, MCSE, MCDBA, MCTS Kierownik Działu Zarządzania Wiedzą i Szlokeo w Asseco Business Solutions (dawniej Softlab. Współtworzy system klasy ERP zbudowany na platformie SQL Server. Aktywnie uczestniczy we wdrożeniach modułów Logistyka i Sprzedaż oraz CRM, a także w budowie specjalizowanych modułów na potrzeby poszczególnych wdrożeo. Specjalizuje się w budowie mechanizmów autogeneracji kodu T-SQL i zapewnienia wysokiej jego wysokiej jakości. Moderator i opiekun działu SQL Server na portalu wss.pl. Aktywny prelegent Polskiej Grupy Użytkowników SQL Server. Absolwent Kierunku Fizyka, specjalności Fizyka Komputerowa Uniwersytetu Marii Curie-Skłodowskiej w Lublinie. W lipcu 2009 roku wyróżniony przez Microsoft tytułem Most Valuable Professional (MVP w kategorii SQL Server. 6

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Tworzenie zapytań do Microsoft SQL Server

Tworzenie zapytań do Microsoft SQL Server MS 20461 Tworzenie zapytań do Microsoft SQL Server Czas trwania: 5 dni (40 h) Poziom trudności: Średnio Zaawansowany Autoryzacja: Microsoft Opis: Szkolenie administratorów baz danych oraz programistów

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Szkolenie autoryzowane MS 10774 Tworzenie zapytań do Microsoft SQL Server 2012 Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Opis szkolenia Uwaga! Szkolenie wycofane z oferty. Zapraszamy

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

Bardziej szczegółowo

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Grupowanie i funkcje agregujące

Grupowanie i funkcje agregujące Grupowanie i funkcje agregujące Zadanie 1. Stwórz odpowiednią tabelę Test_agr i wprowadź odpowiednie rekordy tak, aby wynik zapytania SELECT AVG(kol) avg_all, AVG(DISTINCT kol) avg_dist, COUNT(*) count_gw,

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017 Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Podyplomowe Studia Systemy informatyczne w logistyce

Podyplomowe Studia Systemy informatyczne w logistyce MATERIAŁY SZKOLENIOWE Podyplomowe Studia Systemy informatyczne w logistyce Hurtownie danych w informatycznych systemach logistycznych (MS SQL Server 2012) PROWADZĄCY: Marcin Pieleszek Projekt współfinansowany

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

ACESS- zadania z wykorzystaniem poleceń SQL

ACESS- zadania z wykorzystaniem poleceń SQL ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency,

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Ograniczanie rozmiaru zbioru wynikowego, klauzula WITH, zapytania hierarchiczne. 1 Ograniczanie liczności zbioru wynikowego (1) Element standardu

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą

Bardziej szczegółowo

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. dr inż. Arkadiusz Mirakowski Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)

Bardziej szczegółowo

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł!

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł! Szkolenie Oracle SQL podstawy Terminy 15 17 lutego 2010 First Minute! 1100zł! Opis szkolenia Baza danych Oracle od dawna cieszy się zasłużona sławą wśród informatyków. Jej wydajność, szybkość działania

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegółowo

Wyższa Szkoła Zarządzania i Marketingu w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS SQL Server

Wyższa Szkoła Zarządzania i Marketingu w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS SQL Server Wyższa Szkoła Zarządzania i Marketingu w Sochaczewie Grzegorz Domaoski grzegorz.domanski@wszim-sochaczew.edu.pl Cześd, jestem Stasiek, będę Ci podpowiadał, wskazywał rozwiązania MS SQL Server Pisanie zapytań

Bardziej szczegółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9. Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski DMX DMX DMX Data Mining Extensions jest językiem do tworzenia i działania na modelach eksploracji danych w Microsoft SQL Server Analysis Services SSAS. Za pomocą DMX można tworzyć strukturę nowych modeli

Bardziej szczegółowo

3. Podzapytania, łączenie tabel i zapytań

3. Podzapytania, łączenie tabel i zapytań 3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

PODZAPYTANIE (SUBSELECT)

PODZAPYTANIE (SUBSELECT) 2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone

Bardziej szczegółowo

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.

Bardziej szczegółowo

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

Bardziej szczegółowo

Microsoft SQL Server 2012 Krok po kroku

Microsoft SQL Server 2012 Krok po kroku Patrick LeBlanc Microsoft SQL Server 2012 Krok po kroku Przekład: Natalia Chounlamany APN Promise, Warszawa 2013 Spis treści Wprowadzenie.......................................................... xv Część

Bardziej szczegółowo

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła 050 SQL ELEMENTY ZAAWANSOWANE Prof. dr hab. Marek Wisła Deklarowanie zmiennych DECLARE @nazwa-zmiennej typ-danych {, @nazwazmiennej typ-danych}; deklaruje nazwy zmiennych lokalnych (definiowanych przez

Bardziej szczegółowo

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Łukasz Przywarty 171018 Wrocław, 05.12.2012 r. Grupa: CZW/N 10:00-13:00 Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Część 1: OLAP Prowadzący: dr inż. Henryk Maciejewski

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro Informatyka (5) SQL dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Język zapytań SQL Język deklaratywny (regułowy) - SQL, ProLog,

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Procedury składowane c.d. Parametry tablicowe w Transact-SQL. W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Zadanie 1. Proszę napisad procedurę składowaną, która

Bardziej szczegółowo

Wprowadzenie. Tworzenie widoków

Wprowadzenie. Tworzenie widoków Widoki Wprowadzenie...2 Tworzenie widoków...2 Złączenie zewnętrzne w definicji widoków...4 Porządkowanie danych przez widoki...5 Modyfikowanie danych przez widoki...6 Ograniczenie zakresu modyfikowania

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2018 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład V Kwerendy Copyrights by Arkadiusz Rzucidło 1 Wprowadzenie Istotą bazy danych jest możliwość efektywnego wyszukiwania informacji Realizację operacji wyszukiwania zapewniają kwerendy

Bardziej szczegółowo

Język PL/SQL. Rozdział 2. Kursory

Język PL/SQL. Rozdział 2. Kursory Język PL/SQL. Rozdział 2. Kursory Deklarowanie kursora, otwieranie kursora, pobieranie z kursora, zamykanie kursora, zmienne kursorowe, wyrażenie CURSOR, kursory niejawne. 1 Kursor jawny Każde zapytanie

Bardziej szczegółowo

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2) Kursor jawny Każde zapytanie SQL umieszczone w programie PL/SQL może zwrócić zero, jedną bądź wiele krotek. Aby efektywnie przetworzyć krotkizwrócone przez zapytanie korzystamy z kursorów. Kursor jest

Bardziej szczegółowo

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa

Bardziej szczegółowo

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Kursory w SQL Serverze Wprowadzenie Modele kursorów Używanie kursorów Rodzaje kursorów Praca

Bardziej szczegółowo

Grupowanie i funkcje agregacji

Grupowanie i funkcje agregacji Grupowanie i funkcje agregacji Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula GROUP BY Grupowanie polega

Bardziej szczegółowo

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image) Elementy języka T-SQL 40. Polecenie PRINT jest wykorzystywane do przekazania wiadomości tekstowej (maksymalna długość 8000 znaków) Przykład PRINT 'Aktualna data: '+convert(char(8),getdate()) PRINT 'Aktualny

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 3 Podstawy programowania w T-SQL Zmienne i operatory Instrukcje sterujące Komunikaty Format daty

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2019 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING Agregacja w SQL 1 Bazy Danych Wykład p.t. Agregacja i Grupowanie Danych Funkcje Agregacji. Opcje GROUP BY oraz HAVING Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały:

Bardziej szczegółowo

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL Obsługa błędów w SQL i transakcje Zacznijmy od najprostszego przykładu: CREATE PROCEDURE podziel1 Obsługa błędów w SQL Powyższa procedura w większości przypadków zadziała prawidłowo, lecz na przykład poniższe

Bardziej szczegółowo

Bazy danych 7. SQL podstawy

Bazy danych 7. SQL podstawy Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny

Bardziej szczegółowo

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Iloczyn kartezjański, połączenie równościowe, połączenie nierównościowe, połączenie zwrotne, połączenie zewnętrzne, składnia jawna połączeń, składnia

Bardziej szczegółowo

SQL - Structured Query Language. strukturalny język zapytań

SQL - Structured Query Language. strukturalny język zapytań SQL - Structured Query Language strukturalny język zapytań SQL - Structured Query Language - strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Konstruowanie Baz Danych DQL agregacja danych

Konstruowanie Baz Danych DQL agregacja danych Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo