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