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



Podobne dokumenty
Przydatne sztuczki - sql. Na przykładzie postgres a.

PODZAPYTANIE (SUBSELECT)

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

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

Wprowadzenie do języka SQL

Wprowadzenie do baz danych

Systemy GIS Tworzenie zapytań w bazach danych

Autor: Joanna Karwowska

Podstawowe zapytania SELECT (na jednej tabeli)

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Bloki anonimowe w PL/SQL

Autor: Joanna Karwowska

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

Język SQL. Rozdział 2. Proste zapytania

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

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

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

Kiedy i czy konieczne?

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

Relacyjne bazy danych. Podstawy SQL

Wykład 5. SQL praca z tabelami 2

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

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

3. Podzapytania, łączenie tabel i zapytań

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Relacyjne bazy danych. Podstawy SQL

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

Technologie baz danych

Oracle11g: Wprowadzenie do SQL

Zaawansowany SQL. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy danych 6. Klucze obce. P. F. Góra

PODSTAWY BAZ DANYCH 13. PL/SQL

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

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

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

Zajęcia 2 podstawy języka SQL

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Indeksowanie w bazach danych

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

SQL (ang. Structured Query Language)

Wykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

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

Język SQL : przyjazny podręcznik / Larry Rockoff. Wyd. 2. Gliwice, cop Spis treści

LibreOffice Calc VBA

Widok Connections po utworzeniu połączenia. Obszar roboczy

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

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

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

Model relacyjny. Wykład II

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

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

Struktura drzewa w MySQL. Michał Tyszczenko

RBD Relacyjne Bazy Danych

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

Przestrzenne bazy danych Podstawy języka SQL

Język SQL podstawy zapytań

Paweł Rajba

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Administracja i programowanie pod Microsoft SQL Server 2000

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Podstawy języka SQL cz. 2

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

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

Język SQL. Rozdział 3. Funkcje wierszowe

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Funkcje standardowe. Filtrowanie

SQL do zaawansowanych analiz danych część 1.

Bazy danych. Polecenia SQL

Kwerendy (zapytania) wybierające

SQL Structured Query Language

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych 12. SQL Wyszukiwanie pełnotekstowe

Microsoft SQL Server Podstawy T-SQL

SIECI KOMPUTEROWE I BAZY DANYCH

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Plan wykładu BAZY DANYCH II WYKŁAD 4. Co to jest kursor? Rodzaje kursorów

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Klasyczna Analiza Danych

XQuery. sobota, 17 grudnia 11

Comarch ERP XL Business Intelligence Start. Migracja do wersji 2018

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Autor: Joanna Karwowska

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga

ACESS- zadania z wykorzystaniem poleceń SQL

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Grupowanie i funkcje agregujące

Konspekt zajęć dotyczących kwerend

Operacja PIVOT w języku SQL w środowisku Oracle

Transkrypt:

SQL, LIKE, IN, CASE, EXISTS Marcin Orchel

Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1

Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia <predykat l i k e > ::= <pasująca wartość> [NOT] LIKE <wzorzec> [ESCAPE <znak escape >] <pasująca wartość> ::= <wyrażenie w a r t o ś c i znakowej> <wzorzec> ::= <wyrażenie w a r t o ś c i znakowej> <znak escape> ::= <wyrażenie w a r t o ś c i znakowej> W łańcuchu <wzorzec> dopuszczalne są dwa znaki wieloznaczne: % i _. Pierwszy z nich reprezentuje dowolny podłańcuch, również o zerowej długości. Drugi z nich reprezentuje dowolny pojedynczy znak. Przykład, wyszukanie imion zaczynających się od b SELECT FROM p e t WHERE name LIKE b% Wyszukanie imion kończących się na fy SELECT FROM p e t WHERE name LIKE %f y Znalezienie imon zwierających literkę w SELECT FROM p e t WHERE name LIKE %w% Znalezienie imon zawierających dokładnie 5 liter SELECT FROM pet WHERE name LIKE Dwa poniższe zapytania różnią się: SELECT FROM osoby WHERE nazwisko LIKE SELECT FROM osoby WHERE nazwisko LIKE John_% John% Pierwsze zapytanie nie zaakceptuje nazwiska John. _% określają wzorzec jeden lub więcej znaków. Można również stosować operator konkatenacji do napisów: SELECT FROM osoby WHERE nazwisko LIKE % imię % 2

Tutaj są rozróżniane małe i duże litery, aby nie były modyfikujemy zapytanie SELECT FROM osoby WHERE UPPER( nazwisko ) LIKE % UPPER( imię ) % W Mysql konkatenacja jest zapisywana jako funkcji CONCAT(). Z reguły testowanie za pomocą _ jest szybsze niż z %. Dlatego wyszukiwanie maksymalnie siedmioliterowego nazwiska zaczynającego się od Mar może wyglądać następująco SELECT FROM osoby WHERE nazwisko LIKE Mac OR nazwisko LIKE Mac_ OR nazwisko LIKE Mac OR nazwisko LIKE Mac OR nazwisko LIKE Mac Jest możliwość w SQL definiowania bardziej rozbudowanych wzorców za pomocą SIMI- LAR TO. W mysql jest alternatywa RLIKE. 3

