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

Autor: Joanna Karwowska

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 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

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

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

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

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

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

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

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

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

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

Bardziej szczegółowo

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

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

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

Ć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

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

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła 040 STRUCTURED QUERY LANGUAGE Prof. dr hab. Marek Wisła SQL strukturalny język zapytań SQL (Structured Query Language) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych

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

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

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

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 model relacyjny. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski BAZY DANYCH model relacyjny Opracował: dr inż. Piotr Suchomski Relacyjny model danych Relacyjny model danych posiada trzy podstawowe składowe: relacyjne struktury danych operatory algebry relacyjnej, które

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

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

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

Bardziej szczegółowo

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

1 Wstęp do modelu relacyjnego

1 Wstęp do modelu relacyjnego Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared

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

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

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

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

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

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 10. SQL Widoki

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

Bardziej szczegółowo

Język SQL. 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

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

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

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

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

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

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

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

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

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

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

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

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

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

Wykład 6. SQL praca z tabelami 3

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

Bardziej szczegółowo

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

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

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy]; Widoki/Perspektywy Podstawy Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy]; Usuwanie widoku DROP VIEW [nazwa_widoku]; Przykład 1 Przykład najprostszego

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

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

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

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

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

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

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

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

Autor: Joanna Karwowska

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

Bardziej szczegółowo

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

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji BAZY DANYCH WYKŁAD 5 Normalizacja relacji. Zapytania zagnieżdżone cd. Wady redundancji Konieczność utrzymania spójności kopii, Marnowanie miejsca, Anomalie. (Wybrane materiały) Dr inż. E. Busłowska Copyright

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

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

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

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

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

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

Bardziej szczegółowo

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