040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

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

Download "040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła"

Transkrypt

1 040 STRUCTURED QUERY LANGUAGE Prof. dr hab. Marek Wisła

2 SQL strukturalny język zapytań SQL (Structured Query Language) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania, modyfikowania i wyszukiwania danych w tych bazach (standard od 1986 r). SQL jest językiem deklaratywnym - decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (SZBD) (użytkownik deklaruje, co chce uzyskać, a nie jak to chce realizować). SQL jest językiem wysokiego poziomu (4GL) opartym na języku angielskim.

3 SQL - historia Początek lat 70-tych XX w. System/R z językiem SEQUEL (IBM) (Structured English Query Language) Koniec lat 70-tych XX w. ORACLE pierwszy SZBD oparty na SQL 1986 pierwszy standard SQL (SQL-86) (ANSI) 1987 standard SQL-1 (ISO) 1989 SQL SQL-2 (SQL-92) (ANSI, ISO) (m.in. sterowanie transakcjami, sesjami) 1999 SQL-3 (SQL-99) (elementy obiektowości) 2003 SQL SQL SQL SQL-2011

4 Transact-SQL (T-SQL) Zmodyfikowana wersja standardu SQL-92 wykorzystywana w produktach Microsoft SQL Server, uzupełniona o elementy typowe dla proceduralnych języków programowania, takie jak zmienne i instrukcje sterujące.

5 Podzbiory języka SQL SQL DDL (Data Definition Language) umożliwia tworzenie, modyfikowanie i usuwanie baz i tabel - struktur, w których przechowywane są dane (CREATE, DROP, ALTER) SQL DML (Data Manipulation Language) umożliwia operowanie na danych, ich umieszczanie w bazie, wyszukiwanie, modyfikowanie i usuwanie (INSERT, SELECT, UPDATE, DELETE) SQL DCL (Data Control Language) pozwala na kontrolowanie dostępu użytkowników do obiektów bazy danych (GRANT, DENY, REVOKE)

