Język SQL. Rozdział 2. Proste zapytania

Podobne dokumenty
Wprowadzenie do języka SQL

Przestrzenne bazy danych Podstawy języka SQL

Podstawowe zapytania SELECT (na jednej tabeli)

Autor: Joanna Karwowska

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

SQL do zaawansowanych analiz danych część 1.

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Autor: Joanna Karwowska

Ćwiczenie 1 podstawy

Systemy GIS Tworzenie zapytań w bazach danych

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Wykład 5. SQL praca z tabelami 2

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Optymalizacja poleceń SQL Metody dostępu do danych

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Klasyczna Analiza Danych

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

P o d s t a w y j ę z y k a S Q L

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

SQL (ang. Structured Query Language)

Relacyjne bazy danych. Podstawy SQL

Laboratorium Bazy danych SQL 3 1

Wprowadzenie do baz danych

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Technologie baz danych

Laboratorium Bazy danych SQL 2

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Język SQL. Rozdział 8. Język manipulowania danymi DML

ACESS- zadania z wykorzystaniem poleceń SQL

Wyższa Szkoła Zarządzania i Marketingu w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS SQL Server

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Język SQL podstawy zapytań

Wykład :45 BD-1 W_3

Kwerendy (zapytania) wybierające

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

SQL - Structured Query Language. strukturalny język zapytań

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Bazy Danych i Usługi Sieciowe

SQL Structured Query Language

Oracle11g: Wprowadzenie do SQL

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Projektowanie systemów baz danych

Język SQL. Rozdział 8. Język manipulowania danymi DML zadania

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Indeksowanie w bazach danych

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

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

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

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

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Bazy danych. Polecenia SQL

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Bazy danych. Dr inż. Paweł Kasprowski

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Zadania z SQLa (MS SQL Server)

SQL praca z tabelami 4. Wykład 7

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

PODZAPYTANIE (SUBSELECT)

Ćwiczenie 3 funkcje agregujące

Wykład 05 Bazy danych

Język SQL. Rozdział 3. Zaawansowana selekcja danych

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

Kursor. Rozdział 10a Kursory. Otwieranie kursora. Deklarowanie kursora

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Paweł Rajba

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Współczesne systemy baz danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Ref. 7 - Język SQL - polecenia DDL i DML

SQL. Æwiczenia praktyczne

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Współczesne systemy baz danych

Procedury i funkcje składowane

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Transkrypt:

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 przetwarzanie zbiorów. Grupy poleceń języka: DML (ang. Data Manipulation Language), DDL (ang. Data Definition Language), DCL (ang. Data Control Language). Polecenie SQL może być zapisane: w jednym bądź wielu wierszach, dużymi lub małymi literami. Polecenie SQL zawsze kończymy średnikiem. SELECT * ; select * from PRACOWNICY; 2

Projekcja Wybór wartości określonych atrybutów relacji. SELECT nazwisko, etat ; SELECT id_prac, nazwisko, placa_pod, zatrudniony, id_szefa ; Wyrażenia arytmetyczne Operatory arytmetyczne: +, -, *, / SELECT nazwisko, placa_pod*12 ; SELECT etat, placa_pod/30, placa_pod*12 ; 3

Polecenie DESCRIBE Wyświetla strukturę relacji, przekazanej jako parametr polecenia. SQL> describe zespoly Nazwa Wartość NULL? Typ ---------------------------- ------------- ------------------- ID_ZESP NOT NULL NUMBER(4) NAZWA VARCHAR2(15) ADRES VARCHAR2(10) Typy atrybutów: NUMBER(precyzja, skala) liczba, VARCHAR2(długość) ciąg znaków DATE data. Uwaga! DESCRIBE jest poleceniem narzędzia SQL*Plus, nie języka SQL! 4

Aliasy nazw atrybutów relacji Alias to alternatywna nazwa atrybutu, z aliasów można korzystać podczas sortowania i prezentacji wyników. SELECT nazwisko, placa_pod AS placa_podstawowa, placa_pod*12 AS "roczna płaca", placa_pod/20 AS dniówka ; Operator konkatenacji - Umożliwia łączenie (sklejanie) wartości wyświetlanych atrybutów tekstowych i literałów. SELECT 'Pracownik ' nazwisko ' zarabia ' placa_pod AS tekst ; 5

Obsługa wartości pustych Wartość pusta wartość niedostępna, nieprzypisana, nieznana lub nieistotna; oznaczana jako NULL. Może negatywnie wpływać na wyniki operacji arytmetycznych. SELECT nazwisko, placa_pod*12 + placa_dod AS zarobki_razem ; Zastępowanie wartości pustych: COALESCE(wyr_1, wyr_2,...) element standardu SQL, SELECT nazwisko, placa_pod*12 + COALESCE(placa_dod, 0) AS zarobki_razem ; NVL(wyr_1, wyr_2) dostępna w SZBD Oracle. SELECT nazwisko, placa_pod*12 + NVL(placa_dod, 0) AS zarobki_razem ; 6

Eliminowanie powtórzeń Realizowane przy użyciu klauzuli DISTINCT lub UNIQUE. Klauzule umieszczane bezpośrednio po klauzuli SELECT. SELECT etat ; SELECT DISTINCT etat ; SELECT UNIQUE etat ; Możliwa jest eliminacja powtórzeń z wielu wyrażeń. SELECT DISTINCT etat, id_zesp ; 7

