loc dom
Transkrypt
loc dom
Relacje BAZY DANYCH • WYKŁAD 1 Wprowadzenie do baz danych. Podstawy języka SQL. (Wybrane materiały) Dr inż. E. Busłowska • • • • • • Copyright © 2014-2015, E. Busłowska. 1 Relacja STUDENCI Imię Rok studiów Kowalski Jan 1 22201 Nowak Jerzy 2 22202 Zgoda Inga 2 22203 Gryko Piotr 1 22204 Waśkiewicz Anna 2 22205 Pelski Andrzej 1 • Stopień relacji – liczba atrybutów. • Liczność – liczba rekordów. • Dziedziny (DOM) - zbiory wartości, z których pochodzą elementy występujące się w kolumnach tabeli. • Wartości null - wartość nieznana. Liczność Nazwisko 2 • Schematem relacji nazywamy zbiór R = {A 1 , A 2 ,......., A n} gdzie A 1 , A 2 , ..., A n są atrybutami ( nazwami kolumn). Atrybuty 22200 Copyright © 2014-2015, E. Busłowska. Pojęcia podstawowe cd. • Dane są umieszczane w rekordach o określonej strukturze, z polami o określonej długości i typie Nr indeksu Każda relacja w bazie danych ma jednoznaczną nazwę. Dwuwymiarowa tabela jest matematycznym zbiorem o jednoznacznej nazwie. Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej relacji. Każda kolumna to zbiór. Wszystkie wartości w kolumnie muszą być tego samego typu. Porządek kolumn w relacji nie jest istotny. Każdy wiersz w relacji musi być różny. Powtórzenia wierszy nie są dozwolone w relacji. Porządek wierszy nie jest istotny. Każde pole leżące na przecięciu kolumny i wiersza w relacji powinno zawierać wartość atomową. Stopień Copyright © 2014-2015, E. Busłowska. 3 Klucze główne 4 Klucze obce • Klucz główny jest to jedna lub więcej kolumn tabeli, w których wartości jednoznacznie identyfikują każdy wiersz w tabeli. • W tabeli może istnieć wiele kluczy kandydujących. Klucz kandydujący to kolumna lub zbiór kolumn, które mogą występować jako jednoznaczny identyfikator wierszy w tabeli. Copyright © 2014-2015, E. Busłowska. Copyright © 2014-2015, E. Busłowska. 5 • Klucze obce są sposobem łączenia danych przechowywanych w różnych tabelach. • Klucz obcy jest kolumną lub grupą kolumn tabeli, która przybiera wartości z tej samej dziedziny co klucz główny tabeli powiązanej z nią w bazie danych. Copyright © 2014-2015, E. Busłowska. 6 1 Składnia zapytania SQL Klauzula SELECT SELECT [ALL | DISTINCT] wyrażenie1 [, wyrażenie2, ...] FROM nazwa_tabeli1 [, nazwa_tabeli2, ...] [WHERE warunek] [GROUP BY wyrażenie1 [, wyrażenie2, ...]] [HAVING warunek] [ORDER BY wyrażenie1 [ASC | DESC] [, wyrażenie2 [ASC | DESC] ,...]]; Copyright © 2014-2015, E. Busłowska. • Podać nazwiska wszystkich pracowników z relacji Pracownicy: SELECT ename FROM EMP; • Język SQL akceptuje występowanie duplikatów wierszy zarówno w relacjach, jak i w odpowiedziach na zapytania. SELECT deptno FROM EMP; 7 Copyright © 2014-2015, E. Busłowska. Operatory Klauzula SELECT c. d. • Symbol gwiazdki " * " może zostać użyty w znaczeniu "wszystkie atrybuty" SELECT * FROM DEPT; • Wyrażenia arytmetyczne składające się ze stałych, atrybutów wierszy i operatorów: + , - , * i / SELECT sal+comm FROM EMP; Copyright © 2014-2015, E. Busłowska. • • • • • • • • • • • • • 9 = równa się <>, != nie równa się > jest większy >= jest większy lub równy < jest mniejszy <= jest mniejszy lub równy BETWEEN ... AND znajduje się między dwoma wartościami IN (lista) znajduje się w liście wartości LIKE jest podobny do IS NULL ma wartość nie określoną Cztery ostatnie operatory mogą być zaprzeczone operatorem NOT. Spójniki logiczne: AND, OR i NOT Copyright © 2014-2015, E. Busłowska. 10 Operator IN Klauzula WHERE SELECT ename, job FROM EMP WHERE sal=2400 AND job=‘CLERK’; • SELECT ename, sal FROM EMP WHERE job IN (‘SALESMAN’, ‘CLERK’,’ ANALYST’); SELECT ename, job FROM EMP WHERE sal Between 1500 And 2500; Copyright © 2014-2015, E. Busłowska. 8 11 Copyright © 2014-2015, E. Busłowska. 12 2 Operacje na ciągach znaków Operator IS NULL • Najczęściej używanymi operacjami na ciągach znaków jest porównywanie ciągu do wzorca. Służy do tego operator Like. Wzorce definiuje się używając dwóch znaków specjalnych: • % - zastępuje dowolny ciąg znaków. • _ - zastępuje jeden dowolny znak. • Wzorce uwzględniają duże i małe litery. • Pozwala wyznaczyć wszystkie rekordy, w których wartość pewnego pola nie jest określona. SELECT empno FROM EMP SELECT empno, ename FROM EMP WHERE mgr Is Null; WHERE ename LIKE '%E%'; • Copyright © 2014-2015, E. Busłowska. 13 SELECT empno FROM EMP WHERE ename LIKE ‘BL__E‘; Wyszukiwanie ciągów znaków nie pasujących do danego wzorca operator NOT LIKE. Copyright © 2014-2015, E. Busłowska. 14 Klauzula FROM • Klauzula FROM definiuje produkt kartezjański relacji, który zostanie użyty w zapytaniu. • SELECT loc, deptno FROM DEPT; • SELECT ename, loc, DEPT.deptno FROM EMP, DEPT WHERE DEPT.deptno=EMP.deptno; Copyright © 2014-2015, E. Busłowska. 15 3