41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)



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

Bloki anonimowe w PL/SQL

Wykład 5. SQL praca z tabelami 2

Wykład 05 Bazy danych

Wykład 8. SQL praca z tabelami 5

Programowanie obiektów

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

Język SQL, zajęcia nr 1

Bazy danych. dr inż. Arkadiusz Mirakowski

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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

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

SQL (ang. Structured Query Language)

Składowane procedury i funkcje

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Relacyjne bazy danych. Podstawy SQL

Ćwiczenie zapytań języka bazy danych PostgreSQL

Pakiety podprogramów Dynamiczny SQL

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Relacyjne bazy danych. Podstawy SQL

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

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

BAZA DANYCH SIECI HOTELI

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

Wyzwalacze (triggery) Przykład

Widok Connections po utworzeniu połączenia. Obszar roboczy

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

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

Podstawy Programowania Podstawowa składnia języka C++

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

Bazy Danych i Usługi Sieciowe

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

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

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

Bazy danych i usługi sieciowe

W PostgreSQL mamy do dyspozycji nie tylko funkcje wbudowane, ale również możemy tworzyć własne. Są one zapisywane w tabeli systemowej pg_proc.

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

Bazy danych - Materiały do laboratoriów VIII

Przykładowa baza danych BIBLIOTEKA

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Struktura drzewa w MySQL. Michał Tyszczenko

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

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

Kurs. Podstawy MySQL

Oracle PL/SQL. Paweł Rajba.

SQL :: Data Definition Language

Bazy danych SQL Server 2005

Bazy danych 10. SQL Widoki

Obowiązuje od wersji

Microsoft SQL Server Podstawy T-SQL

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

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

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Oracle PL/SQL. Paweł Rajba.

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

Bazy danych. Polecenia SQL

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Hurtownia Świętego Mikołaja projekt bazy danych

Przestrzenne bazy danych Podstawy języka SQL

Wykład 6. SQL praca z tabelami 3

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Administracja i programowanie pod Microsoft SQL Server 2000

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

Programowanie komputerowe. Zajęcia 1

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Struktura bazy danych

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Imię i Nazwisko Data Ocena. Laboratorium 7

Programowanie w Turbo Pascal

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Administracja i programowanie pod Microsoft SQL Server 2000

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

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

Administracja i programowanie pod Microsoft SQL Server 2000

Komunikacja z bazą danych psql

15. Funkcje i procedury składowane PL/SQL

Transkrypt:

Elementy języka T-SQL 40. Polecenie PRINT jest wykorzystywane do przekazania wiadomości tekstowej (maksymalna długość 8000 znaków) Przykład PRINT 'Aktualna data: '+convert(char(8),getdate()) PRINT 'Aktualny czas: '+convert(char(8),getdate(),108) 41. Zmienne lokalne muszą mieć nazwę, którą poprzedza znak @ (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image) DECLARE @nazwa_zmiennej typ Przez instrukcję DECLARE można deklarować kilka zmiennych: DECLARE @zmienna1 typ, @zmienna2 typ, @zmienna3 typ Zmienna lokalna istnieje tylko we wsadzie lub w procedurze. Oprócz zmiennych przechowujących pojedyncze wartości, można również deklarować zmienne lokalne tabelowe DECLARE @nazwa_zmiennej TABLE (definicja_tabeli) gdzie definicja_tabeli oznacza definicję CREATE TABLE. Definicja zmiennej tabelowych nie może zawierać : PRIMARY KEY, UNIQUE KEY, CHECK oraz NULL. Przypisanie wartości zmiennym lokalnym może odbywać się na przez instrukcję SET lub SELECT, a w przypadku zmiennych tabelowych przez INSERT INTO. Przykład A DECLARE @zmienna1 varchar(20) SET @zmienna1='przykladowy tekst nr 1' Przykład B DECLARE @zmienna2 varchar(35) SELECT @zmienna2='przykladowy tekst nr 2' Przykład C DECLARE @zmienna3 varchar(10) SELECT @zmienna3=nazwaolejku FROM Olejki Przykład D DECLARE @zmienna4 TABLE(pole int) INSERT INTO @zmienna4 SELECT * FROM NazwaTabeli lub INSERT INTO @zmienna4 VALUES (20)

Za pomocą instrukcji SET można przypisać wartość tylko jednej zmiennej. Instrukcja SELECT umożliwia przypisanie wartości kilku zmiennym. Przykład E Prz pisanie wartości kilu zmiennym DECLARE @z1 varchar(5), @z2 varchar(5), @z3 varchar(5), @z4 varchar(5) SELECT @z1= Ala, @z2= Ola, @z3= Ela, @z4= Ula Przykład F Przypisanie wartości dwóm zmiennym: DECLARE @zmienna4 varchar(10),@zmienna5 int SELECT @zmienna4=nazwaolejku,@zmienna5=idolejku FROM Olejki Jeśli przypisujemy wartość zmiennej, przy pomocy instrukcji SELECT, a dane pobierane są z tabeli, to przypisana wartość jest ostatnią pozycją w tabeli. Przykład G Chcąc zmiennej @nazwisko przypisać z tabeli OSOBY (której wartości przedstawia rysunek obok) Nazwisko najmłodszego Kowalskiego, należy dane posortować malejąco według wieku TABELA OSOBY DECLARE @nazwisko varchar(20) SELECT @nazwisko = Nazwisko FROM OSOBY ORDER BY wiek DESC PRINT 'Najmłodsza osoba to: '+@nazwisko Ćw. 162. Znajdź najwyższe stężenie olejków, znaleziona wartość przypisz zmiennej i wypisz jej zawartość Ćw. 163. Znajdź wszystkie olejki, których cena jest poniżej średniej (zadanie wykonaj bez podzapytań tzn. najpierw znajdź średnia i przypisz ja pewnej zmiennej) Ćw. 164. Należy obniżyć o 10% ceny olejków, których Ceny są powyżej średniej 42. Nazwa zmiennej globalnej jest poprzedzona dwoma znakami @.Nie można zadeklarować własnej zmiennej globalnej. Deklaracja własnej zmiennej @@ spowoduje że zostanie utworzona zmienna lokalna i traktowana jest jakby jej nazwę poprzedzał tylko jeden znak @. Zmienne globalne określane są również jako funkcje. Zmiennych globalnych jest wiele, mają za zadanie informować o stanie SQL-Servera 43. Instrukcja warunkowa IF ELSE działa analogicznie jak w popularnych językach programowania. IF wyrażenie logiczne ELSE to jedna instrukcja lub kilka, zawartych między poleceniami Przykład A Sprawdź, czy nazwa pierwszego olejku (poukładanych alfabetycznie wg nazwy), zaczyna się od litery B DECLARE @nazwa VARCHAR(50) SELECT @nazwa=min(nazwaolejku) FROM Olejki IF Left(@nazwa,1)='B' PRINT 'Nazwa pierwszego olejku zaczyna się na literę B' PRINT 'Jest to olejek: ' + @nazwa ELSE PRINT 'Nazwa pierwszego olejku nie zaczyna się na literę B' Przykład B Sprawdź, czy istnieje tabela OSOBY, jeśli tak to wypisz odpowiedni komunikat i usuń tabelę, w

przeciwnym przypadku wypisz komunikat, że tabela nie istnieje IF ObjectProperty(Object_id('OSOBY'),'istable')=1 print 'Tabele OSOBY jest! Usuwam ją!' DROP TABLE OSOBY else print 'Tabeli OSOBY nie ma!' Bazy danych zadania lista nr 9 Bardziej złożone sytuacje warunkowe w popularnych językach oprogramowaniach (np. Pascal) rozwiązuje się przez zastosowanie tzw. instrukcji wyboru CASE. W języku T-SQL CASE jest funkcją. Funkcja CASE sprawdza wiele warunków logicznych i zwraca pojedynczy wynik. Funkcje tej można wykorzystywać w dowolnym miejscu zamiast wyrażenia stałego np. w SELECT, albo w klauzuli WHERE, GROUP BY,SET. lub CASE wyrażenie WHEN wartość1 THEN wynik1 WHEN wartość2 THEN wynik2 [ ] [ELSE wynikn] CASE WHEN wyrażenie_logiczne1 THEN wyrażenie1 WHEN wyrażenie_logiczne2 THEN wyrażenie2 WHEN wartość2 THEN wynik2 [ ] [ELSE wyrażenien] Przykład Wypisz dane z tabeli OSOBY, zamiast wieku wypisz jedną z informacje Pełnoletni lub Jeszcze nie pełnoletni SELECT Nazwisko, CASE WHEN wiek<18 THEN 'Jeszcze nie pełnoletni' ELSE 'Pełnoletni' as [Określenie pełnoletności] FROM OSOBY Ćw. 165. Wypisz nazwy olejków i opis wysokości stężenia tzn. jeśli stężenie jest z przedziału (0;50%) to opis powinien brzmieć Niskie, z przedziału <50,80> Średnie, a każde inne jako wysokie. Utwórz tabelę TOWARY, zawierającą rekordy jak na poniższym rysunku.

Niektóre ceny należy zmodyfikować, a mianowicie: Ceny poniżej 100 należy zwiększyć o 20%, a ceny poniżej 100 zł należy obniżyć o 10 %. Wykonanie powyższych zadań w sposób przedstawiony poniżej, przyniesie niepożądane efekty. Otóż np., Cena 90 najpierw zostanie podniesiona o 20 % i jej wartość będzie wynosiła 108, a następnie zostanie potraktowana jako cena powyżej 100 i obniżona o 10%. W efekcie końcowym będzie wynosiła 97,2. Zwiększenie cen poniżej 100,00 o 20% Zmniejszenie cen powyżej 100,00 o 10% Efekt, który powinniśmy uzyskać Problem można rozwiązać korzystając z tymczasowych tabel, lub zdecydowanie szybciej i mniej skomplikowanie korzystając z funkcji CASE. Ćw. 166. Rozwiąż powyższy problem z użyciem tabel tymczasowych (bez użycia funkcji CASE) Funkcja CASE rozwiązuje powyżej opisany problem w sposób następujący: 44. Polecenie WHILE umożliwia wykonywanie w pętli określonego bloku kodu. Instrukcja WHILE może

zawierać polecenie BREAK lub CONTINUE. Pierwsze z nich powoduje natychmiastowe wyjście z pętli, drugie natomiast omija poniższe instrukcje i powoduje sprawdzenia warunku dalszego wykonywania pętli. WHILE wyrażenie_logiczne Przykład W tabeli TOWARY zwiększ ceny tak, by by ich średnia cena była większa od 140, ale wszystkie ceny powinny wzrastać równomiernie np. o 5% jednorazowo. DECLARE @srednia money SELECT @srednia=avg(cena) from Towary WHILE @srednia<140 UPDATE Towary SET Cena=Cena*1.05 SELECT @srednia=avg(cena) FROM Towary Ćw. 167. Powyższe zadanie wykonaj ponownie i wypisz ile takich podwyżek 5% dokonano.