SQL(Structured Query Language)

+3

No comments posted yet

Comments

Slide 1

SQL(Structured Query Language) Wprowadzenie SQL( Structured Query Language ) – Strukturalny język zapytań. Został stworzony by można było nim zarządzać, definiować i przetwarzać bazę danych. Jest w nim również opcja umieszczania i pobierania baz danych. Rafał Świtała kl I TI

Slide 2

Podstawowe Zasady Języka SQL Podstawowymi zasadami języka SQL sa : Nierozróżnianie wielkich i małych liter, Pomijanie tzw. „białych” znaków, Możliwość zagnieżdżania instrukcji Nieznaczność graficznego rozkładu jeśli są odstępy

Slide 3

„Białe” Znaki: „Białe” znaki to spacje pomiędzy wyrazami np.: SELECT * FROM Table lub SELECT * FROM Table Lub SELECT * FROM Table

Slide 4

Nawiasy i ich znaczenie w języku SQL: Nawiasy są stałym operatorem grupowania w SQL, w celu określenia kolejności wykonywania działań. W wyrażeniach matematycznych, w złożonych porównaniach oraz do wyróżniania zapytań zagnieżdżonych. Nawiasy są używane w celu oddzielenia zapytań zagnieżdżonych od reszty wyrażen.

Slide 5

Operacje Relacyjne: W następnym slajdzie opiszę działanie wymienionych poniżej operacji relacyjnych: Selekcja, Projekcja Złączenia

Slide 6

Selekcja: Operacja selekcji zwraca wynik w postaci grupy rekordów z tablicy. Operacja ta polega na wyborze w oparciu o pewne kryteria grupy rekordów z tablicy. Nie jest konieczne określanie kryteriów wyboru – operacja selekcji może zwrócić wszystkie wiersze z tablicy. Kryteria wyboru decydują, które rekordy tabeli zostaną zwrócone jako wynik. Wynik zawsze zawiera wszystkie kolumny tabeli. Np.: SELECT * FROM Studios WHERE Studio_state = ” TX” STUDIO_ID STUDIO_NAME STUDIO_CITY ST --------------- -------------------- ------------------ --- 3 Delighted Artist Austin TX

Slide 7

Projekcja: Projekcja pozwala określić kolumny, które będą zwracane przez zapytanie. Jest to bardzo przydatne szczególnie w przypadku tabel z wieloma kolumnami, gdyż często interesują nas wartości tylko z kilku kolumn. Ograniczenie listy kolumn zwracanych przez zapytanie realizujemy poprzez wpisanie w wyrażenie SELECT nazw kolumn oddzielanych przecinkiem, tj. poniżej: SELECT studio_name, studio_state FROM Studios STUDIO_NAME ST --------------------- --- Giant CA MPM CA FKG NC Delighted Artist TX Metaversal Studios CA

Slide 8

Pojekcja – ciąg dalszy: W praktyce często wykorzustuje się w jednym zapytaniu Selekcję oraz projekcję. Tj. poniżej. SELECT studio_name, studio_state FROM Studios WHERE Studio_state = ”TX ” STUDIO_NAME ST ---------------------------------------------------------------- Delighted Artist TX

Slide 9

Złączenia: Operacja złączenia(ang. Join) umożliwia wykorzystanie wielu tabel jako źródła danych dla zapytania. Wybieranie wielu tabel realizowane jest poprzez wpisanie nazw tabel w części FROM wyrażenia SQL. W praktyce operację złączenia stosuje się równocześnie z operacjami wyboru i projekcji – dzięki temu wynik zwracany przez zapytanie jest bardziej zrozumiały i przydatny. Operację złączenia przedstawiam w następnym slajdzie.

Slide 10

Operacja złączenia przykład: SELECT movie_title, studio_name FROM Movies, Studios WHERE Movies.Studio_id=Studios.studio_id MOVIE_TITLE STUDIO_NAME -------------------------------------------------------------------------------------------- Mineral House Giant Codependance Day Giant The Rear Windows Giant Prince Kong MPM The Linux Files MPM The Code Warrior MPM Bill Durham Delighted Artists SQL Strikes Back Delighted Artists The Programmer Delighted Artists Hard Core FKG 10 rows selected. _______________________________________________________________

Slide 11

