Oracle PL/SQL. Paweł Rajba.

Podobne dokumenty
Oracle PL/SQL. Paweł Rajba.

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba.

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

Bloki anonimowe w PL/SQL

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

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

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

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

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

Autor: Joanna Karwowska

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

SQL (ang. Structured Query Language)

Oracle PL/SQL. Paweł Rajba.

Administracja i programowanie pod Microsoft SQL Server 2000

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

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

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

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

Paweł Rajba

Administracja i programowanie pod Microsoft SQL Server 2000

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

PODSTAWY BAZ DANYCH 13. PL/SQL

Wykład 5. SQL praca z tabelami 2

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

Relacyjne bazy danych. Podstawy SQL

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

Język SQL, zajęcia nr 1

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

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

1. ELEMENTY JĘZYKA PL/SQL

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

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

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

Relacyjne bazy danych. Podstawy SQL

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

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wstęp do programowania 2

Widok Connections po utworzeniu połączenia. Obszar roboczy

Paweł Rajba

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

SQL 4 Structured Query Lenguage

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

Bazy danych - Materiały do laboratoriów VIII

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

Indeksy. Indeks typu B drzewo

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

Wykład 05 Bazy danych

Bazy danych. Polecenia SQL

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Wykład 8. SQL praca z tabelami 5

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

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

Bazy danych Język SQL część 2 Wykład dla studentów matem

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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...

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy danych i usługi sieciowe

Struktura drzewa w MySQL. Michał Tyszczenko

Bazy Danych i Usługi Sieciowe

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

Systemowe aspekty baz

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

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

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych Ćwiczenia projektowe

Podstawy technologii WWW

PL/SQL. Zaawansowane tematy PL/SQL

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

Autor: Joanna Karwowska

Bloki anonimowe w PL/SQL

Instrukcje DML INSERT, UPDATE, DELETE. COPY

Kursory. A. Pankowska 1

Instalacja MySQL.

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

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

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

Procedury i funkcje składowane

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

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

Składowane procedury i funkcje

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

Deklarowanie kursora

1 Kolekcje Operacje masowe VARRAY NESTED TABLES Tabele asocjacyjne Perspektywy obiektowe 10.

Transkrypt:

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

Zawartość modułu 3 Rekordy Tabele indeksowe asocjacyjne - 2 -

Rekordy Co to jest rekord? Rodzaje rekordów Rekordy użytkownika Rekordy tabelowe Rekordy kursorowe - 3 -

Definiowanie rekordu Najpierw typ TYPE nazwa-typu-rekordu IS RECORD ( pole1 typ [NOT NULL] [ DEFAULT v1 := expr ], pole2 typ [NOT NULL] [ DEFAULT v2 := expr ],... polen typ [NOT NULL] [ DEFAULT vn := expr ] ); Potem zmienna nazwa-rekordu nazwa-typu-rekodu - 4 -

Definiowanie rekordu Uwagi typem może być także inny typ rekordowy deklaracja typu rekordowego nie wiąże się z alokacją jakichś zasobów jeśli pole ma atrybut not null, musi mieć zdefiniowaną wartość domyślną - 5 -

Używanie typu rekordowego Dostęp do pól rekordu nazwa-rekordu.nazwa-pola Testowanie równości Polega na porównaniu wszystkich pól po kolei Przypisanie wartości dla poszczególnych pól Ręczne przypisanie wartości Za pomocą instrukcji select.. into (kursor domyślny) Za pomocą instrukcji fetch.. into (kursor użytkownika) Przypisanie rekordów - 6 -

Nadanie wartości dla pól rekordu Ręczne przypisanie wartości (oczywiste) Za pomocą instrukcji SELECT.. INTO TYPE trec IS RECORD... rec trec; SELECT p1,..., pn INTO rec FROM... Możemy też korzystać z konstrukcji SELECT p1,..., pn INTO v1,..., vn FROM... UWAGA: Pobrany musi być dokładnie jeden wiersz Za pomocą instrukcji FETCH.. INTO Omówione przy okazji kursorów - 7 -

Nadanie wartości dla pól rekordu Przypisanie rekordów Nazywane też przypisaniem agregującym Równoważne przypisaniu kolejnych pól rekordu Rekordy muszą być tego samego typu Składnia rec1 := rec2 Przykład: rekordy-użytkownika.txt - 8 -

Rekordy tabelowe Deklaracja zmienna nazwa_tabeli%rowtype; Komentarz Rekord taki tworzymy w oparciu o istniejącą tabelę Struktura rekordu odpowiada strukturze tabeli W rekordzie zawsze występują wszystkie pola tabeli Zmiana struktury tabeli powoduje automatyczną zmianę struktury rekordu - 9 -

Operacje SQL i rekordy Instrukcja INSERT INSERT INTO tabela VALUES zmienna_rekordowa Instrukcja UPDATE UPDATE tabel SET ROW=rekord [ WHERE... ] Uwagi rekord nie może mieć pól typu rekordowego przy update'cie zawsze zmieniamy cały wiersz tabeli Przykład: rekordy-sql.txt - 10 -

Tabele indeksowe Wprowadzenie Podobne do tablic w innych językach programowania Tablice nie mają ograniczenia na indeksy Indeksy nie muszą być kolejne, mogą być także ujemne Tabela jest tworzona w momencie przypisania wartości pierwszemu elementowi Elementami tabeli mogą być także rekordy - 11 -

Definiowanie tabeli indeksowej Definiowanie typu TYPE nazwa_type IS TABLE OF typ_elementów [NOT NULL] INDEX BY BINARY_INTEGER; Deklaracja zmiennej nazwa_tabeli nazwa_typu Przykład TYPE TNumTab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER tablica TNumTab - 12 -

Używanie tabeli indeksowej Przypisanie wartości tabela(indeks) := wartość; Nie można się odwoływać do elementów o indeksach, do których nic nie przypisaliśmy Przypisanie agregujące t1 ttab; t2 ttab;... t2 := t1; powoduje przepisanie wszystkich elementów z t1 do t2-13 -

Metody tabel indeksowych EXISTS Składnia: tabela.exists( indeks ) COUNT Składnia: tabela.count DELETE Składnia: tabela.delete Składnia: tabela.delete(indeks) Składnia: tabela.delete(idx_od, idx_do) - 14 -

Metody tabel indeksowych FIRST Składnia: tabela.first LAST Składnia: tabela.last NEXT Składnia: tabela.next( indeks ) PRIOR Składnia: tabela.prior( indeks ) - 15 -

Tabele asocjacyjne To samo co tabele indeksowe, tylko indeksowane ciągami znaków Definiowanie typu TYPE nazwa_type IS TABLE OF typ_elementów [NOT NULL] INDEX BY VARCHAR2(rozmiar); Deklaracja zmiennej nazwa_tabeli nazwa_typu Przykład TYPE TStrTab IS TABLE OF NUMBER INDEX BY VARCHAR2(20) - 16 -

Tabele indeksowe i asocjacyjne Przykłady tabele-indeksowe.txt tabele-asocjacyjne.txt - 17 -