Rozdział 2 BETWEEN <wyrażenie wartości > [NOT] BETWEEN <wyrażenie w a r t o ś c i dolnej > AND <wyrażenie w a r t o ś c i górnej > Przykłady: x BETWEEN 12 AND 15 zależy od wartości x, x BETWEEN 15 AND 12 zawsze false, x BETWEEN NULL AND 15 zawsze UNKNOWN, NULL BETWEEN 12 AND 15 zawsze UNKNOWN, x BETWEEN 12 AND NULL zawsze UNKNOWN, x BETWEEN x AND x zawsze TRUE. 4

Rozdział 3 IN Pobiera wartość i sprawdza czy wartość ta jest na liście porównywalnych wartości. Składnia <predykat in> ::= <konstruktor w a r t o ś c i wiersza > [NOT] IN <wartość predykatu in> <wartość predykatu in> ::= <podzapytanie tabelaryczne > (< l i s t a w a r t o ś c i predykatu in >) < l i s t a w a r t o ś c i predukatu in> ::= <wyrażenie w a r t o ś c i wiersza > {<przecinek > <wyrażenie w a r t o ś c i wiersza > }... Wyrażenie <konstruktor wartości wiersza> IN <wartość predykatu in> daje taki sam rezultat jak <konstruktor wartości wiersza> = ANY <wartość predykatu in>. Można zastąpić operatory OR przedykatem IN(), przykład SELECT FROM RaportKontroliJakosci WHERE test_1= z a l i c z o n y OR test_2 = z a l i c z o n y OR test_3 = z a l i c z o n y OR test_4 = z a l i c z o n y SELECT FROM RaportKontroliJakosci WHERE z a l i c z o n y IN ( test_1, test_2, test_3, test_4 ) 5

Rozdział 4 EXISTS Jest to test dla zbioru niepustego. Składnia <predykat e x i s t s > ::= EXISTS <podzapytanie tabelaryczne > Przykład SELECT P1. nazw_prac, u r o d z i ł s i ę tego samego dnia co znana osoba! FROM Personel AS P1 WHERE EXISTS (SELECT FROM O s o b i s t o ś c i AS C1 WHERE P1. urodziny = C1. urodziny ) 6

Rozdział 5 WYRAŻENIA CASE Wyrażenie CASE pozwala programiście wybrać wartość na podstawie wyrażenia logicznego. Składnia <s p e c y f i k a c j a case> ::= <warunek prosty> <warunek szukany> <warunek prosty> ::= CASE <argument case> <prosta k l a u z u l a when >... [< k l a u z u l a else >] END <warunek szukany> :: = CASE <przeszukiwana k l a u z u l a when >... [< k l a u z u l a else >] END <prosta k l a u z u l a when> ::= WHEN <argument when> THEN <wynik> <przeszukiwana k l a u z u l a when> ::= WHEN <warunek wyszukiwania> THEN <wynik> <k l a u z u l a else> ::= ELSE <wynik> <argument case> ::= <wyrażenie wartości > <argument when> ::= <wyrażenie wartości > <wynik> ::= <wyrażenie wynikowe> NULL <wyrażenie wynikowe> ::= <wyrażenie wartości > <Proste wyrażenie CASE> jest zdefiniowane jako przeszukiwane wyrażenie CASE, w którym wszystkie klauzule WHEN sprawdzają równość z <argument CASE>. Przykład CASE kod_płci_iso WHEN 0 THEN Nieznana WHEN 1 THEN Mężczyzna WHEN 2 THEN Kobieta WHEN 9 THEN N/D ELSE NULL 7

END lub CASE WHEN kod_płci_iso = 0 THEN Nieznana WHEN kod_płci_iso = 1 THEN Mężczyzna WHEN kod_płci_iso = 2 THEN Kobieta WHEN kod_płci_iso = 9 THEN N/D ELSE NULL END Przykład ile pracowników każdej płci w podziale na wydziały mamy w tabeli Personel SELECT nr_wydziału, SUM(CASE WHEN p ł e ć= M THEN 1 ELSE 0) AS mężczyźni, SUM(CASE WHEN płeć = F THEN 1 ELSE 0) AS kobiety FROM Personel GROUP BY nr_wydziału Przykład SELECT store_name, CASE store_name WHEN Los Angeles THEN S a l e s 2 WHEN San Diego THEN S a l e s 1.5 ELSE S a l e s END "New S a l e s ", Date FROM store_information 8

Rozdział 6 Zadania Zadanie obowiązkowe: Do własnych modeli baz danych zaprojektować 3 różne zapytania z LIKE, CASE które będą wykorzystywane w systemie. 9