Bazy Danych. Ćwiczenie 11: Wybrane funkcje wbudowane

Podobne dokumenty
Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Laboratorium Bazy danych SQL 2

Bazy Danych. Ćwiczenie 6: Podstawy języka SQL, część 1, polecenie SELECT

Wydział Elektrotechniki, Informatyki i Telekomunikacji

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Bazy Danych. Ćwiczenie 8: Podstawy języka SQL, część 3, złączenia tabel

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Laboratorium Baz Danych. Zapytania SQL (część 3)

Wydział Elektrotechniki, Informatyki I Elektroniki Instytut Informatyki i Elektrotechniki. Język SQL

Język SQL (na przykładzie serwera MySQL)

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Język SQL (na przykładzie serwera MySQL)

Wykład 5. SQL praca z tabelami 2

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

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bazy danych SQL Server 2005

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

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6

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

Wprowadzenie do baz danych

Kurs. Podstawy MySQL

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

Struktura drzewa w MySQL. Michał Tyszczenko

Język SQL, zajęcia nr 1

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

PL/SQL. Funkcje wbudowane

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

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

Bazy danych - wykład wstępny

Zapytania do bazy danych

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Autor: Joanna Karwowska

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

Ćwiczenie zapytań języka bazy danych PostgreSQL

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

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

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

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Wykład 8. SQL praca z tabelami 5

Komunikacja z bazą danych psql

Autor: Joanna Karwowska

Informatyka II. Laboratorium Aplikacja okienkowa

Projektowanie baz danych za pomocą narzędzi CASE

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Bazy danych 7. SQL podstawy

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

3. Budowa prostych raportów opartych o bazę danych

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

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy

Informatyka 3 : Instrukcja 4 / 5

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

SQL (ang. Structured Query Language)

QUERY język zapytań do tworzenia raportów w AS/400

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Kostki OLAP i język MDX

Imię i Nazwisko Data Ocena. Laboratorium 7

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Uruchomienie raportu w środowisku Oracle applications

Symfonia Produkcja. Kreator raportów. Wersja 2013

Wykład 05 Bazy danych

Informatyka 3 : Instrukcja 4

Bazy Danych i Usługi Sieciowe

Wykład 6. SQL praca z tabelami 3

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Bazy danych. Polecenia SQL

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

Aplikacje WWW - laboratorium

1 Obsługiwane funkcje wyzwalaczy

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

Jak wida ć na powyższym przykładzie, grupy warunków umieszcza si ę w nawiasach.

7. Formularze master-detail

Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Bazy danych 12. SQL Wyszukiwanie pełnotekstowe

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

Systemy baz danych 2 laboratorium Projekt zaliczeniowy

W tej części zajmiemy się ćwiczeniami dotyczącymi modyfikacji rekordów.

Bazy danych 5. Samozłaczenie SQL podstawy

Jak działają targi online?

Oracle PL/SQL. Paweł Rajba.

Bazy danych i usługi sieciowe

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

Baza danych sql. 1. Wprowadzenie

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Transkrypt:

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Bazy Danych Ćwiczenie 11: Wybrane funkcje wbudowane opracował: dr inż. Artur Gramacki (a.gramacki@issi.uz.zgora.pl) 1. Poruszane zagadnienia: poznanie wybranych funkcji oraz operatorów dostępnych w serwerze MySQL. Ich znajomość w wielu przypadkach pozwala na większą elastyczność przy tworzeniu zapytań SQL. Omówione zostaną tylko wybrane, najważniejsze według nas, funkcje. W rzeczywistości jest ich dużo więcej. Zachęcamy więc do zapoznania się z nimi odnajdując ich opis w dostępnej literaturze. Niektórych funkcji używałeś już we wcześniejszych ćwiczeniach, być może nieco nieświadomie. 2. Warunkiem uzyskania w ćwiczeniu takich jak poniżej wyników jest praca na demonstracyjnym schemacie relacyjnym, o którym mowa jest w jednym z poprzednich ćwiczeń. Dlatego też należy upewnić się, że odpowiedni skrypt wykonał się bezbłędnie (poprawnie utworzyły się wszystkie tabele oraz załadowały się wszystkie dane). Dla pewności warto przed rozpoczęciem ćwiczenia po prostu utworzyć schemat od nowa, nawet jeżeli wydaje ci się, że ten, który masz aktualnie zainstalowany jest poprawny. 3. Funkcje operujące na łańcuchach Zadanie 1 W trakcie porównywania łańcuchów MySQL nie uwzględnia wielkości liter. Przykładowo poniższe polecenie zwróci jeden rekord, mimo że nazwisko pracownika jest napisane bez dbałości o zachowanie wielkości liter: mysql> SELECT last_name, salary FROM emp WHERE last_name LIKE 'nozaki'; +-----------+---------+ last_name salary +-----------+---------+ Nozaki 1200.00 +-----------+---------+ Należy zmodyfikować powyższe zapytanie SQL tak, aby wielkość liter była honorowana. Ponadto należy odnaleźć w dokumentacji informację jak można zdefiniować kolumnę łańcuchową (CHAR, VARCHAR TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT), aby na trwałe wymusić uwzględnianie wielkości liter. Utworzyć następnie przykładową tabelę oraz sprawdzić nieczułość na wielkość liter. 1