Historia SQL SQL został opracowany w latach 70. W firmie IBM stał się standardem w komunikacji z serwerami relacyjnych baz danych. Dzisiaj potocznie mówi się, że korzystanie z relacyjnych baz danych to korzystanie z SQL’a. Pierwszy SQL to SQL86 i SQL89. W późniejszych czasach systemy komputerowe uległy integracji i rynek zaczął domagać się aplikacji oraz innych funkcji faktycznie współpracujących z wieloma bazami danych. W roku 1986 SQL stał się standardem wspieranym przez Międzynarodową Organizację Normalizacyjną (ISO) W 2003r. Przedstawiono SQL:2003 – nowy standard języka SQL, opublikowany w Sigmon Record Vol. 33 No. 1 w Marcu 2004r. Jego zmiany to : 1. Dodano nowe typy danych (BIGINT, MULTISET, XML) 2. Usunięto typy BIT oraz BIT VARYING 3. Wprowadzono rozszerzenia w sposobie wywoływania procedur 4. Poszerzono instrukcję CREATE TABLE (CREATE TABLE { LIKE | AS } ) 5. Wprowadzono instrukcję MERGE 6. Wprowadzono nowy obiekt schematu – generator sekwencji 7. Wprowadzono dwa nowe typy kolumn – identyfikatory oraz generowane 8. Wprowadzono retrospektywne sprawdzanie więzów integralności 9. Wprowadzono rozszerzenia dla OLAP w formie wbudowanych funkcji (skalarnych i agregujących) 10. Wprowadzono klauzula WINDOW

Slide 12

Bazy Danych na stronach WWW: Obecnie dominującym modelem systemów baz danych jest architektura klient-serwer działająca w oparciu o systemy operacyjne Windows NT oraz komercyjne wersje UNIX-a. W 1993r. Tim Berners Lee wprowadził World Wide Web (WWW). Stworzył on przeglądarkę Web oraz własny serwer. Strony Web były początkowo wykorzystywane do przekazywania tekstu i obrazów. W zastosowaniach biznesowych stały się nową platformą dla relacyjnych baz danych. Głównym problemem architektury klient-serwer jest konieczność wprowadzania zmian do oprogramowania klienta przy każdej zmianie programu, z kolei systemy scentralizowane, pozbawione tej wady, oferowały prymitywny interfejs użytkowania.

Slide 13

Funkcje Silnika i middleware SQL nie posiada cech pozwalających na tworzenie kompletnych programów, dlatego też jego wykorzystanie może być trojakie i z tego względu wyróżnia się 3 formy sql’a : SQL Interaktywny (autonomiczny) wykorzystywany jest przez użytkowników w celu bezpośredniego pobierania lub wprowadzania informacji do bazy, np. zestawienie aktywności kont w miesiącu. Wynik jest przekazywany na ekran z ewentualną opcją przekierowania go do pliku lub drukarki. Statyczny kod SQL (Static SQL) nie ulega zmianom i pisany jest wraz z całą aplikacją, podczas której pracy jest wykorzystywany. Nie ulega zmianom w sensie zachowania niezmiennej treści instrukcji, które jednak zawierać mogą odwołania do zmiennych lub parametrów przekazujących wartości z lub do aplikacji. Statyczny SQL występuje w dwóch odmianach. Embedded SQL (Osadzony SQL) oznacza włączenie kodu SQL do kodu źródłowego innego języka. Większość aplikacji pisana jest w takich językach jak C++ czy Java, jedynie odwołania do bazy danych realizowane są w SQL. W tej odmianie statycznego SQL-a do przenoszenia wartości wykorzystywane są zmienne. Język modułów. W tym podejściu moduły SQL łączone są z modułami kodu w innym języku. Moduły kodu SQL przenoszą wartości do i z parametrów, podobnie jak to się dzieje przy wywoływaniu podprogramów w większości języków proceduralnych. Jest to pierwotne podejście, zaproponowane w standardzie SQL. Embedded SQL został do oficjalnej specyfikacji włączony nieco później. Dynamiczny kod SQL (Dynamic SQL) generowany jest w trakcie pracy aplikacji. Wykorzystuje się go w miejsce podejścia statycznego, jeżeli w chwili pisania aplikacji nie jest możliwe określenie treści potrzebnych zapytań – powstaje ona w oparciu o decyzje użytkownika. Tę formę SQL generują przede wszystkim takie narzędzia jak graficzne języki zapytań. Utworzenie odpowiedniego zapytania jest tu odpowiedzią na działania użytkownika.

Slide 14

Składnia SQL Przykłady składni SQL: SELECT - Zwraca tabelę (listę) utworzoną ze wszystkich kolumn (*) tabeli „pracownicy” (FROM pracownicy) zawierającą pracowników, których pensja jest większa niż 2000 (WHERE pensja > 2000) i sortuje wynik malejąco według stażu pracy (ORDER BY staz DESC). INSERT INTO - Dodaje do tabeli „pracownicy” (INTO pracownicy) wiersz (rekord) zawierający dane pojedynczego pracownika. UPDATE - Podwyższa o 10% pensję (SET pensja = pensja * 1.1) pracownikom, których staż jest większy niż 2 (np. lata). DELETE FROM - Usuwa z tabeli „pracownicy” wiersz (rekord) dotyczący pracownika o imieniu „Jan” i nazwisku „Kowalski”. CREATE TABLE - Tworzy tabelę „pracownicy” zawierającą pola tekstowe zmiennej długości (varchar) o nazwach „imie” (imię) i „nazwisko”, o maksymalnej długości 255 znaków, zapisaną za pomocą liczby rzeczywistej (float od ang. floating point) pensję oraz zapisany za pomocą liczby całkowitej (int od ang. integer) staż. DROP TABLE - Usuwa z bazy całkowicie tabelę „pracownicy”. ALERT TABLE - Dodaje do struktury tabeli „pracownicy” kolumnę „dzial” (dział), jako pole tekstowe o długości max. 255 znaków.

