Przegląd Instrukcja wyboru (SELECT) Instrukcje modyfikacji danych Inne instrukcje

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

Download "Przegląd Instrukcja wyboru (SELECT) Instrukcje modyfikacji danych Inne instrukcje"

Transkrypt

1 5. Język J SQL Przegląd Instrukcja wyboru (SELECT) Instrukcje modyfikacji danych Inne instrukcje for each {x=1; SQL select for each {x=1; SQL for each update {x=1; SQL update #1 K.Goczyła

2 SQL (Structured( Query Language) SEQUEL (1974) - opracowany w IBM Research Laboratory w San Jose. Następnie jego nazwę zmieniono na SQL (często wymawiane jako sequel ). Pierwsze zastosowanie - SYSTEM R, następnie w systemach DB2, SQL/DS, QMF na komputerach IBM/370 (mainframe). Standardy: SQL-86: ANSI X Database Language SQL SQL-89: ANSI X Database Language - Embedded SQL ANSI X Database Language - SQL with Integrity Enhancement SQL-92: ISO/IEC 9075:1992 Database Language SQL SQL-99: ISO/IEC 9075:1999 Information Technology - Database Languages - SQL SQL interakcyjny - instrukcje wprowadzane interakcyjnie, wyniki natychmiast prezentowane użytkownikowi w sposób ustalony przez DBMS (SQL nie zawiera żadnych instrukcji we/wy ani formatujących). zanurzony - instrukcje są zamieszczone w programie napisanym w innym języku (3GL lub 4GL); wyniki mogą być przekazane do zmiennych programu. #2 K.Goczyła

3 Składniki SQL SQL = Data Definition Language (DDL) + Data Manipulation Language (DML) + Data Control Language (DCL) Podstawowe instrukcje ("core SQL"`): DDL DML DCL CREATE TABLE CREATE VIEW CREATE INDEX ALTER TABLE DROP TABLE DROP VIEW DROP INDEX SELECT INSERT UPDATE DELETE GRANT REVOKE Standardy SQL-92 i SQL-99 obejmują ponadto szereg innych instrukcji, które rozszerzają funkcje DBMS np. o definiowanie ograniczeń, reguł, funkcji, wyzwalaczy itd. Szczegóły na temat konkretnej implementacji SQL - w dokumentacji DBMS. #3 K.Goczyła

4 Tworzenie tablic CREATE TABLE <nazwa tablicy> (<nazwa kolumny> <typ danych> [opcje] [, <nazwa kolumny > <typ danych> [opcje]... ] [, UNIQUE (<nazwa kolumny>, [<nazwa kolumny>])]...); Cel: Utworzenie w bazie danych nowej tablicy. Trzeba określić: - nazwę tablicy (niepowtarzalna w bazie danych), - nazwy kolumn (niepowtarzalne w tablicy), - typ danych każdej kolumny. Typy danych: (SQL-89) INTEGER, SMALLINT - liczba całkowita (zakres zależy od DBMS). DECIMAL[(m [, n ])], NUMERIC[(m [, n ])] - stałoprzecinkowa liczba rzeczywista o m cyfrach znaczących i n cyfrach po przecinku. FLOAT[(m)] - zmiennoprzecinkowa liczba rzeczywista o m cyfrach. REAL to samo co DECIMAL. DOUBLE PRECISION to samo co FLOAT. CHARACTER(n) - łańcuch znaków o długości do n znaków (separator: lub ). DATE - data (zwykle w formacie: mm/dd/yyyy). LOGICAL - wartości logiczne: yes/no, true/false. #4 K.Goczyła

5 Tworzenie tablic (cd.) Inne typy danych: (SQL-92) VARCHAR, DATETIME, MONEY, TEXT, IMAGE, BLOB, CLOB,... (szczegóły - w dokumentacji DBMS) Opcje (przykładowe): NOT NULL [ UNIQUE ] - w kolumnie musi być wartość, jeśli UNIQUE - to unikatowa. UNIQUE (<kolumna> [,<kolumna>]...) wartość w kolumnie (kolumnach) musi być unikatowa. Każda kolumna musi być zdefiniowana z opcją NOT NULL. [NOT] CASE-SENSITIVE określa, czy przy porównywaniu wartości w kolumnie znakowej ma być brana pod uwagę wielkość liter. COLUMN-LABEL łańcuch etykieta (nagłówek) kolumny przy wyświetlaniu tabelarycznym LABEL łańcuch etykieta kolumny przy wyświetlaniu swobodnym FORMAT łańcuch format wyświetlania wartości kolumny. DEFAULT wartość-początkowa domyślna wartość kolumny. AUTOINCREMENT - powoduje automatyczne nadawanie wartości kolumny przez system podczas wstawiania nowego wiersza. PRIMARY KEY - określa kolumnę jako klucz główny. REFERENCES [nazwa tablicy] - określa kolumnę jako klucz obcy. Szczegółowy wykaz opcji - w opisie instrukcji CREATE TABLE konkretnego DBMS. #5 K.Goczyła

6 Tworzenie tablic - przykład Instrukcje tworzące tablice bazy danych School1: CREATE TABLE Teachers (Tno CHAR(3) NOT NULL UNIQUE, Tname CHAR(12), Title CHAR(6), City CHAR(8), SupNo CHAR(3)); CREATE TABLE Students (Sno CHAR(3) NOT NULL UNIQUE, Sname CHAR(12), Sdate DATE, City CHAR(8)); CREATE TABLE TS (Tno CHAR(3) NOT NULL, Sno CHAR(3) NOT NULL, hours INT, UNIQUE (Tno, Sno)); #6 K.Goczyła

7 Tworzenie tablic - przykład (cd.) Z zastosowaniem opcji definiujących klucze główne i klucze obce: CREATE TABLE Teachers (Tno CHAR(3) PRIMARY KEY, Tname CHAR(12), Title CHAR(6), City CHAR(8), SupNo CHAR(3) REFERENCES Teachers); CREATE TABLE Students (Sno CHAR(3) PRIMARY KEY, Sname CHAR(12), Sdate DATE, City CHAR(8)); CREATE TABLE TS (Tno CHAR(3) REFERENCES Teachers, Sno CHAR(3) REFERENCES Students, Hours INT, PRIMARY KEY (Tno, Sno)); #7 K.Goczyła

8 Zmiana schematu tablicy ALTER TABLE <nazwa tablicy> { ADD COLUMN <kolumna> <typ danych> [opcje] DROP COLUMN <kolumna> ALTER COLUMN <kolumna> [opcje] } Cel: Dodanie nowej kolumny do istniejącej tablicy. Nowa kolumna przyjmuje wartości puste (NULL). Usunięcie kolumny z istniejącej tablicy. Zmiana opcji istniejącej kolumny (ale nie typu danych!). Przykłady: ALTER TABLE Students ADD COLUMN PhoneNo Char(13); ALTER TABLE Teachers DROP COLUMN City; ALTER TABLE Teachers ALTER COLUMN Tname LABEL "Name of Teacher ; Uwaga: Nie można zmienić niektórych opcji, np. NOT NULL, UNIQUE, PRIMARY KEY,... #8 K.Goczyła

9 Wstawianie danych do tablicy INSERT INTO <nazwa tablicy> [( <lista kolumn> )] VALUES (<lista wartości>) Cel: Wstawienie do tablicy nowego wiersza na podstawie listy podanych wartości. Jeśli nie ma <listy kolumn>, wówczas należy podać wszystkie wartości, w kolejności kolumn tablicy wynikającej z jej schematu. Przykłady: INSERT INTO Teachers VALUES ( T6, Taylor, Prof., New York, T1 ); INSERT INTO Teachers ( TNo, TName, City ) VALUES ( T7, James, Paris ); #9 K.Goczyła

10 SELECT - przegląd SELECT [DISTINCT] <lista kolumn/wyrażeń> FROM <lista tablic> [ WHERE <warunek> ] [ GROUP BY <lista kolumn> ] [ HAVING <warunek> ] [ UNION <instrukcja SELECT> ] [ ORDER BY <lista kolumn/numerów> ] SELECT - określa, które kolumny z tablic podanych we frazie FROM mają zostać włączone do wyniku (projekcja). Dodatkowo, mogą zostać włączone wyrażenia. DISTINCT - powoduje wyeliminowanie duplikatów (wierszy powtarzających się). FROM -określa tablice, na jakich działa instrukcja SELECT. Jeśli jest kilka tablic, dokonywany jest produkt kartezjański tych tablic. WHERE - określa warunki wyboru wierszy z tablic wymienionych we frazie FROM (selekcja). GROUP BY - powoduje wiązanie wierszy wynikowych w grupy o jednakowych wartościach we wskazanych kolumnach, a następnie redukowanie tych grup do pojedynczych wierszy. HAVING - określa warunki wyboru dla wierszy powstałych w wyniku działania frazy GROUP BY. UNION - oblicza sumę wyników dwóch instrukcji SELECT, eliminując duplikaty (unia). ORDER BY - porządkuje wiersze wynikowe rosnąco lub malejąco według wartości wskazanych kolumn/wyrażeń. #10 K.Goczyła

11 SELECT - zapytania proste SELECT [DISTINCT] <lista kolumn/wyrażeń> FROM <nazwa tablicy> [ WHERE <warunek> ] Zapytanie proste przeprowadza kombinację projekcji i selekcji (jeśli występuje fraza WHERE) w stosunku do jednej tablicy. Uwaga: <lista kolumn> może przybrać formę * (co oznacza wybór wszystkich kolumn). Przykłady: 1. Pokaż identyfikatory i nazwiska wszystkich nauczycieli. SELECT TNo, TName FROM Teachers; 2. Pokaż nazwy wszystkich miast, skąd pochodzą studenci. SELECT DISTINCT City FROM Students; Uwaga: Bez słowa DISTINCT nazwy miast mogłyby się powtarzać. #11 K.Goczyła

12 SELECT - zapytania proste (cd.) 3. Pokaż informacje o zajęciach, które trwały ponad 95 godzin. SELECT * FROM TS WHERE Hours > 95; 4. Pokaż identyfikatory i nazwiska nauczycieli, którzy pochodzą z Londynu. SELECT TNo, TName FROM Teachers WHERE City = London ; 5. Pokaż identyfikatory, tytuły i nazwiska nauczycieli, którzy mają szefa. SELECT TNo, Title, TName FROM Teachers WHERE SupNo IS NOT NULL; #12 K.Goczyła

13 SELECT - zapytania proste (cd.) 6. Dla każdego studenta nauczyciela T3 pokaż średnią liczbę godzin zajęć na tydzień. Wynik: SELECT Sno, Hours/15, godz. na tydzień FROM TS WHERE Tno = T3 ; SNO EXP1 EXP2 S godz. na tydzień S godz. na tydzień S godz. na tydzień S godz. na tydzień #13 K.Goczyła

14 Wyrażenia Operatory języka SQL występujące w wyrażeniach we frazie SELECT, WHERE i in.: Operatory arytmetyczne: Operatory logiczne: Operatory porównania: Operatory specjalne: ** ^ - potęgowanie * / - mnożenie, dzielenie dodawanie, odejmowanie NOT AND OR = > < >= <= <> Operatory porównania z wartością pustą: IN BETWEEN LIKE MATCHES IS NULL IS NOT NULL #14 K.Goczyła

15 Wyrażenia (cd.) Funkcje agregujące: COUNT() - zwraca liczbę wierszy wybranych w zapytaniu AVG() SUM() MIN() MAX() - oblicza średnią arytmetyczną w kolumnie numerycznej - sumuje wartości kolumn numerycznych - znajduje wartość minimalną w kolumnie znakowej, numerycznej lub daty - znajduje wartość maksymalną w kolumnie znakowej, numerycznej lub daty Funkcje zależne od DBMS operujące na datach/godzinach, łańcuchach znakowych, polach tekstowych, wielkich obiektach binarnych,... #15 K.Goczyła

16 Operatory specjalne IN Sprawdza, czy wartość w kolumnie jest równa jednej z wartości określonej na liście wartości lub będących wynikiem instrukcji SELECT. Przykłady: 1. WHERE City = London OR City = Davos OR City = Bristol jest równoważne: WHERE City IN ( London, Davos, Bristol ) 2. SELECT * FROM Teachers WHERE City IN (SELECT City FROM Students); Wynik: Ci nauczyciele z relacji Teachers, którzy pochodzą z miasta występującego w relacji Students. #16 K.Goczyła

17 Operatory specjalne (cd.) BETWEEN Sprawdza, czy wartość w kolumnie jest zawarta w przedziale wartości. Przykłady. 1. WHERE Hours >= 96 AND Hours <= 126 jest równoważne: WHERE Hours BETWEEN 96 AND SELECT * FROM Teachers WHERE TName BETWEEN A AND C ; Wynik: TNO TNAME TITLE CITY SUPNO T1 Blake Prof London NULL T5 Adams MSc Bristol T4 gdyż Clark > C #17 K.Goczyła

18 LIKE Operatory specjalne (cd.) Porównuje zawartość kolumny znakowej z łańcuchem znaków, który może zawierać symbole wieloznaczne (wildcards). Łańcuch ze znakami wieloznacznymi to wzorzec. Symbole wieloznaczne: _ (podkreślenie) - pasuje do dowolnego pojedynczego znaku, % (procent) - pasuje do dowolnej liczby dowolnych znaków. Przykład: 1. Pokaż wszystkich studentów o nazwiskach rozpoczynających się na J : Wynik: SELECT SName FROM Students WHERE SName LIKE J% ; SNAME Jones Johnson Uwaga: Podobne działanie ma operator MATCHES, jednak MATCHES pozwala stosować znacznie bardziej złożone wzorce niż LIKE. Szczegóły - w dokumentacji konkretnego DBMS. #18 K.Goczyła

19 Operatory specjalne (cd.) CONTAINS Sprawdza, czy wartość w kolumnie znakowej zawiera wskazany łańcuch. Przykład: Pokaż wszystkich studentów, których nazwisko zawiera łańcuch "Mary": SELECT SName FROM Students WHERE SName CONTAINS Mary ; Uwaga: Łańcuch użyty w operatorze CONTAINS może zawierać znaki specjalne oznaczające OR i AND. Szczegóły - w dokumentacji konkretnego DBMS. Przykład (Progress): SELECT SName FROM Students WHERE SName CONTAINS (Mary) (Maria) ; #19 K.Goczyła

20 COUNT() Funkcje agregujące Przykłady: 1. COUNT(*) - zwraca liczbę wierszy w tablicy wynikowej 2. COUNT(DISTINCT <nazwa kolumny>) - zwraca liczbę różnych wartości we wskazanej kolumnie. 1. Z ilu różnych miast pochodzą studenci? Wynik: SELECT COUNT(DISTINCT City) FROM Students; COUNT Ilu nauczycieli pochodzi z Londynu? SELECT COUNT(*) FROM Teachers WHERE City = London ; Wynik: COUNT1 2 #20 K.Goczyła

21 SUM([DISTINCT] <nazwa kolumny>) MIN([DISTINCT] <nazwa kolumny>) MAX([DISTINCT] <nazwa kolumny>) AVG([DISTINCT] <nazwa kolumny>) Funkcje agregujące (cd.) Zwracają odpowiednio: sumę, minimum, maksimum i średnią z wartości podanej kolumny. Dla SUM() i AVG(), kolumna musi być numeryczna, dla MIN() i MAX() kolumna może być też kolumną znakową lub daty. Przykłady: 1. Podaj sumę godzin zajęć studenta S5. SELECT SUM(Hours) Wynik: FROM TS SUM1 WHERE SNo = S5 ; Podaj minimum, maksimum i średnią godzin zajęć nauczyciela T3. SELECT MIN(Hours), MAX(Hours), AVG(Hours) FROM TS WHERE TNo = T3 ; Wynik: MIN1 MAX2 AVG #21 K.Goczyła

22 SELECT - porządkowanie wyników Bez frazy ORDER BY wyniki zapytania ukazują się w porządku nieokreślonym (zwykle w porządku wstawienia ich do tablicy) ORDER BY <nazwa kolumny/numer> [ASC/DESC] [, <nazwa kolumny/numer> [ASC/DESC]... ] Uwagi: 1.Numer kolumny we frazie ORDER BY oznacza pozycję kolumny na liście wyboru instrukcji SELECT. Trzeba go użyć, jeśli porządkujemy wg wartości wyrażenia. 2. Domyślnie przyjmowany jest porządek rosnący (ASC). Przykład 1. Pokaż alfabetycznie dane o nauczycielach (nazwisko, identyfikator i tytuł. SELECT TName, TNo,Title FROM Teachers ORDER BY Tname; Wynik: TNAME TNO TITLE Adams T5 MSc Blake T1 Prof. Clark T4 PhD Jones T3 Prof. Smith T2 PhD #22 K.Goczyła

23 SELECT - porządkowanie wyników (cd.) Przykład 2. Pokaż dane (ident. studenta, liczba godzin, ident. nauczyciela) o zajęciach studentów S1, S2 i S3, porządkując je rosnąco wg ident. studentów i malejąco wg liczby godzin. SELECT SNo, Hours, TNo FROM TS WHERE SNo IN ( S1, S2, S3 ) ORDER BY SNo, Hours DESC; Wynik: SNO HOURS TNO S1 96 T4 S1 64 T1 S1 32 T3 S2 100 T2 S2 64 T1 S2 36 T3 S3 120 T2 S3 96 T4 S3 60 T3 #23 K.Goczyła

24 SELECT - grupowanie GROUP BY <nazwa kolumny> [, <nazwa kolumny>...] [HAVING <warunek>] Fraza ta powoduje powiązanie ze sobą wierszy wynikowych z instrukcji SELECT w grupy wierszy, w których wskazane we frazie GROUP BY kolumny mają tę samą wartość. Następnie każda grupa jest redukowana do pojedynczego wiersza. W tym wierszu występują kolumny z frazy GROUP BY oraz ew. kolumny będące wynikiem funkcji agregujących. Funkcje te wówczas działają na każdej grupie osobno. Następnie eliminowane są wiersze nie spełniające warunku HAVING. Uwaga 1. Każda kolumna występująca we frazie GROUP BY musi wystąpić na liście wyboru instrukcji SELECT, i na odwrót. Uwaga 2. W warunku HAVING może wystąpić funkcja agregująca (ale nie w warunku WHERE!). Przykład 1. Dla każdego nauczyciela pokaż, z iloma studentami miał zajęcia. SELECT Tno, COUNT(*) FROM TS GROUP BY Tno; Wynik: TNO T1 2 T2 3 T3 4 T4 3 T5 1 COUNT1 #24 K.Goczyła

25 SELECT - grupowanie (cd.) Przykład 2. Dla każdego studenta oblicz sumę godzin jego zajęć. Pokaż tylko identyfikatory tych studentów, dla których ta suma przekracza 160. Wynik uporządkuj malejąco wg liczby godzin. Wynik: SELECT SNo, SUM(Hours) FROM TS GROUP BY SNo HAVING SUM(Hours) > 160 ORDER BY 2 DESC; SNO SUM1 S3 276 S2 196 S1 192 #25 K.Goczyła

26 SELECT - złączenia Jeśli fraza FROM zawiera więcej niż jedną tablicę, instrukcja SELECT wykonuje produkt kartezjański (operator TIMES) wskazanych tablic. Jeśli dodatkowo występuje fraza WHERE, wykonywana jest operacja relacyjnego złączenia. Przykład 1. Pokaż informacje o wszystkich zajęciach nauczyciela T4, podając identyfikatory i nazwiska studentów oraz liczby godzin. Wynik uporządkuj alfabetycznie wg nazwisk studentów. SELECT SName, TS.SNo, Hours FROM TS, Students WHERE TS.SNo = Students.SNo AND TNo = T4 ORDER BY SName; Wynik: STUDENTS.SNAME TS.SNO TS.HOURS Ford S5 96 Henry S1 96 Johnson S3 96 #26 K.Goczyła

27 SELECT - złączenia (cd.) Przykład 2. Pokaż wszystkie pary (nauczyciel, student) takie, że nauczyciel i student pochodzą z tego samego miasta. Podaj identyfikatory i nazwiska studentów i nauczycieli. Wynik uporządkuj alfabetycznie wg nazw miast, a potem wg nazwisk nauczycieli i studentów. Wynik: SELECT T.City, TName, TNo, SName, SNo FROM Teachers T, Students S WHERE T.City = S.City ORDER BY T.City, TName, SName; T.CITY T.TNAME T.TNO S.SNAME S.SNO Bristol Adams T5 Ford S5 London Blake T1 Henry S1 London Blake T1 Higgins S4 London Jones T3 Henry S1 London Jones T3 Higgins S4 Uwaga: S i T są aliasami tablic. W tym przykładzie służą tylko do skrócenia zapisu. #27 K.Goczyła

28 SELECT - złączenia (cd.) Przykład 3. Dla każdego nauczyciela pokaż jego nazwisko, identyfikator i sumę godzin zajęć. Wynik uporządkuj alfabetycznie wg nazwisk. SELECT TName, TS.TNo, SUM(Hours) FROM Teachers T, TS WHERE T.TNo = TS.TNo GROUP BY TName, TS.TNo ORDER BY TName; Wynik: T.TNAME TS.TNO SUM1 Adams T Blake T Clark T Jones T Smith T #28 K.Goczyła

29 SELECT - złączenia (cd.) Złączenie tablicy z tą samą tablicą nazywamy samozłączeniem. Samozłączenie umożliwia wiązanie ze sobą informacji zawartych w różnych wierszach jednej tablicy. Do dokonania samozłączenia konieczne jest zastosowanie aliasów (nazw korelacji). Przykład 4. Dla każdego nauczyciela pokaż listę nauczycieli, którzy są jego podwładnymi. Wynik uporządkuj alfabetycznie wg nazwisk szefów, a potem wg nazwisk podwładnych. Wynik: SELECT Over.TName, Over.TNo, jest szefem dla, Under.TName, Under.TNo FROM Teachers Under, Teachers Over WHERE Under.SupNo = Over.TNo ORDER BY Over.TName, Under.TName; OVER.TNAME OVER.TNO EXP1 UNDER.TNAME UNDER.TNO Blake T1 jest szefem dla Jones T3 Blake T1 jest szefem dla Smith T2 Clark T4 jest szefem dla Adams T5 Jones T3 jest szefem dla Clark T4 #29 K.Goczyła

30 SELECT - podzapytania W podzapytaniu instrukcja SELECT jest zagnieżdżona we frazie WHERE lub HAVING. Zagnieżdżona instrukcja SELECT, zwana zapytaniem wewnętrznym, dostarcza wartości dla warunku WHERE lub HAVING. Instrukcja SELECT zawierająca podzapytanie to zapytanie zewnętrzne. Przykłady: 1. Pokaż dane o zajęciach nauczycieli pochodzących z Londynu. SELECT * FROM TS WHERE TNo IN (SELECT TNo FROM Teachers WHERE City = London ) ; 2. Pokaż identyfikatory i nazwiska nauczycieli, którzy prowadzili chociaż jedne zajęcia, które trwały ponad 64 godziny. SELECT TNo, TName FROM Teachers WHERE TNo IN (SELECT TNo FROM TS WHERE Hours > 64) ; #30 K.Goczyła

31 SELECT - podzapytania (cd.) 3. Pokaż identyfikatory i nazwiska nauczycieli, którzy prowadzili chociaż jedne zajęcia, które trwały dłużej niż wynosi średnia liczba godzin na jedno zajęcie. SELECT TNo, TName FROM Teachers WHERE TNo IN (SELECT TNo FROM TS WHERE Hours > (SELECT AVG(Hours) FROM TS)); 4. Pokaż nazwiska, identyfikatory i tytuły nauczycieli, dla których łączna liczba godzin zajęć przekracza 200. Uporządkuj wynik alfabetycznie wg nazwisk. SELECT TName, TNo, Title FROM Teachers WHERE TNo IN (SELECT TNo FROM TS GROUP BY TNo HAVING SUM(Hours) > 200) ORDER BY TName; #31 K.Goczyła

32 SELECT - podzapytania (cd.) 5. Pokaż dane o zajęciach, w których nauczyciel lub student pochodzą z Londynu. Uporządkuj wyniki wg identyfikatorów nauczycieli i studentów. SELECT * FROM TS WHERE TNo IN (SELECT TNo FROM Teachers WHERE City = London ) OR SNo IN (SELECT SNo FROM Students WHERE City = London ) ORDER BY TNo, SNo; #32 K.Goczyła

33 SELECT - podzapytania (cd.) W warunku WHERE może wystąpić operator EXISTS (predykat). EXISTS zwraca True, jeśli podzapytanie zwraca choć jeden wiersz, a False w przeciwnym wypadku. 6. Pokaż dane o nauczycielach, którzy uczyli studenta S1. SELECT * FROM Teachers WHERE EXISTS (SELECT * FROM TS WHERE Teachers.TNo = TS.TNo AND TS.SNo = S1 ); 7. Pokaż dane (ident. i nazwisko) studentów, których nie uczył nauczyciel T3. SELECT SNo, SName FROM Students WHERE NOT EXISTS (SELECT * FROM TS WHERE Students.SNo = TS.SNo AND TS.TNo = T3 ); #33 K.Goczyła

34 SELECT - podzapytania (cd.) 8. Pokaż dane (ident., nazwisko, tytuł) o nauczycielach, którzy uczyli wszystkich studentów. SELECT TNo, TName, Title FROM Teachers WHERE NOT EXISTS (SELECT * FROM Students WHERE NOT EXISTS (SELECT * FROM TS WHERE Teachers.TNo = TS.Tno AND Students.SNo = TS.SNo)); #34 K.Goczyła

35 SELECT - podzapytania (cd.) 9. Pokaż identyfikatory nauczycieli, którzy uczyli więcej niż jednego studenta. SELECT DISTINCT TS1.TNo FROM TS TS1 WHERE EXISTS (SELECT * FROM TS TS2 WHERE S1.TNo = TS2.TNo AND TS1.SNo <> TS2.SNo); 10. Pokaż nazwiska i identyfikatory tych nauczycieli, którzy są szefami. SELECT Over.TName, Over.TNo FROM Teachers Over WHERE EXISTS (SELECT * FROM Teachers Under WHERE Over.TNo = Under.SupNo); Uwaga: Ten sam wynik można uzyskać za pomocą złączenia podobnego do tego z przykładu 4 sekcji "SELECT - złączenia". #35 K.Goczyła

36 Wstawianie danych z innych tablic INSERT INTO <nazwa tablicy> [( <lista kolumn> )] < instrukcja SELECT > Cel: Wstawienie do jednej tablicy wierszy wybranych z innej tablicy lub innych tablic. Przykład: Załóżmy, że tablica Students1 ma tę samą strukturę co tablica Students. Instrukcja: INSERT INTO Students SELECT * FROM Students1 WHERE SYear > 1990; wstawia do tablicy Students wszystkie wiersze z tablicy Students1 dotyczące studentów, którzy rozpoczęli naukę po roku #36 K.Goczyła

37 Zachowywanie wyników w zapytania Niektóre DBMS pozwalają na zachowywanie wyników instrukcji SELECT w tablicy tymczasowej, przez zastosowanie frazy podobnej do poniższej: INTO TEMP <nazwa tablicy> (<lista kolumn>) Tablica tymczasowa jest tworzona przez instrukcję SELECT zgodnie z typami danych umieszczonych na liście wyboru instrukcji SELECT. Tablica taka jest automatycznie kasowana podczas zamykania bazy danych przez bieżącego użytkownika. Tablica tymczasowa może być używana we frazach FROM następnych instrukcji SELECT. W ten sposób można rozbijać skomplikowane zapytania na kilka etapów. #37 K.Goczyła

38 Przykład. Zachowywanie wyników w zapytania (cd.) Pokaż nazwiska, identyfikatory i tytuły tych nauczycieli, którzy mieli zajęcia o łącznej długości przekraczającej średnią łączną długość zajęć na jednego nauczyciela. Wynik uporządkuj alfabetycznie wg nazwisk. SELECT TNo, SUM(Hours) FROM TS GROUP BY TNo INTO TEMP Tsum(TNo, HSum); SELECT TName, TNo, Title FROM Teachers WHERE TNo IN (SELECT TNo FROM Tsum WHERE Hsum > (SELECT AVG(Hsum) FROM Tsum)); ORDER BY TName; Tablica TSUM zawiera sumy godzin zajęć dla każdego nauczyciela. W drugim zapytaniu z tablicy TEACHERS wybieramy tylko tych nauczycieli, dla których suma godzin z tablicy TSUM przekracza średnią z tych sum. #38 K.Goczyła

39 Zachowywanie wyników w zapytania (cd.) Niektóre systemy DBMS nie dają możliwości bezpośredniego zachowywania wyników instrukcji SELECT w tablicy tymczasowej (tzn. składnia instrukcji SELECT nie zawiera opcjonalnej frazy INTO TEMP lub podobnej). W takich wypadkach należy jawnie utworzyć nową tablicę i zastosować wsadową wersję instrukcji INSERT: SELECT... FROM... WHERE INTO TEMP Tab1(kol1, kol2,...); Przykład: SELECT TNo, Tname FROM Teachers WHERE Title = Prof. INTO TEMP Profes (PNo, PName); CREATE TABLE Tab1 (kol1 typ1, kol2 typ2,...); INSERT INTO Tab1 SELECT... FROM... WHERE...; CREATE TABLE Profes (PNo Char(4), Pname Char(12)); INSERT INTO Profes SELECT TNo, Tname FROM Teachers WHERE Title = Prof. ; #39 K.Goczyła

40 Aktualizowanie danych UPDATE <nazwa tablicy> SET <nazwa kolumny> = <wyrażenie> [, <nazwa kolumny> = <wyrażenie>...] [ WHERE <warunek> ] Cel: Zmiana wartości w kolumnach jednego lub wielu wierszy tablicy. Przykłady: 1. Prof. Blake (ident. T1) zmienił przeniósł się z Londynu do Birmingham. UPDATE Teachers SET City = Birmingham WHERE TNo = T1 ; 2. Okazało się, że pan Jones (ident. T3) miał ze wszystkimi swoimi studentami o 8 godzin więcej niż to zostało poprzednio zapisane. Trzeba dokonać następującej aktualizacji: UPDATE TS SET Hours = Hours+8 WHERE Tno = T3 ; 3. Okazało się, że niektóre dane o studencie S3 zostały błędnie zapisane w bazie danych. Trzeba zmienić wartość kilku pól. UPDATE Students SET Sname = Johnsone, Syear = 1984, City = Diblan WHERE Sno = S3 ; #40 K.Goczyła

41 Usuwanie danych DELETE FROM <nazwa tablicy> [ WHERE <warunek> ] Cel: Usunięcie z tablicy jednego lub wielu wierszy. Przykłady: 1. Prof. Blake (ident. T1) zmienił miejsce pracy. Należy usunąć zapis o nim z tablicy Teachers (gdzie przechowujemy dane tylko o aktualnie zatrudnionych nauczycielach) i przenieść je do tablicy Teachers1 (o strukturze takiej samej jak Teachers), pełniącej rolę archiwum. INSERT INTO Teachers1 SELECT * FROM Teachers WHERE TNo = T1 ; DELETE FROM Teachers WHERE TNo = T1 ; 2. Przy końcu roku akademickiego przenosimy wszystkie rekordy z tablicy TS do TS1, w której przechowujemy dane archiwalne z tablicy TS. Następnie czyścimy tablicę TS. INSERT INTO TS1 SELECT * FROM TS; DELETE FROM TS; #41 K.Goczyła

42 Sumowanie tablic <instrukcja SELECT> UNION [ALL] <instrukcja SELECT> Cel: Realizacja operacji algebry relacji UNION w stosunku do tablic będących wynikiem dwóch lub więcej instrukcji SELECT. Tablice muszą być zgodne. Uwagi: 1. Z tablicy wynikowej usuwane są wiersze powtarzające się (duplikaty), chyba że występuje ALL. 2. Jeśli nazwy kolumn sumowanych tablic są różne, tablica wynikowa przyjmuje nazwy kolumn z pierwszej tablicy. 3. Jeśli po UNION występuje fraza ORDER BY, muszą w niej występować numery, a nie nazwy kolumn. Przykład: Pokaż alfabetycznie nazwy miast, skąd pochodzą studenci lub nauczyciele. SELECT City FROM Teachers UNION SELECT City FROM Students ORDER BY 1; #42 K.Goczyła CITY Adelaide Bristol Davos Dublin Glasgow Liverpool London

43 Odejmowanie tablic (SQL-92) <instrukcja SELECT> MINUS [ALL] <instrukcja SELECT> Cel: Realizacja operacji algebry relacji MINUS w stosunku do tablic będących wynikiem dwóch lub więcej instrukcji SELECT. Tablice muszą być zgodne. Uwagi: 1. Z tablicy wynikowej usuwane są wiersze powtarzające się (duplikaty), chyba że występuje ALL. 2. Jeśli nazwy kolumn sumowanych tablic są różne, tablica wynikowa przyjmuje nazwy kolumn z pierwszej tablicy. 3. Jeśli po MINUS występuje fraza ORDER BY, muszą w niej występować numery, a nie nazwy kolumn. Przykład: Pokaż alfabetycznie nazwy miast, skąd pochodzą studenci, ale nie nauczyciele. SELECT City FROM Students MINUS SELECT City FROM Teachers ORDER BY 1; CITY Adelaide Davos Dublin #43 K.Goczyła

44 Przecinanie tablic (SQL-92) <instrukcja SELECT> INTERSECT [ALL] <instrukcja SELECT> Cel: Realizacja operacji algebry relacji INTERSECT w stosunku do tablic będących wynikiem dwóch lub więcej instrukcji SELECT. Tablice muszą być zgodne. Uwagi: 1. Z tablicy wynikowej usuwane są wiersze powtarzające się (duplikaty), chyba że występuje ALL. 2. Jeśli nazwy kolumn sumowanych tablic są różne, tablica wynikowa przyjmuje nazwy kolumn z pierwszej tablicy. 3. Jeśli po INTERSECT występuje fraza ORDER BY, muszą w niej występować numery, a nie nazwy kolumn. Przykład: Pokaż alfabetycznie nazwy miast, skąd pochodzą zarówno studenci, jak i nauczyciele. SELECT City FROM Students INTERSECT SELECT City FROM Teachers ORDER BY 1; CITY Bristol London #44 K.Goczyła

45 Tworzenie indeksów CREATE [UNIQUE] INDEX <nazwa indeksu> ON <nazwa tablicy> (<nazwa kolumny> [ASC/DESC] [, <nazwa kolumny> [ASC/DESC]... ]); Cel: Tworzy indeks na określonych kolumnach, zwanych kluczami indeksu. Domyślnie, indeks jest rosnący (ASC). Fraza UNIQUE oznacza, że kolumny indeksu zawierają wartości niepowtarzalne. Przykłady: CREATE UNIQUE INDEX TeachInd ON Teachers (Tno ); CREATE UNIQUE INDEX TSInd ON TS (Tno, SNo ); CREATE INDEX HrsInd ON TS (Sno, Hours DESC); #45 K.Goczyła

46 Tworzenie indeksów (cd.) Co to jest indeks? Jest to tablica zawierająca w jednej kolumnie wartości klucza, a w drugiej adresy wierszy w indeksowanej tablicy, które zawierają te wartości. Do czego służy? 1. Pozwala zwiększyć efektywność przetwarzania żądań dostępu do danych z tablicy (instrukcji SELECT). 2. Porządkuje wiersze tablicy w określonym porządku. 3. Zapobiega powtarzaniu się wartości w wierszach tablicy. Kiedy tworzyć indeks? 1. Gdy tablica jest często przetwarzana sekwencyjnie zgodnie z wartościami pewnej kolumny (rosnąco lub malejąco). 2. Gdy konieczne jest zachowanie unikatowości wartości kolumn(y). 3. Gdy dostęp do tablicy jest często realizowany zgodnie z wartościami danej kolumny lub kolumn (dostęp asocjacyjny). Jaki jest koszt? 1. Koszt pamięciowy (utrzymywanie dodatkowych danych). 2. Koszt czasowy (konieczność aktualizacji indeksu podczas aktualizowania tablicy (instrukcje INSERT, UPDATE, DELETE). #46 K.Goczyła

47 Tworzenie indeksów - przykłady Przykład 1: CREATE INDEX TSHours ON TS (Hours DESC); TSHours TS Hours RecNo TNO SNO HOURS RecNo T1 S T1 S T2 S T2 S T2 S T3 S T3 S T3 S T3 S T4 S T4 S T4 S T5 S #47 K.Goczyła

48 Tworzenie indeksów - przykłady (cd.) Przykład 2: CREATE INDEX StudHrs ON TS (Sno, Hours); StudHrs TS SNo+Hours RecNo TNo SNo Hours RecNo S T1 S S T1 S S T2 S S T2 S S T2 S S T3 S S T3 S S T3 S S T3 S S T4 S S T4 S S T4 S S T5 S #48 K.Goczyła

49 Indeksy bitmapowe (Oracle) Przykład: CREATE BITMAP INDEX Titles ON Teachers (Title); Titles MSc PhD Prof Rowid Teachers TNO TNAME TITLE CITY SUPNO Rowid T1 Blake Prof. London NULL 1 T2 Smith PhD Glasgow T1 2 T3 Jones Prof. London T1 3 T4 Clark PhD Liverpool T3 4 T5 Adams MSc Bristol T4 5 Indeks bitmapowy warto stosować wtedy, gdy liczba różnych wartości indeksowanej kolumny jest b. mała w stosunku do liczby wierszy tablicy i jest z góry znana (nie rośnie). Typowym zastosowaniem są systemy przetwarzania danych w hurtowniach danych (bardzo obszerne dane, ale niezmienne w czasie). #49 K.Goczyła

50 Widoki Widok (wirtualna tablica) Kombinacja wierszy i kolumn wybranych z jednej lub kilku tablic. Po utworzeniu widoku można na nim wykonywać instrukcje SELECT jak na zwykłej tablicy. W bazie danych (w słowniku danych) pamiętana jest jedynie definicja widoku. Widok jest materializowany w razie potrzeby. Korzy ści ze stosowania widoków: Te same dane mogą być widziane w różny sposób przez różnych użytkowników. Pozwalają koncentrować się ma danych istotnych, a ignorować inne. Wprowadzają dodatkowy poziom niezależności od danych: Jeśli zmieni się coś w schemacie bazy danych, często wystarczy zmienić definicję widoku, nie zmieniając programu. Wprowadzają ochronę danych przez ich ukrycie: Użytkownicy "widzą" tylko widoki, czyli tylko te dane, do których mają prawo dostępu. Różnice między widokami a tablicami: Widoki nie zawierają danych; zawierają tylko informacje, jak zebrać te dane w razie potrzeby (tzn. z jakich tablic, z jakich kolumn i w jaki sposób). Widoków nie można indeksować (ale można indeksować tablice wchodzące w skład widoku). W ogólności, nie można aktualizować danych poprzez widok. #50 K.Goczyła

51 Tworzenie widoków CREATE VIEW <nazwa widoku> [ <lista kolumn> ] AS <instrukcja SELECT > [WITH CHECK OPTION] Cel: Utworzenie widoku (wirtualnej tablicy). Opcjonalna <lista kolumn> określa nazwy kolumn widoku. Jeśli jej nie ma, nazwy kolumn pochodzą z instrukcji SELECT widoku. WITH CHECK OPTION Gwarantuje, że wszystkie aktualizacje widoku (jeśli widok jest aktualizowalny) spełniają warunki występujące we frazie WHERE instrukcji SELECT. Przykład 1. (widok aktualizowalny) CREATE VIEW TopTeachers AS SELECT TNo, TName, Title FROM Teachers WHERE Title <> 'MSc' WITH CHECK OPTION; SELECT * FROM TopTeachers; Wynik zapytania: TNO TNAME TITLE T1 Blake Prof. T2 Smith PhD T3 Jones Prof. T4 Clark PhD #51 K.Goczyła

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

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

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

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

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

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

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

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

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

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

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

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli SPOOL moj_plik SPOOL OFF @ moj_ plik edit CREATE TABLE DESCRIBE ALTER TABLE RENAME DROP TABLE CONNECT CONNECT USER_NAME DISCONNECT EXIT zapisuje wszystkie wydane polecenia oraz ich wyniki do pliku moj_plik,

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

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

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

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

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

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

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

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

- 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

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

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

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

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

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

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

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

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

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

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

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

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

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

Ć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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

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

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

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

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

2. Model związk. zków w encji. (Entity. Relationship Model) Modelowanie świata Poj Diagramy zwi

2. Model związk. zków w encji. (Entity. Relationship Model) Modelowanie świata Poj Diagramy zwi 2. Model związk zków w encji (Entity Relationship Model) Modelowanie świata Poj Diagramy zwi Przykłady Pojęcie encji i klucza encji Diagramy związk zków w encji (ERD) A B C Materiały pomocnicze do wykładu

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

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 5 Strukturalny język zapytań (SQL - Structured Query Language) Algebraiczny rodowód podstawowe działania w przykładach Bazy danych.

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

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

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

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

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

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

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

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

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

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

Bazy danych Język SQL część 2 Wykład dla studentów matem

Bazy danych Język SQL część 2 Wykład dla studentów matem Bazy danych Język SQL część 2 Wykład dla studentów matematyki 21 marca 2015 Zapytania na kilku tabelach Czasem poszukiwana informacja znajduje się w kilku tabelach. Aby zapytanie dotyczyło kilku tabel,

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

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

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

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

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

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

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

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

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

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

Zaawansowane bazy danych i hurtownie danych semestr I

Zaawansowane bazy danych i hurtownie danych semestr I Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie

Bardziej szczegółowo

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d. TECHNOLOGIE BAZ DANYCH WYKŁAD 1 Wprowadzenie do baz danych. Normalizacja. (Wybrane materiały) Dr inż. E. Busłowska Definicja bazy danych Uporządkowany zbiór informacji, posiadający własną strukturę i wartość.

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

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE Instrukcje SQL dzielimy na następujące kategorie: 1) Instrukcje języka manipulowania danymi (DML) SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN 2) Instrukcje języka definicji danych DDL

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

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

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

Kurs. Podstawy MySQL

Kurs. Podstawy MySQL Kurs Podstawy MySQL Krótkie info. Autorem kursu jest Piotr Jędrusik. Kurs jest własnością serwisu MySQL FAQ www.mysqlfaq.prv.pl, email: mysqlfaq@twister.pl. 1. Tworzymy bazę. Stworzymy pierwszą bazę o

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

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

Fizyczna struktura bazy danych w SQL Serwerze

Fizyczna struktura bazy danych w SQL Serwerze Sposób przechowywania danych na dysku twardym komputera ma zasadnicze znaczenie dla wydajności całej bazy i jest powodem tworzenia między innymi indeksów. Fizyczna struktura bazy danych w SQL Serwerze

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

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym. Modele - konceptualne reprezentacja obiektów w

Bardziej szczegółowo

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli. SQL W JĘZYKU PL/SQL Strukturalny język zapytań SQL określa sposób manipulowania danymi w bazie danych. Konstrukcje proceduralne języka PL/SQL stają się bardziej użyteczne w połączeniu z mocą przetwarzania

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Hurtownia Świętego Mikołaja projekt bazy danych

Hurtownia Świętego Mikołaja projekt bazy danych Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek

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

2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA PLAN WYKŁADU Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna BAZY DANYCH Wykład 2 dr inż. Agnieszka Bołtuć MODEL DANYCH Model danych jest zbiorem ogólnych zasad posługiwania

Bardziej szczegółowo

Podstawowe informacje o bazach danych. Technologie Informacyjne

Podstawowe informacje o bazach danych. Technologie Informacyjne Podstawowe informacje o bazach danych Technologie Informacyjne dr inż. Michna Michał, Politechnika Gdańska 2010/2011 Przykłady systemów baz danych Książka telefoniczna, książka kucharska Zarządzanie magazynem/hurtownią

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

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

SQL - DDL. 1 Tabele systemowe. 2 Typy danych SQL - DDL DDL (ang. data definition language) jest częścią języka zapytań SQL obejmująca tworzenie i zarządzanie (modyfikację, usuwanie i przydzielanie uprawnień) obiektami w bazie danych (tabelami, perspektywami,

Bardziej szczegółowo

2010-10-21 STANDARDY JĘZYKA SQL CECHY JĘZYKA SQL WADY I ZALETY

2010-10-21 STANDARDY JĘZYKA SQL CECHY JĘZYKA SQL WADY I ZALETY PLAN WYKŁADU BAZY DANYCH Wykład 3,4 dr inż. Agnieszka Bołtuć Definicja, historia, cechy SQL Standardy SQL Formy i podzbiory SQL Typy danych Składnia DML DDL DCL Perspektywy Definicja dziedziny, asercja

Bardziej szczegółowo

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

Bardziej szczegółowo

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Bazy danych 2. Wykład 4 Structured Query Language (SQL) Bazy danych 2 Wykład 4 Structured Query Language (SQL) Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language)

Bardziej szczegółowo

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych Andrzej Bąk Wstęp Zarys Co to jest baza danych? Podstawy teorii baz danych Klasyfikacja baz danych Organizacja danych w relacyjnej

Bardziej szczegółowo

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Wstęp do problematyki baz danych Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS w. I Jesień 2014 1 / 17 Plan wykładu 1 Bazy danych 1 Motywacja

Bardziej szczegółowo

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne sztuczki - sql. Na przykładzie postgres a. Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie

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

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Grupa A (LATARNIE) Imię i nazwisko: Numer albumu: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Nazwisko prowadzącego: 11: 12: Suma: Ocena: Zad. 1 (10 pkt) Dana jest relacja T. Podaj wynik poniższego zapytania (podaj

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia BAZY DANYCH LABORATORIUM Studia niestacjonarne I stopnia Gdańsk, 2011 1. Cel zajęć Celem zajęć laboratoryjnych jest wyrobienie praktycznej umiejętności tworzenia modelu logicznego danych a nastepnie implementacji

Bardziej szczegółowo