Porządkowanie wyników zapytania (1) Realizowane przy użyciu klauzuli ORDER BY. ORDER BY występuje najczęściej jako ostatnia klauzula zapytania. Wskazanie kolejności sortowania: ASC rosnąco (domyślnie), DESC malejąco. Porządek sortowania: liczby od mniejszych do większych, daty od wcześniejszych do późniejszych, łańcuchy znaków alfabetycznie. Jeżeli klauzula ORDER BY nie zostanie użyta, wiersze zostaną zwrócone w całkowicie losowej kolejności. Można korzystać z aliasów i numerów kolumn (użycie numerów kolumn jest niezgodne ze standardem SQL3). SELECT nazwisko, etat, placa_pod * 12 AS zarobki ORDER BY nazwisko, zarobki DESC, etat; SELECT nazwisko, etat, placa_pod * 12 AS zarobki ORDER BY 1, 3 DESC, 2; 8

Porządkowanie wyników zapytania (2) Wyrażenie porządkujące nie musi być elementem zbioru wynikowego. SELECT nazwisko ORDER BY placa_pod DESC; Pozycja wartości pustych w zbiorze wyników: różnie w różnych RDBMS, w SZDB Oracle: na końcu dla porządku rosnącego i na początku dla porządku malejącego, jawne wskazanie pozycji dodatkowe klauzule: NULLS FIRST na początku zbioru rekordów (domyślne dla porządku malejącego), NULLS LAST na końcu zbioru rekordów (domyślne dla porządku rosnącego). SELECT nazwisko, placa_dod ORDER BY placa_dod DESC NULLS LAST; 9

Klauzula WHERE Selekcja krotek relacji SELECT atrybut 1, atrybut 2,... FROM relacja WHERE [atrybut wyrażenie] operator [atrybut wyrażenie wartość]; operatory logiczne: Operatory =,!=, <>, >, >=, <, <= SELECT nazwisko, placa_pod, etat WHERE placa_pod > 400; SELECT id_prac, nazwisko, etat WHERE etat!= 'ASYSTENT'; SELECT nazwisko, id_zesp WHERE placa_dod > (placa_pod/10); 10

operatory SQL: Operatory (1) BETWEEN... AND... zawieranie wartości w przedziale, do przedziału wartości zalicza się wartości graniczne, granica dolna musi poprzedzać granicę górną. SELECT nazwisko, placa_pod, etat WHERE placa_pod BETWEEN 208 AND 1070; IN zawieranie wartości w zbiorze, elementy zbioru muszą być tego samego typu. SELECT nazwisko, placa_pod, id_zesp WHERE etat IN ('PROFESOR', 'DYREKTOR'); 11

Operatory (2) LIKE zgodność wartości wyrażenia ze wzorcem, do tworzenia wzorca wykorzystujemy znaki specjalne % (dowolny ciąg znaków, również pusty) i _ (pojedynczy znak). SELECT nazwisko, placa_pod, id_zesp WHERE nazwisko LIKE 'M%'; SELECT nazwisko, zatrudniony WHERE nazwisko LIKE 'KOWALSK_'; IS NULL czy wartość wyrażenia jest pusta. SELECT nazwisko, placa_pod WHERE placa_dod = NULL; SELECT nazwisko, placa_pod WHERE placa_dod IS NULL; 12

Operatory (3) negacje operatorów SQL: NOT BETWEEN... AND... NOT IN NOT LIKE IS NOT NULL SELECT nazwisko, placa_pod, id_zesp WHERE etat NOT IN ('PROFESOR', 'DYREKTOR'); SELECT nazwisko, etat, placa_pod + NVL(placa_dod,0) WHERE nazwisko NOT LIKE '%SKI'; 13

Warunki złożone klauzuli WHERE (1) Operatory logiczne w klauzuli WHERE AND OR Tabele wartości logicznych PRAWDA FAŁSZ NIEOKREŚLONE NOT FAŁSZ PRAWDA NIEOKREŚLONE AND PRAWDA FAŁSZ NIEOKREŚLONE PRAWDA PRAWDA FAŁSZ NIEOKREŚLONE FAŁSZ FAŁSZ FAŁSZ FAŁSZ NIEOKREŚLONE NIEOKREŚLONE FAŁSZ NIEOKREŚLONE OR PRAWDA FAŁSZ NIEOKREŚLONE PRAWDA PRAWDA PRAWDA PRAWDA FAŁSZ PRAWDA FAŁSZ NIEOKREŚLONE NIEOKREŚLONE PRAWDA NIEOKREŚLONE NIEOKREŚLONE 14

Warunki złożone klauzuli WHERE (2) Operatory logiczne mogą być stosowane jednocześnie w tej samej klauzuli WHERE, przy czym AND posiada wyższy priorytet niż OR, zmiana priorytetu jest możliwa za pomocą nawiasów. SELECT nazwisko, etat WHERE placa_pod > 500 AND etat = 'ADIUNKT' OR etat = 'ASYSTENT'; SELECT nazwisko, etat WHERE placa_pod > 500 AND (etat = 'ADIUNKT' OR etat = 'ASYSTENT'); 15

Podsumowanie polecenia SELECT SELECT [DISTINCT] { *, kolumna [AS alias],... } FROM relacja WHERE warunek [ AND OR warunek... ] ORDER BY { kolumna, wyrażenie } [ASC DESC]; SELECT Wybiera listę kolumn alias Można stosować tylko do kolumn i wyrażeń (nie do *) * Oznacza wszystkie kolumny DISTINCT, UNIQUE FROM t WHERE AND/OR Eliminuje duplikaty ze zbioru wynikowego Określa relację, z której odczytujemy dane Określa warunki wyboru wierszy, zawiera wartości kolumn, wyrażenia i literały Łączy warunki w klauzuli WHERE () Pozwala na zmianę priorytetu operatorów ORDER BY ASC DESC Służy do określenia kryterium sortowania Rosnący porządek sortowania Malejący porządek sortowania 16