Slide 15

Składnia SQL – Ciąg Dalszy Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych. Zapytania można zaliczyć do jednego z trzech głównych podzbiorów: SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”), SQL DDL (ang. Data Definition Language – „język definicji danych”). SQL DCL (ang. Data Control Language – „język kontroli nad danymi”). Instrukcje SQL w obrębie zapytań tradycyjnie zapisywane są wielkimi literami, jednak nie jest to wymóg. Każde zapytanie w SQL-u musi kończyć się znakiem średnika (;). Dodatkowo, niektóre programy do łączenia się z silnikiem bazy danych (np. psql w przypadku PostgreSQL), używają swoich własnych instrukcji, spoza standardu SQL, które służą np. do połączenia się z bazą, wyświetlenia dokumentacji itp. DML DML (Data Manipulation Language) służy do wykonywania operacji na danych – do ich umieszczania w bazie, kasowania, przeglądania, zmiany. Najważniejsze polecenia z tego zbioru to: SELECT – pobranie danych z bazy, INSERT – umieszczenie danych w bazie, UPDATE – zmiana danych, DELETE – usunięcie danych z bazy. Dane tekstowe muszą być zawsze ujęte w znaki pojedynczego cudzysłowu (').

Slide 16

Składnia SQL – Ciąg Dlaszy DDL 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 to: CREATE (np. CREATE TABLE, CREATE DATABASE, ...) – utworzenie struktury (bazy, tabeli, indeksu, itp.), DROP (np. DROP TABLE, DROP DATABASE, ...) – całkowite usunięcie struktury, ALTER (np. ALTER TABLE ADD COLUMN ...) – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli). DCL DCL (Data Control Language) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych. Najważniejsze polecenia w tej grupie to: GRANT (np. GRANT ALL PRIVILEGES ON EMPLOYEE TO PIOTR WITH GRANT OPTION) – przyznanie wszystkich praw do tabeli EMPLOYEE użytkownikowi PIOTR z opcją pozwalającą PIOTR'owi nadawać prawa do tej tabeli. REVOKE - odebranie użytkownikowi wszystkich praw do tabeli, które zostały przyznane poleceniem GRANT. DENY.

Slide 17

Bezpieczeństwo SQL Jako, że SQL jest językiem interpretowanym, istnieje możliwość nadużyć w przypadku konstruowania zapytań z wykorzystaniem parametrów pochodzących z zewnątrz aplikacji. Szczególnie podatne na ten typ ataku są tworzone dynamicznie w oparciu o SQL-ową bazę danych serwisy internetowe. Jeśli twórca aplikacji nie zadba o sprawdzenie poprawności (tzw. walidację) danych wejściowych stanowiących część zapytania, atakujący może być w stanie dopisać do zapytania („wstrzyknąć”) dodatkowe komendy lub zmienić ich sposób działania. Atak taki nosi nazwę SQL injection (wstrzyknięcie kodu za pomocą SQL).

Slide 18

Systemu bazodanowe używające SQL Apache Derby Caché DATAllegro DB2 Firebird First SQL Greenplum HSQL Ingrees Informix InterBase SQL MaxDB ( Dawniej SAP DB ) Microsoft Access Microsoft Jet

Slide 19

Systemu bazodanowe używające SQL - Ciąg dalszy Microsoft SQL Server Mimer SQL MySQL mSQL Neteeza Openlink Virtuoso Oracle Oracle Rdb PostGreSQL Pervasive SQL/DS. SQLite Sybase (Sybase Adaptive Server Enterprise, Sybase SQL Anywhere, Sybase IQ) TeraData

Slide 20

Standardy SQL : Standardy są ustalane przez International Standard Organization (ISO), w USA : National Institute of Standarts and Testing (NIST) Poprzednie Standardy w SQL to SQL-89 Obecny Standard to SQL-92 zatwierdzony w 1992r. Przez (ISO).

Slide 21

Źródło temtatu SQL Dla Każdego wydawnictwo Helion, Wikipedia.org Pracę Wykonał: Rafał Świtała

Summary: SQL Lang For Newbies.

Tags: sql start

URL:
More by this User
Most Viewed