Zadanie 2 Wyświetlić dane o pracowniku. Użyć funkcji CONCAT. Jako wynik powinniśmy otrzymać: +--------------------+ Pracownik Ngao +--------------------+ -->LaDoris-Ngao<-- +--------------------+ Zadanie 3 Wyświetlić dane o pracowniku, których nazwiska zaczynają się na literę D. Zwróć uwagę, że wyświetlany tekst został uzupełniony do 20 znaków (policz to) sekwencją znaków #*. Należy użyć funkcji RPAD. Czym różni się w działaniu funkcja LPAD? Jako wynik powinniśmy otrzymać: +----------------------+ Pracownicy +----------------------+ Dumas#*#*#*#*#*#*#*# Dancs#*#*#*#*#*#*#*# +----------------------+ 2 rows in set (0.01 sec) Zadanie 4 Wyświetlić nazwy regionów (tabela region). W drugiej kolumnie wyświetlono tylko 3 znaki z nazwy poczynając od 2. znaku. Użyć funkcji SUBSTR. Jako wynik powinniśmy otrzymać: +----------------------+-------------------------------+ name Nazwa regionu - 3 znaki od 2. +----------------------+-------------------------------+ Africa / Middle East fri Asia sia Europe uro North America ort South America out +----------------------+-------------------------------+ Zadanie 5 Wyświetlić dane o pracownikach, których nazwiska są dłuższe niż 6 znaków. Wyświetlić długość nazwisk i imion tych pracowników i wynik posortować wg. długości nazwiska w porządku od największej do najmniejszej. Jako wynik powinniśmy otrzymać: +------------+-----------------+--------------+------------------+ first_name Długość imienia last_name Długość nazwiska +------------+-----------------+--------------+------------------+ Mark 4 Quick-To-See 12 Carmen 6 Velasquez 9 Antoinette 10 Catchpole 9 Alexander 9 Markarian 9 Midori 6 Nagayama 8 Audry 5 Ropeburn 8 2

Molly 5 Urguhart 8 Sylvie 6 Schwartz 8 Yasmin 6 Sedeghi 7 +------------+-----------------+--------------+------------------+ 9 rows in set (0.00 sec) Zadanie 6 Wyświetlić nazwy regionów (tabela region). W drugiej kolumnie wszystkie litery a zostały zamienione na X. Użyć funkcji REPLACE. Jako wynik powinniśmy otrzymać: +----------------------+-------------------------+ name name2 +----------------------+-------------------------+ Africa / Middle East AfricX / Middle EXst Asia AsiX Europe Europe North America North AmericX South America South AmericX +----------------------+-------------------------+ 5 rows in set (0.01 sec) Zadanie 7 Wyświetlić nazwy regionów (tabela region). W drugiej kolumnie nazwy pisane są wspak. Użyć funkcji REVERSE. Jako wynik powinniśmy otrzymać: +----------------------+----------------------+ name eman +----------------------+----------------------+ Africa / Middle East tsae elddim / acirfa Asia aisa Europe eporue North America acirema htron South America acirema htuos +----------------------+----------------------+ Zadanie 8 Wyświetlić dane o pracownikach, których nazwiska zaczynają się na literę N. W nazwisku wszystkie litery mają być małe a w identyfikatorze (kolumna userid) duże. Użyć funkcji LOWER oraz UPPER. Jako wynik powinniśmy otrzymać: +------------------+---------------+ last_name USERID +------------------+---------------+ ngao LNGAO nagayama MNAGAYAM nguyen MNGUYEN nozaki ANOZAKI newman CNEWMAN +------------------+---------------+ Zadanie 9 3