6 Alfabet języka SQL Zestaw znaków SQL jest zwykle charakterystyczny dla implementacji - obejmuje duże i małe litery, cyfry, oraz znaki specjalne:, ; ( ). % _ > < = + - * /? :! spacja itd. Identyfikatory (nazwy) umożliwiają dostęp do obiektów bazodanowych: tabel, kolumn (atrybutów), widoków, schematów, itp. Polecenia i funkcje rozpoczynają się słowem kluczowym (tradycyjnie zapisywanym dużymi literami (nie jest to wymóg) i mogą zawierać tzw. modyfikatory - polecenia kończą się średnikiem (nie jest to konieczne w Transact- SQL). Stałe tekstowe zapisywane są w pojedynczych cudzysłowach, np. 'Warszawa'.

7 Alfabet języka SQL Znak * oznacza wszystkie kolumny (atrybuty) tabeli. Komentarze: Dwa minusy (--) powodują ignorowanie wszystkich pozostałych znaków w tej linii, np. -- To jest komentarz Znaki /* i */ ograniczają blok znaków (być może w kilku wierszach), który jest pomijany przez kompilator, np.. /* Pierwsza linia komentarza Druga linia komentarza itd... */

8 Notacje Notacje, które będą wykorzystywane w dalszym ciągu wykładu:: [element] oznacza opcjonalne (może, ale nie musi) wystąpienie elementu {element} oznacza wielokrotne wystąpienie elementu lub jego brak element1 element2 oznacza albo element1, albo element2

9 Zasada poprawnych skryptów DDL Podstawowa zasada prawidłowo napisanych skryptów manipulujących obiektami SQL: Każdy skrypt musi dopuszczać możliwość jego wielokrotnego uruchamiania bez wystąpienia błędów. W szczególności przed utworzeniem lub usunięciem każdego obiektu musi być wykonane sprawdzenie czy tworzony obiekt nie istnieje lub czy usuwany obiekt istnieje.

10 DDL Tworzenie i usuwanie baz danych Tworzenie bazy danych o podanej nazwie IF DB_ID('MojaBaza') IS NULL CREATE DATABASE MojaBaza; Usuwanie bazy o podanej nazwie IF DB_ID('MojaBaza') IS NOT NULL DROP DATABASE MojaBaza

11 DDL Tworzenie tabeli CREATE TABLE nazwa-tabeli ( nazwa-kolumny typ-danych [NOT NULL] [UNIQUE] [CHECK (warunek)] {, nazwa-kolumny typ-danych [NOT NULL] [UNIQUE] [CHECK (warunek)]} [, PRIMARY KEY (nazwa-kolumny {, nazwa-kolumny} )] [, FOREIGN KEY (nazwa-kolumny {, nazwa-kolumny} ) REFERENCES nazwa-tabeli (nazwa-kolumny {, nazwa-kolumny} )] ); Zapytanie tworzy tabelę o podanej nazwie i określonych nazwach kolumn, określa ograniczenia nakładane na charakter i wartości danych, które mogą wystąpić w poszczególnych kolumnach oraz definiuje powiązania z innymi tabelami.

12 Typy danych Typ danych charakteryzuje, jakiego rodzaju wartość możemy umieścić jako wartość danej w określonej kolumnie. Poszczególne typy danych można zakwalifikować do różnych grup, według funkcjonalności, jaką mogą spełniać: dane tekstowe: CHAR, NCHAR, VARCHAR, NVARCHAR, TEXT, NTEXT dane liczbowe: INT, SMALLINT, BIGINT, TINYINT, FLOAT, REAL, DECIMAL, NUMERIC dane typu data/czas: DATETIME, SMALLDATETIME dane binarne: BINARY, VARBINARY, BLOB dane walutowe (pieniężne): MONEY, SMALLMONEY dane specjalne: IMAGE, XML, UNIQUEIDENTIFIER, TIMESTAMP. Konkretne implementacje różnią się wykorzystywanymi typami danych

13 Przykłady typów danych SMALLINT dwubajtowa liczba całkowita INT czterobajtowa liczba całkowita FLOAT liczba rzeczywista DOUBLE liczba rzeczywista podwójnej precyzji DECIMAL (m,n) liczba zapisywana na m pozycjach z n cyframi po kropce CHAR (n) ciąg znaków o stałej długości n VARCHAR (n) ciąg znaków o zmiennej długości, maksymalnie n TEXT ciąg znaków ASCII BLOB dane binarne DATE dane określające datę TIME dane określające czas DATETIME dane określające datę i czas

14 Ograniczenia Poszczególne kolumny w tworzonej tabeli mogą posiadać ograniczenia co do dopuszczalnych danych: NOT NULL zastosowanie tego ograniczenia wymusi, aby w każdej krotce występująca w tej kolumnie wartość była niepusta, UNIQUE zastosowanie tego ograniczenia wymusi, aby w każdej krotce występująca w tej kolumnie wartość była unikalna dla tej kolumny, CHECK (warunek) zastosowanie tego ograniczenia wymusi, aby w każdej krotce występująca w tej kolumnie wartość spełniała podany warunek (do budowy warunku możemy użyć operatorów logicznych, between, in, like itp.).

15 Powiązania Fraza PRIMARY KEY określa nazwy kolumn, które w danej tabeli tworzą klucz główny. Fraza FOREIGN KEY określa nazwy kolumn, które w danej tabeli tworzą klucz obcy. Fraza REFERENCES określa nazwę tabeli powiązaną z tworzoną tabelą podanym kluczem obcym, określając jednocześnie nazwy kolumn odpowiadających temu powiązaniu.

16 Zasady tworzenia tabel Każda tabela powinna posiadać autoinkrementowaną kolumnę ID typu INT. Pozwala ona w łatwy sposób posortować wiersze wg kolejności ich wstawiania do tabeli. Tylko w wyjątkowych przypadkach kolumna ID może być kluczem własnym tabeli. Klucz własny tabeli powinien być oparty albo o wyróżniający unikalny atrybut (np. numer indeksu) lub, w przypadku braku takiego atrybutu, o kolumnę sysguid opisaną poniżej.

17 Zasady tworzenia tabel Każda tabela powinna posiadać kolumnę Sysguid automatycznie wypełnianą wartościami typu UNIQUEIDENTIFIER. Tego typu kolumna może być wykorzystywana jako klucz własny tabeli i automatycznie zapewnia 2NF bazy danych. Każda tabela powinna posiadać kolumny DataUtworzenia (Syscreated) i DataModyfikacji (sysmodified) typu DATETIME. Każda tabela powinna posiadać kolumny Utworzył (Syscreator) i Zmodyfikował (Sysmodifier) typu VARCHAR. Kolumny te pozwalają na wprowadzenie podstawowych mechanizmów śledzenia zmian na tabelach.

18 Zasady tworzenia tabel Podczas tworzenia tabeli powinien być wyspecyfikowany jej właściciel. Zwykle tym właścicielem jest dbo (database owner). Jeśli właściciel nie zostanie podany w definicji tabeli, automatycznie właścicielem staje się użytkownik tworzący tabelę. W konsekwencji tabela może nie być dostępna dla żadnego innego użytkownika poza właścicielem, co w zdecydowanej większości przypadków nie jest pożądane. Jeśli tabela ma być porównywana lub replikowana z inną tabelą, wtedy należy do niej dodać kolumnę typu TIMESTAMP. Ta kolumna będzie automatycznie wypełniana znacznikiem czasu przy każdej zmianie wartości w danym wierszu.

19 TIMESTAMP Timestamp jest autoinkrementowaną wartością zależną od bazy danych. Nie jest ona w żaden sposób związana z fizycznym czasem utworzenia lub zmiany kolumny w wierszu tabeli. Ostatnio wykorzystaną wartość Timestamp można sprawdzić komendą

20 Przykład 1 IF OBJECT_ID('MojaBaza.dbo.Miasta','U') IS NULL CREATE TABLE MojaBaza.dbo.Miasta ( ID INT IDENTITY(1,1), ); Miasto VARCHAR (20) NOT NULL UNIQUE, Wojewodztwo VARCHAR (20) NOT NULL, Utworzyl VARCHAR (20) NOT NULL, DataUtworzenia DATETIME DEFAULT GETDATE(), Zmodyfikowal VARCHAR (20) NOT NULL, DataModyfikacji DATETIME DEFAULT GETDATE(), Sysguid UNIQUEIDENTIFIER DEFAULT NEWID(), Timestamp TIMESTAMP, PRIMARY KEY (Miasto)

21 Przykład 2 IF OBJECT_ID('dbo.Studenci','U') IS NULL CREATE TABLE dbo.studenci ( ID INT IDENTITY(1,1), NrIndeksu INT NOT NULL UNIQUE, Imie VARCHAR (15) NOT NULL, Nazwisko VARCHAR (20) NOT NULL, Miasto VARCHAR (20) NOT NULL, Utworzyl VARCHAR (20) NOT NULL, DataUtworzenia DATETIME DEFAULT GETDATE(), Zmodyfikowal VARCHAR (20) NOT NULL, DataModyfikacji DATETIME DEFAULT GETDATE(), Sysguid UNIQUEIDENTIFIER DEFAULT NEWID(), Timestamp TIMESTAMP, PRIMARY KEY (NrIndeksu), FOREIGN KEY (Miasto) REFERENCES Miasta (Miasto) );

22 Przykład 3 IF OBJECT_ID('dbo.Egzaminy','U') IS NULL CREATE TABLE dbo.egzaminy ( ID INT IDENTITY(1,1), NrIndeksu INT NOT NULL, Przedmiot VARCHAR (20) NOT NULL, DataEgzaminu DATETIME NOT NULL, Ocena DECIMAL (3,1) NOT NULL, Utworzyl VARCHAR (20) NOT NULL, DataUtworzenia DATETIME DEFAULT GETDATE(), Zmodyfikowal VARCHAR (20) NOT NULL, DataModyfikacji DATETIME DEFAULT GETDATE(), Sysguid UNIQUEIDENTIFIER DEFAULT NEWID(), Timestamp TIMESTAMP, PRIMARY KEY (NrIndeksu, Przedmiot, DataEgzaminu), FOREIGN KEY (NrIndeksu) REFERENCES Studenci (NrIndeksu) );

23 DDL Modyfikowanie tabeli ALTER TABLE nazwa-tabeli [ADD nazwa-kolumny typ-danych [NOT NULL] [UNIQUE] [CHECK (warunek)]] [ADD nazwa-ograniczenia] [ALTER [COLUMN] stara-nazwa-kolumny nowa-nazwakolumny typ-danych [NOT NULL] [UNIQUE] [CHECK (warunek)]] [DROP nazwa-kolumny] [DROP CONSTRAINT nazwa-ograniczenia]

24 Modyfikowanie tabeli Komenda ALTER TABLE pozwala modyfikować strukturę tabeli o podanej nazwie, w szczególności: dodawać nowe kolumny i określać dla ich ograniczenia dodawać nowe ograniczenia dla istniejących kolumn zmieniać kolumny i określone dla nich ograniczenia usuwać kolumny

25 Przykład dodania kolumny IF OBJECT_ID('dbo.Miasta','U') IS NOT NULL IF COL_LENGTH ('Miasta', 'KodPocztowy') IS NULL ALTER TABLE Miasta ADD KodPocztowy VARCHAR(10) NULL

26 DDL - Usuwanie tabeli DROP TABLE MojaTabela Przykład: Usunąć tabelę Egzaminy. IF OBJECT_ID('dbo.Egzaminy','U') IS NOT NULL DROP TABLE dbo.egzaminy

27 Usuwanie zawartości tabeli Poniższa komenda usuwa całą zawartość tabeli, ale nie usuwa samej tabeli. Dodatkowo kolumny autoinkrementowane typu całkowitego (np. ID) są resetowane do początkowej wartości. TRUNCATE TABLE MojaTabela Przykład: Usunąć zawartość tabeli Egzaminy. IF OBJECT_ID('dbo.Egzaminy','U') IS NOT NULL TRUNCATE TABLE dbo.egzaminy

28 Usuwanie wybranych wierszy z tabeli Poniższa komenda usuwa te wiersze z tabeli, które spełniają podany warunek. Jeśli warunek jest spełniony dla wszystkich wierszy (np. 1=1), to z tabeli usunięte zostaną wszystkie wiersze, ale sama tabela nie zostanie usunięta. Uwaga: w tym przypadku kolumny autoinkrementowane typu całkowitego (np. ID) nie są resetowane do początkowych wartości. DELETE FROM MojaTabela WHERE MojWarunek Przykład: Usunąć z tabeli Egzaminy informacje o egzaminach studenta o numerze indeksu IF OBJECT_ID('dbo.Egzaminy','U') IS NOT NULL DELETE FROM TABLE dbo.egzaminy WHERE NrIndeksu =

29 Zasady usuwania danych Nigdy nie usuwaj danych z tabeli opierając się na warunku w którym nie występuje klucz własny tej tabeli. Taki sposób usuwania danych prowadzi do zablokowania całej tabeli na czas usuwania, a w konsekwencji grozi zablokowaniem (deadlock) całej bazy danych. Przed wywołaniem komendy DELETE należy wstępnie wyznaczyć klucze wierszy, które mają zostać usunięte i dopiero wtedy rozpocząć usuwanie danych. Najbardziej optymalną metodą jest posłużenie się tabelą tymczasową, w której zapisujemy klucze wierszy do usunięcia.

30 Usuwanie danych przykład Usunąć miasta z tych województw, których nazwy zawierają tekst polska. IF OBJECT_ID('tempdb.dbo.#MiastaDoUsuniecia','U') IS NOT NULL DROP TABLE #MiastaDoUsuniecia CREATE TABLE #MiastaDoUsuniecia ( Miasto VARCHAR (20) COLLATE DATABASE_DEFAULT, PRIMARY KEY (Miasto)) INSERT INTO #MiastaDoUsuniecia SELECT Miasto FROM Miasta WITH (NOLOCK) WHERE Wojewodztwo LIKE '%polska' DELETE FROM Miasta WHERE Miasto IN (SELECT Miasto FROM #MiastaDoUsuniecia) IF OBJECT_ID('tempdb.dbo.#MiastaDoUsuniecia','U') IS NOT NULL DROP TABLE #MiastaDoUsuniecia

31 Zasady wstawiania danych Przed wstawieniem wiersza należy obowiązkowo sprawdzić, czy wstawiany wiersz posiada klucz, który jeszcze nie pojawił się w tabeli. Jeśli klucz wstawianego wiersza nie jest nowym kluczem, wstawianie zakończy się błędem. W takim przypadku zamiast wstawiania zwykle wykonujemy modyfikację istniejącego wiersza w tabeli w oparciu o nowe dane. Kolumny autoinkrementowane i typu TIMESTAMP nie mogą mieć ręcznie przypisanych wartości.

32 DML Wstawianie pojedynczych wierszy INSERT INTO nazwa-tabeli [(nazwa-kolumny {, nazwa-kolumny} )] VALUES (wartość {, wartość} [(wartość {, wartość}] ); Powyższa komenda wstawia nowy wiersz (rekord) w tabeli o podanej nazwie, złożony z podanych wartości umieszczonych w kolumnach o podanych nazwach lub wszystkich kolumnach w przypadku, gdy nie podamy nazw kolumn (lista wartości musi być zgodna z listą nazw kolumn co do ilości, jak i typów danych).

33 DML Wstawianie wielu wierszy INSERT INTO nazwa-tabeli [(nazwa-kolumny {, nazwakolumny} )] SELECT [(nazwa-kolumny {, nazwa-kolumny} )] FROM nazwa-tabeli2 WHERE warunek ; Ta komenda wstawia nowe wiersze do tabeli o podanej nazwie, złożone z wyników podanego zapytania SELECT

34 Przykład 1 Usunąć całą zawartość tabeli Miasta i wstawić nowe trzy wiersze. IF OBJECT_ID('dbo.Miasta','U') IS NOT NULL BEGIN TRUNCATE TABLE dbo.miasta INSERT INTO dbo.miasta (Miasto,Wojewodztwo) VALUES ('Konin','Wielkopolskie'), ('Poznan','Wielkopolskie'), ('Warszawa','Małopolskie') END

35 Przykład 2 Wstawić do tabeli Studenci nowego studenta Adama Kowalskiego urodzonego w Koninie. Nadać mu numer indeksu IF OBJECT_ID('dbo.Studenci','U') IS NOT NULL BEGIN IF NOT EXISTS (SELECT ID FROM Studenci WITH (NOLOCK) WHERE NrIndeksu = ) INSERT INTO Studenci (NrIndeksu, Imie, Nazwisko, Miasto) VALUES (103628, 'Adam', 'Kowalski', 'Konin') END

36 Zasady aktualizowania danych Aktualizowanie danych zawsze związane jest z zablokowaniem wiersza (lub całej tabeli!) dla innych użytkowników. Dlatego konieczne jest wstępne ustalenie klucza lub kluczy wyznaczającej wiersze, które mają zostać uaktualnione i wykonanie aktualizacji dokładnie na tych wierszach, które mają być zmienione. Warunek w komendzie UPDATE musi odnosić się do klucza tabeli (chociaż nie jest to wymagane przez standard języka SQL).

37 DML Aktualizacja danych UPDATE nazwa-tabeli SET nazwa-kolumny = nowa-wartość {, nazwa-kolumny = nowa-wartość} [WHERE warunek]; Powyższa komenda w tabeli o podanej nazwie zmienia wartości na nowe w kolumnach o podanych nazwach w wierszach określonych przez warunek.. Gdy nie podamy warunku selekcji, zmienione zostaną wartości w podanych kolumnach we wszystkich wierszach.

38 Przykład 1 Zmienić miasto urodzenia studenta Adama Kowalskiego na Kraków. VARCHAR(20) IF OBJECT_ID('dbo.Studenci','U') IS NOT NULL BEGIN = (SELECT NrIndeksu FROM Studenci WITH (NOLOCK) WHERE Imie = 'Adam' AND Nazwisko = 'Kowalski'); UPDATE Studenci SET Miasto = 'Kraków' WHERE NrIndeksu END Uwaga: NrIndeksu jest kluczem własnym tabeli Studenci.

39 Przykład 2 Uaktualnić dane w tabeli Miasta dodać informację, że wpisy o miastach z tych województw, których nazwy zawierają tekst polska, zostały utworzone przez użytkownika Kowalski. IF OBJECT_ID('tempdb.dbo.#MiastaDoAktualizacji','U') IS NOT NULL DROP TABLE #MiastaDoAktualizacji CREATE TABLE #MiastaDoAktualizacji ( Miasto VARCHAR (20) COLLATE DATABASE_DEFAULT, PRIMARY KEY (Miasto)) INSERT INTO #MiastaDoAktualizacji SELECT Miasto FROM Miasta WITH (NOLOCK) WHERE Wojewodztwo LIKE '%polska' UPDATE Miasta SET Utworzył = 'Kowalski' WHERE Miasto IN (SELECT Miasto FROM #MiastaDoAktualizacji) IF OBJECT_ID('tempdb.dbo.#MiastaDoAktualizacji','U') IS NOT NULL DROP TABLE #MiastaDoAktualizacji

40 Wyszukiwanie informacji SELECT [DISTINCT] * nazwa-kolumny {, nazwakolumny} FROM nazwa-tabeli {, nazwa-tabeli} [WHERE warunek] [GROUP BY nazwa-kolumny {, nazwa-kolumny}] [HAVING warunek] [ORDER BY nazwa-kolumny [ASC DESC] {, nazwakolumny [ASC DESC]}]

41 Komenda SELECT Wyszukuje i zwraca jako wyniki dane zapisane w kolumnach o nazwach podanych po SELECT, zawarte w tabelach o nazwach podanych po FROM, spełniające warunek podany po WHERE, przy czym wyniki mogą być grupowane wg kolumn, których nazwy podano po GROUP BY, po zgrupowaniu spełniające warunek podany po HAVING i uporządkowane rosnąco (ASC) lub malejąco (DESC) wg kolumn, których nazwy podano po ORDER BY DISTINCT powoduje usuwanie powtarzających się wierszy wyniku.

42 Przykłady SELECT * FROM Studenci; SELECT Miasto FROM Miasta WHERE Wojewodztwo = 'wielkopolskie'; SELECT Studenci.NrIndeksu, Imie, Nazwisko, Przedmiot, Ocena FROM Studenci, Egzaminy WHERE Studenci.NrIndeksu = Egzaminy.NrIndeksu;

43 Projekcja i selekcja Projekcja: SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli; Selekcja: SELECT * FROM nazwa-tabeli WHERE warunek;

44 Złączenie tabel SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli1 INNER JOIN nazwa-tabeli2 ON nazwa-tabeli1.nazwa-kolumny = nazwatabeli2.nazwa-kolumny;

45 Zasady łączenia tabel Złączenia tabel wykonuj przede wszystkim na kolumnach, które są kluczami własnymi tabel. Złączenia wykonane na kolumnach, które nie są kluczami własnymi niesie niebezpieczeństwa: Znacznego wydłużenia czasu wykonania zapytania (może być konieczne przeskanowanie całych tabel). Nieoczekiwanego przez programistę zwielokrotnienia wyników zapytania. Po złączeniu tabel zawsze sprawdzaj ilość zwracanych wierszy kontroluj czy nie zostały one zwielokrotnione.

46 Wyrażenia i funkcje agregujące W zapytaniu SELECT zamiast nazwy-kolumny możemy napisać wyrażenie zbudowane z nazw kolumn połączonych operatorami arytmetycznymi (+, -, *, /) lub użyć wywołania funkcji agregującej: MIN (nazwa-kolumny) najmniejsza wartość w podanej kolumnie MAX (nazwa-kolumny) największa wartość w podanej kolumnie COUNT (*) liczba wierszy w tabeli SUM (nazwa-kolumny) suma wartość w podanej kolumnie AVG (nazwa-kolumny) średnia arytmetyczna wartość w podanej kolumnie.

47 Zmiana nazwy kolumny Gdy w poleceniu SELECT, zamiast nazwy-kolumny napiszemy wyrażenie zbudowane z nazw kolumn połączonych operatorami arytmetycznymi lub użyjemy wywołania funkcji agregującej, możemy po słowie AS podać nazwę, która zostanie przyjęta dla kolumny wyniku, np. SELECT Przedmiot, AVG (Ocena) AS [Średnia ocena] FROM Egzaminy GROUP BY Przedmiot; SELECT Przedmiot, [Średnia ocena] = AVG (Ocena) FROM Egzaminy GROUP BY Przedmiot;

48 Aliasy W przypadku złączeń kilku tabel możemy określić aliasy (skrótowe nazwy tych tabel), aby wykorzystać je przed nazwą kolumny, w celu określenia, z której tabeli pochodzi dana kolumna. Aliasy są niezbędne, gdy łączona jest ze sobą ta sama tabela. SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli1 INNER JOIN nazwa-tabeli2 WHERE nazwa-tabeli1.nazwa-kolumny = nazwa-tabeli2.nazwakolumny; możemy zastąpić poleceniem z aliasami SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli1 t1, nazwa-tabeli2 t2 WHERE t1.nazwa-kolumny = t2.nazwa-kolumny;

49 Warunek WHERE Do budowy warunku po słowie WHERE możemy wykorzystać: operatory porównania: =, <>,!=, <, <=, >, >= operatory logiczne: AND, OR, NOT operator BETWEEN wartość AND wartość operator IN (wartość {, wartość}) operator IS NULL operator LIKE ciąg-znaków - sprawdza, czy dana wartość tekstowa jest zgodna ze wzorcem podanego ciągu znaków (we wzorcu % oznacza dowolny ciąg znaków, a _ oznacza dowolny, pojedynczy znak)

50 Zasady filtrowania danych Zawsze w warunku WHERE staraj się korzystać z pól zawartych w kluczu własnym tabeli (lub w kluczach tabel złączonych). Jeśli to nie jest możliwe rozważ dodanie nowego indeksu do tabeli tak, aby kolumny użyte w warunku WHERE były elementami nowego indeksu.

51 GROUP BY Aby pogrupować wyniki polecenia SELECT wg określonych nazw kolumn, używamy GROUP BY. Najczęściej wykorzystujemy wówczas funkcje agregujące. Lista nazw kolumn występujących po słowie SELECT a nie będących funkcjami agregującymi, musi zostać powtórzona po słowie GROUP BY, przy czym kolejność nazw kolumn tu występujących będzie określała kolejność grupowania. SELECT Przedmiot, [Średnia ocena] = AVG (Ocena) FROM Egzaminy GROUP BY Przedmiot

52 HAVING HAVING występuje wyłącznie w połączeniu z GROUP BY i służy do selekcji (przy pomocy podanego warunku) zbioru pogrupowanych wyników. SELECT Przedmiot, Egzaminator, [Średnia ocena] = AVG (Ocena) FROM Egzaminy WHERE Przedmiot = 'Bazy danych' GROUP BY Przedmiot, Egzaminator HAVING AVG (Ocena) > 3.8

53 Zasady filtrowania danych Bez wyraźnej konieczności nie używaj warunków HAVING. Warunki HAVING wpływają na znaczne zmniejszenie prędkości wykonywania zapytania.

54 ORDER BY Wyniki wykonania polecenia SELECT mogą zostać uporządkowane wg określonych nazw kolumn przy pomocy ORDER BY. Porządek może być rosnący (ASC) (domyślny) lub malejący (DESC), dla każdej nazwy kolumny z osobna. Kolejność nazw kolumn po słowie ORDER BY będzie określała kolejność porządkowania. SELECT Przedmiot, Egzaminator, [Średnia ocena] = AVG (Ocena) FROM Egzaminy GROUP BY Przedmiot, Egzaminator HAVING AVG (Ocena) > 3.8 ORDER BY Przedmiot

55 Kontrola dostępu DCL - GRANT GRANT prawo-do-operacji (nazwa-kolumny {, nazwakolumny} ) ON nazwa-tabeli TO użytkownik IDENTIFIED BY 'haslo'; Powyższa komenda nadaje prawo do wykonywania określonych operacji określonemu użytkownikowi

56 DENY Komenda odmawiająca prawa do wykonywania określonych operacji określonemu użytkownikowi: DENY prawo-do-operacji (nazwa-kolumny {, nazwakolumny} ) ON nazwa-tabeli TO użytkownik;

57 REVOKE REVOKE prawo-do-operacji (nazwa-kolumny {, nazwakolumny} ) ON nazwa-tabeli TO użytkownik; Komenda wycofująca nadanie prawa lub odebranie prawa do wykonywania określonych operacji określonemu użytkownikowi.

58 Wybrane prawa do operacji ALL wszystkie operacje, CREATE tworzenie tabeli ALTER zmiana struktury tabeli, DROP usuwanie tabeli, INSERT wstawianie danych SELECT wyszukiwanie danych, UPDATE modyfikowanie danych DELETE usuwanie danych z tabeli

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

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

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

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

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

Tworzenie baz danych i tabel

Tworzenie baz danych i tabel Tworzenie baz danych i tabel Wprowadzenie SQL (ang. Structured Query Language strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.

Bardziej szczegółowo

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1 Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane

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

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

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 wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków

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

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

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

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

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

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

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

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2. Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017 Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny

Bardziej szczegółowo

Widok Connections po utworzeniu połączenia. Obszar roboczy

Widok Connections po utworzeniu połączenia. Obszar roboczy Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer

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

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

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

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

Wykład 3 2014-04-25 12:45 BD-1 W_3

Wykład 3 2014-04-25 12:45 BD-1 W_3 Wykład 3 SQL - język operacji na bazach danych Schemat przykładowej bazy danych Uczelnia Skrypt SQL - utworzenie bazy Uczelnia Polecenia selekcji i projekcji Interakcyjny dostęp do bazy danych 2014-04-25

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

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

Aspekty aktywne baz danych

Aspekty aktywne baz danych Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

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

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

SQL w praktyce. Miłej i owocnej nauki!!!

SQL w praktyce. Miłej i owocnej nauki!!! SQL w praktyce Niniejsza praca objęta jest prawami autorskimi. Nielegalne jest kopiowanie żadnej częsci tej pracy w żadnej postaci. Niezgodne z prawem tym bardziej jest udostępnianie innym tej pracy odpłatnie

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

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

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

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

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska SQL TECHNOLOGIE BAZ DANYCH Wykład 5: Język DDL i DML. SQL (ang. StructuredQueryLanguage) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB1, DB2: TEMAT: Wprowadzenie do SQL. Praca z pojedyncza

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

Język SQL, zajęcia nr 2

Język SQL, zajęcia nr 2 Język SQL, zajęcia nr 2 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 Funkcja agregująca

Bardziej szczegółowo

Lab.8: Podstawy języka SQL.

Lab.8: Podstawy języka SQL. Lab.8: Podstawy języka SQL. SQL (Structured Query Language) jest językiem zapytań służącym do obsługi relacyjnych baz danych. Współcześnie każdy SZBD posiada własną implementację języka, opartą na wspólnym

Bardziej szczegółowo

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa Studia Podyplomowe dla Nauczycieli Bazy danych SQL Języki baz danych Interfejs DBMS składa się

Bardziej szczegółowo

SQL Structured Query Language

SQL Structured Query Language SQL Structured Query Language stworzony na początku lat 70 ubiegłego wieku w IBM przez Donalda Messerly'ego, Donalda Chamberlina oraz Raymonda Boyce'a pod nazwą SEQUEL pierwszy SZBD System R utworzony

Bardziej szczegółowo

Bazy danych 5. Samozłaczenie SQL podstawy

Bazy danych 5. Samozłaczenie SQL podstawy Bazy danych 5. Samozłaczenie SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Przykład kolejowy Tworzymy bazę danych zawierajac a (uproszczony) rozkład jazdy pociagów

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

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 2 Typy danych wbudowane użytkownika Tabele organizacja wiersza przechowywanie dużych danych automatyczne

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

SQL Structured Query Language

SQL Structured Query Language SQL Structured Query Language stworzony na początku lat 70 ubiegłego wieku w IBM przez Donalda Messerly'ego, Donalda Chamberlina oraz Raymonda Boyce'a pod nazwą SEQUEL pierwszy SZBD System R utworzony

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

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

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

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

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

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

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

Instrukcja CREATE TABLE

Instrukcja CREATE TABLE Podstawy języka SQL 2 Instrukcja CREATE TABLE CREATE TABLE tabela (pole_1 typ [(rozmiar)] [NOT NULL] [indeks_1] [, pole_2 typ [(rozmiar)] [NOT NULL] [indeks_2] [,...]] [, CONSTRAINT indeks_wielopolowy

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

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

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

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

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Wykład 2. SQL 1 Structured Query Lenguage

Wykład 2. SQL 1 Structured Query Lenguage Wykład 2 SQL 1 Structured Query Lenguage SQL (Structured Query Language) Język zapytań do bazy danych. IBM lata osiemdziesiąte. Stosowany w systemach zarządzania bazami danych (DBMS); Oracle, Paradox,Access,

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

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

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)

Bardziej szczegółowo

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym

Bardziej szczegółowo

Bazy danych Ćwiczenia projektowe

Bazy danych Ćwiczenia projektowe Bazy danych Ćwiczenia projektowe Przygotował: Piotr Hajder Katedra Informatyki Stosowanej i Modelowania Wydział Inżynierii Metali i Informatyki Przemysłowej, AGH Agenda 01. Typy danych 02. Polecenia DDL

Bardziej szczegółowo

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Bazy danych podstawowe pojęcia Baza danych jest to zbiór danych zorganizowany zgodnie ze ściśle określonym modelem danych. Model danych to zbiór ścisłych

Bardziej szczegółowo

LAB 3 (część 1 Projektu)

LAB 3 (część 1 Projektu) Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 3 (część 1 Projektu) Na zajęciach należy zaprojektować schemat bazy danych oraz przygotować dokument zawierający: Temat: Autor: 1. Opis 2.

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

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

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

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

Bardziej szczegółowo

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji

Bardziej szczegółowo

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować: Język SQL (Structured Query Language} służy do manipulowania danymi umieszczonymi w relacyjnych bazach danych. Jest językiem uniwersalnym, dzięki czemu praca na różnych systemach baz danych sprowadza się

Bardziej szczegółowo

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408 Bazy Danych SQL Podstawy języka III: powtórzenie Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Modyfikacja schematu relacji Utwórz tabelę wg schematu: CREATE TABLE ODDZIAL ( numer_oddzialu

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ęzyki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

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

Bazy danych 4. SQL podstawy. P. F. Góra

Bazy danych 4. SQL podstawy. P. F. Góra Bazy danych 4. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 SQL:2006 (dialekt) SQL:2008 (dialekt) SQL:2011 (dialekt)

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

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

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo