Administracja i programowanie pod Microsoft SQL Server 2000



Podobne dokumenty
Paweł Rajba

Oracle PL/SQL. Paweł Rajba.

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

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

Bazy danych SQL Server 2005

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ść> ];

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

Język SQL. Rozdział 3. Funkcje wierszowe

Administracja i programowanie pod Microsoft SQL Server 2000

System operacyjny Linux

Bloki anonimowe w PL/SQL

Współczesne systemy baz danych

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Współczesne systemy baz danych

Oracle PL/SQL. Paweł Rajba.

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

Wykład 5. SQL praca z tabelami 2

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

Oracle PL/SQL. Paweł Rajba.

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

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

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

Microsoft SQL Server Podstawy T-SQL

Oracle PL/SQL. Paweł Rajba.

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

Pakiety podprogramów Dynamiczny SQL

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

Oracle PL/SQL. Paweł Rajba.

Administracja i programowanie pod Microsoft SQL Server 2000

Tworzenie zapytań do Microsoft SQL Server

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

Administracja i programowanie pod Microsoft SQL Server 2000

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

Wprowadzenie do języka SQL

PL/SQL. Funkcje wbudowane

Język PL/SQL Procedury i funkcje składowane

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

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

Systemy GIS Tworzenie zapytań w bazach danych

Administracja i programowanie pod Microsoft SQL Server 2000

SQL 4 Structured Query Lenguage

Oracle11g: Wprowadzenie do SQL

Język PL/SQL. Rozdział 2. Kursory

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Obowiązuje od wersji

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

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

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

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

Cele. Definiowanie wyzwalaczy

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

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

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

Wykład 8. SQL praca z tabelami 5

Programowanie obiektów

Relacyjne bazy danych. Podstawy SQL

OBLICZENIA NA DANYCH

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

E.14 Bazy Danych cz. 12 SQL Wybrane funkcje serwera MySQL

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

System operacyjny Linux

Comarch ERP XL Business Intelligence Start. Migracja do wersji 2018

Zaawansowane bazy danych i hurtownie danych semestr I

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

Zarzadzanie transakcjami. Transakcje

Struktura bazy danych

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

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

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

PODSTAWY BAZ DANYCH 13. PL/SQL

Oracle PL/SQL. Paweł Rajba.

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Bazy Danych i Usługi Sieciowe

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

Oracle PL/SQL. Paweł Rajba.

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Deklarowanie kursora

Relacyjne bazy danych. Podstawy SQL

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

LAB 3 (część 1 Projektu)

Bloki anonimowe w PL/SQL

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

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

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

Bazy danych i usługi sieciowe

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

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

Październik Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Podstawy programowania C. dr. Krystyna Łapin

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

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

Transkrypt:

Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Zawartość modułu 3 Podstawy programowania w T-SQL Zmienne i operatory Instrukcje sterujące Komunikaty Format daty Funkcje Daty i czasu, matematyczne, napisowe Systemowe, bezparametrowe, globalne - 1 -

Zmienne i operatory Zmienne lokalne deklaracja: declare @nazwa typ [, @nazwa typ]... ustawienie: set @zmienna=wartosc wypisanie: print @zmienna Operatory Arytmetyczne: *, /, %, +, - Łączenie napisów: + Logiczne: not, and, or Przykład sqlserver-p03-01.sql - 2 -

Instrukcje sterujące BEGIN..END IF..ELSE RETURN [n] WAITFOR { DELAY 'time' TIME 'time' } WHILE..BREAK..CONTINUE - 3 -

Instrukcje sterujące CASE jest skrótem na if..else if..else... jest także wyrażeniem, stąd możemy użyć np. w instrukcji SELECT na liście wybierającej w klauzulach: WHERE, GROUP BY, ORDER BY instrukcji INSERT na liście wartości INSERT instrukcji UPDATE w klauzulach: SET i WHERE instrukcji DELETE w klauzuli WHERE - 4 -

Wyrażenia bazujące na CASE COALESCE(w1, w2, w3,..., wn) zwraca pierwsze różne od NULL wyrażenie jeśli wszystkie są NULL, zwraca NULL równoważne CASE WHEN w1 IS NOT NULL THEN w1... WHEN wn IS NOT NULL THEN wn ELSE wn END - 5 -

Wyrażenia bazujące na CASE NULLIF(w1, w2) równoważne CASE WHEN w1=w2 THEN NULL ELSE w1 END ISNULL(w1, w2) równoważne CASE WHEN w1 IS NULL THEN w2 ELSE w1 END - 6 -

Instrukcje sterujące Przykład sqlserver-p03-02.sql - 7 -

Komunikaty Do tworzenia komunikatów mamy dwie funkcje: PRINT i RAISERROR PRINT służy do prostych komunikatów Powinno się raczej używać RAISERROR Składnia RAISERROR ( { msg_id msg_str } {, waga, stan } [, argument [,...n ] ] ) WITH LOG, NOWAIT, SETERROR - 8 -

Komunikaty RAISERROR Znaczenie parametrów msgid, msgstr podajemy id komunikatu z tabeli master..sysmessages lub tekst komunikatu tekst można formatować podobnie jak w funkcji printf waga komunikatu 0 lub 10 informacyjny 11-16 błędy, które może naprawić użytkownik 17-18 poważniejsze błędy 19 wewnętrzny błąd związany z zasobami może go wygenerować tylko administrator (rola sysadmin) musi być używane z opcją WITH LOG - 9 -

Komunikaty RAISERROR Znaczenie parametrów waga komunikatu c.d. 20-25 błędy krytyczne może je wygenerować tylko administrator (rola sysadmin) najczęściej przerywane są wsady, zrywane są połączenia muszą być używane z opcją WITH LOG stan komunikatu dodatkowa informacja o komunikacie, np. nr wiersza, w którym pojawił się błąd - 10 -

Komunikaty RAISERROR Znaczenie parametrów LOG komunikat zostanie zapisane w dzienniku zdarzeń systemu Windows komunikaty o wadze <=14 jako informacyjne komunikaty o wadze =15 jako ostrzeżenia komunikaty o wadze =>16 jako błędy NOWAIT sprawia, że wiadomość zostanie przesłana od razu do klienta (istotne w przypadku użycia funkcji WAITFOR) SETERROR sprawia, że nawet dla komunikatów informacyjnych funkcja @@ERROR będzie zwracała numer komunikatu (lub 50000 w przypadku podania tekstu) - 11 -

Komunikaty RAISERROR Wersje językowe Każdy komunikat w kolumnie msglangid ma zdefiniowany język Można zatem dodać kilka wersji językowych tego samego komunikatu Komunikaty użytkownika mają numery od 50000 do obsługi mamy funkcje sp_addmessage sp_altermessage sp_dropmessage - 12 -

Komunikaty Przykład sqlserver-p03-03.sql - 13 -

Fomat daty Format daty SET DATEFORMAT { mdy dmy ymd ydm dym myd } określa sposób traktowania napisów np. '7/4/2005' Format ISO jest traktowane jednoznacznie niezależnie od ustawienia dateformat Przykład sqlserver-p03-04.sql - 14 -

Funkcje Konwersja typów CAST(wyrazenie AS typ_danych) CONVERT(typ_danych[ (len) ], wyrazenie [, styl] ) styl można określić dla dat i liczb Do konwersji z typów zmiennoprzecinkowych STR(wyrazenie [, dlugosc [, miejsca_dziesietne ] ] ) Przykład sqlserver-p03-05.sql - 15 -

Funkcje Daty i czasu DATEADD( skladnik, liczba, datagodzina ) dodaje ustalony składnik do datagodzina wartości składnika: year, month, day, dayofyear, quarter hour, minute, second, milisecond week, weekday DATEDIFF(skladnik, datagodzina1, datagodzina2) zwraca różnicę pomiędzy datami jednostką będzie składnik - 16 -

Funkcje Daty i czasu DATENAME(składnik, datagodzina) zwraca nazwę reprezentującą składnik z datagodzina DATEPART(składnik, datagodzina) zwraca liczbę reprezentującą składnik z datagodzina DAY(dg), MONTH(dg), YEAR(dg) zwracają odpowiednio dzień, miesiąc i rok z datagodzina - 17 -

Funkcje Daty i czasu GETDATE zwraca bieżący czas i datę GETUTCDATE zwraca bieżący czas GMT Przykład sqlserver-p03-06.sql - 18 -

Funkcje Matematyczne ABS, CEILING, FLOOR, ROUND SIN, COS, TAN PI, EXP, LOG, LOG10 POWER, SQRT, SQUARE SIGN, RAND - 19 -

Funkcje Napisowe UPPER, LOWER TRIM, LTRIM, RTRIM REPLACE(t1, t2, t3) wymienia w t1, t2 na t3 REPLICATE(t, n) wypisuje napis t, n razy, jesli n<0, zwraca NULL REVERSE(napis) SPACE(liczba) zwraca napis będący pewną liczbą spacji lub NULL, gdy liczba<0-20 -

Funkcje Napisowe STUFF usuwa fragment napisu SUBSTRING zwraca fragment napisu LEN zwraca długość napisu LEFT, RIGHT zwraca pewien fragment z lewej/prawej strony napisu - 21 -

Funkcje Systemowe col_length('tabela', 'kolumna') maksymalna ilość znaków w kolumnie datalength(wyrazenie) rozmiar typu danych wyniku db_id('nazwa_bazy') id podanej bazy danych lub bazy bieżącej db_name(1) nazwa podanej bazy danych lub bazy bieżącej - 22 -

Funkcje Systemowe host_id() id procesu programu, z którego łączymy się do SQL Servera host_name() nazwa stacji roboczej user_id() id użytkownika bazy danych user_name() nazwa użytkownika bazy object_id(nazwa_obiektu) zwraca id obiektu object_name(id_obiektu) zwraca nazwę obiektu - 23 -

Funkcje Bezparametrowe typu niladic są po to, żeby SQLServer był zgodny z ANSI SQL-92 funkcje i ich odpowiedniki są następujące CURRENT_TIMESTAMP SYSTEM_USER CURRENT_USER SESSION_USER USER GETDATE SUSER_SNAME USER_NAME USER_NAME USER_NAME - 24 -

Funkcje Globalne Globalne funkcje typu @@ Przykładowe: @@ERROR numer błędu ostatniego polecenia @@ROWCOUNT liczba wierszy przetworzonych przez ostatnie polecenie @@VERSION wersja SQL Servera @@TRANCOUNT liczba aktywnych transakcji w bieżącej sesji - 25 -

Funkcje Przykład sqlserver-p03-07.sql - 26 -