Wyświetlić dane o wielkości stanów produktów znajdujących się w hurtowni zlokalizowanej w mieście Hong Kong. Ograniczyć się tylko do tych produktów, których stan (kolumna amount_in_stock) jest mniejszy niż 100. Dane należy pobierać z trzech tabel (warehouse, inventory, product) i odpowiednio wykonać złączenie w klauzuli WHERE. Jako wynik powinniśmy otrzymać tabelkę DOKŁADNIE taką, jak pokazano poniżej. Zwrócić uwagę na wielkości liter, na etykiety, na długości poszczególnych kolumn, sposób wyrównania tekstu (do lewej lub prawej strony) itd. Jako wynik powinniśmy otrzymać: +---------------------------------------------------------------------------------------------+ Stany magazynowe +---------------------------------------------------------------------------------------------+ W hurtowni ---HONG KONG--- produktu o nazwie: BLACK HAWK KNEE PADS jest 88 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: BLACK HAWK ELBOW PADS jest 75 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: GRAND PRIX BICYCLE TIRES jest 85 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: NEW AIR PUMP jest 0 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: ALEXEYER PRO LIFTING BAR jest 47 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: PRO CURLING BAR jest 50 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: PROSTAR 10 POUND WEIGHT jest 80 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: PROSTAR 20 POUND WEIGHT jest 91 sztuk W hurtowni ---HONG KONG--- produktu o nazwie: PROSTAR 100 POUND WEIGHT jest 75 sztuk +---------------------------------------------------------------------------------------------+ 9 rows in set (0.20 sec) Zadanie 10 Wyświetlić nazwy regionów (tabela region). W drugiej kolumnie wypisać, w którym miejscu po raz pierwszy pojawiła się litera a. Użyć funkcji INSTR. Jako wynik powinniśmy otrzymać: +----------------------+---------------------------------+ name Pierwsze wystąpienie litery 'a' +----------------------+---------------------------------+ Africa / Middle East 1 Asia 1 Europe 0 North America 7 South America 7 +----------------------+---------------------------------+ 4. Funkcje operujące na liczbach Zadanie 11 Użyć SQL-a do obliczenia pola i obwodu koła o promieniu 10. Użyć funkcji POW. Jako wynik powinniśmy otrzymać: +------+-------+ Pole Obwód +------+-------+ 314 62.80 +------+-------+ 1 row in set (0.01 sec) Zadanie 12 4

Użyć SQL-a do wygenerowanie liczby losowej. Użyć funkcji RAND. Jak zmusić funkcję RAND, aby za każdym wywołaniem generowała tą samą liczbę losową (przydatne przy testowaniu oprogramowania). Jako wynik powinniśmy otrzymać (u Ciebie liczba może być inna): +------------------+ Liczba losowa +------------------+ 0.21308653076467 +------------------+ Zadanie 13 Zaokrąglić ceny towarów (tabela product) do liczb całkowitych. Użyć funkcji ROUND. Jako wynik powinniśmy otrzymać: +---------+-------------+ Cena Cena zaokr. +---------+-------------+ 150.00 150 200.00 200 410.00 410 16.25 16 21.95 22 40.95 41 11.00 11 28.00 28 123.00 123 9.00 9 8.00 8 1669.00 1669 582.00 582 16.00 16 18.25 18 20.00 20 7.00 7 60.00 60 65.00 65 50.00 50 8.00 8 12.00 12 25.00 25 35.00 35 45.00 45 4.29 4 22.89 23 80.00 80 75.00 75 80.00 80 45.00 45 47.00 47 50.00 50 +---------+-------------+ 33 rows in set (0.00 sec) Zadanie 14 5

Wyświetlić bieżącą datę oraz czas. W pierwszych dwóch kolumnach format wyświetlania jest domyślny, w trzech ostatnich ustalony przez nas. Jako wynik powinniśmy otrzymać: +------------+----------+-------------------------+--------------------+----------------+ A B C D E +------------+----------+-------------------------+--------------------+----------------+ 2006-02-01 14:34:36 Wednesday-February-2006 February, 1st 2006 14::34::36-PM +------------+----------+-------------------------+--------------------+----------------+ Zadanie 15 Wyświetl ile dni minęło od dnia Twoich urodzin. Użyć funkcji DATEDIFF. Pamiętaj, że domyślnym formatem dla daty jest YYYY-MM-DD HH:MM:SS. Jako wynik powinniśmy otrzymać: +----------------+--------------------+ current_date() Zyję już tyle dni! +----------------+--------------------+ 2006-02-01 14251 +----------------+--------------------+ Zadanie 16 Do bieżącej daty i godziny dodać 2 dni, 5 godziny oraz 8 minut. Użyć funkcji DATE_ADD. Jako wynik powinniśmy otrzymać: +---------------------+---------------------+ CURRENT_TIMESTAMP() Po dadaniu +---------------------+---------------------+ 2006-02-01 14:54:27 2006-02-03 20:02:27 +---------------------+---------------------+ Zadanie 17 Wyliczyć, używając odpowiednich funkcji MySQL, parametry bieżącego dnia. Jako wynik powinniśmy otrzymać: +--------------+------------------------------------------------------------------ 2006-02-01 Dziś mamy 32 dzień roku, 5 tydzień roku oraz 4 dzień tygodnia. +--------------+------------------------------------------------------------------ 6