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



Podobne dokumenty
Autor: Joanna Karwowska

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wykład 5. SQL praca z tabelami 2

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

Wykład 05 Bazy danych

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Wykład 8. SQL praca z tabelami 5

Bazy danych. Polecenia SQL

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Projektowanie systemów baz danych

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

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

Bazy danych. Dr inż. Paweł Kasprowski

Tworzenie baz danych i tabel

Relacyjne bazy danych. Podstawy SQL

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Wykład 4. SQL praca z tabelami 1

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

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

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Bazy danych 10. SQL Widoki

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

BAZY DANYCH laboratorium 2 tworzenie bazy danych, podstawy języka SQL

SIECI KOMPUTEROWE I BAZY DANYCH

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Bazy danych - Materiały do laboratoriów VIII

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

Relacyjne bazy danych. Podstawy SQL

Paweł Rajba

Bazy Danych i Usługi Sieciowe

P o d s t a w y j ę z y k a S Q L

Struktura drzewa w MySQL. Michał Tyszczenko

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

Przykładowa baza danych BIBLIOTEKA

Autor: Joanna Karwowska

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

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

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

Instalacja MySQL.

BAZY DANYCH Cz III. Transakcje, Triggery

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

LAB 3 (część 1 Projektu)

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

Bazy danych i usługi sieciowe

Wdrożenie modułu płatności eservice. dla systemu Magento

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

Wykład 5: PHP: praca z bazą danych MySQL

Tabela wewnętrzna - definicja

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

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

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

PTI S1 Tabele. Tabele. Tabele

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

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

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

Podstawy technologii WWW

I. Interfejs użytkownika.

T A B E L E i K W E R E N D Y

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

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

Aspekty aktywne baz danych

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Kurs. Podstawy MySQL

Bazy danych. dr inż. Arkadiusz Mirakowski

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

SQL Server. Odtwarzanie baz danych.

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

UMOWY INSTRUKCJA STANOWISKOWA

Grupowanie i funkcje agregujące

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

CREATE USER

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

SIECI KOMPUTEROWE I BAZY DANYCH

SQL (ang. Structured Query Language)

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Bazy danych 7. SQL podstawy

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Oracle PL/SQL. Paweł Rajba.

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

Język SQL, zajęcia nr 2

Transkrypt:

BAZY DANYCH laboratorium 3 tworzenie, modyfikacje i usuwanie tabel, operacje na danych Cel Stworzenie w ramach bazy danych Biblioteka nowych tabel według specyfikacji (CREATE TABLE Ustawianie właściwości dla pól (CHECK, UNIQUE, IDENTITY Modyfikacja tabel i usuwanie tabel (ALTER TABLE, DROP TABLE Zapoznanie się z koncepcją kluczy Wprowadzanie danych (INSERT i ich modyfikacja (UPDATE Zadanie Zrealizuj poszczególne kroki ćwiczenia według wytycznych jak niżej. Zadanie Tok postępowania 1. Tworzenie tabeli Stwórz w bazie danych Biblioteka tabelę o nazwie dbo.wydzialy według poniższych wytycznych: Klucz Nazwa Typ danych Rozmiar Właściwości ID Int Akronim Varchar 3 NOT NULL Wydzial Varchar 50 NOT NULL By zrealizować ten cel wprowadź następującą instrukcję SQL: (ID INT, Akronim VARCHAR(4 NOT NULL, Wydzial VARCHAR(30 NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID Sprawdź zawartość nowostworzonej tabeli. Wyrażenie CONSTRAINT Kluczyk jest elementem opcjonalnym. W ten sposób właściwość pola ID została nazwana i możemy się do tej nazwy później odwołać (np. gdy będziemy chcieli ją skasować. Samo PRIMARY KEY(IDrównież stworzy klucz główny na polu ID, nazwa tej właściwości zostanie przydzielona automatycznie przez system. Przyjrzyj się definicji tej tabeli w Object Explorerze: lab3 1

Nie kasuj wprowadzonego zapytania. Zapisz je w postaci pliku z rozszerzeniem.sql. Przyda się dla ćwiczeń podanych poniżej. Możesz w ten sposób zapisywać swoje wszystkie ćwiczenia. 2. Wprowadzanie danych do tabeli (INSERT Wprowadź do tabeli dbo.wydzialy pierwszy rekord przy pomocy instrukcji INSERT: INSERT INTO dbo.wydzialy (ID, Akronim, Wydzial VALUES (1, ZIE, Wydział Zarządzania i Ekonomii Sprawdź zawartość tabeli. Dodaj kolejnych kilka rekordów. Jeżeli zawsze dodajesz komplet danych (wypełniasz danymi wszystkie pola w rekordzie możesz zastosować uproszczony zapis: INSERT INTO dbo.wydzialy VALUES (2, MECH, Wydział Mechaniczny Zauważ, że w definicji tabeli pojawiły się definicje wymagalności niektórych pól (NOT NULL. Sprawdź ich działanie wprowadzając rekord, w którym wybrane pola pozostaną bez wartości: INSERT INTO dbo.wydzialy (ID, Akronim VALUES (1, ZIE Zauważ, że jedno z pól zostało zdefiniowane jako klucz (pole ID Sprawdź czy możliwe jest pozostawienie go pustym? Sprawdź czy możliwe jest wprowadzenie do niego wartości takiej samej jak w dowolnym innym istniejącym rekordzie? Zauważ, że dla pól o typach danych VARCHAR (dane tekstowe zostały zdefiniowane ograniczenia co do maksymalnej ilości znaków (wartość w nawiasie. Sprawdź w jaki sposób to ograniczenie jest egzekwowane spróbuj wprowadzić do tabeli rekord, który w polu Akronim będzie miał więcej znaków niż zadano (tu: więcej niż cztery. Nie kasuj wprowadzonych zapytań, poniżej jeszcze kilka razy konieczne będzie użycie instrukcji INSERT. Dodaj przed instrukcją dwa znaki myślnika (znak komentarza lab3 2

--INSERT INTO dbo.wydzialy (ID, Akronim VALUES (1, ZIE Instrukcja poprzedzona znakami komentarza nie zostanie wykonana. Usuń je, gdy ponownie zajdzie konieczność wstawienia danych do tabeli dbo.wydzialy. Znaki myślnika możesz także wykorzystać do dodawania własnych komentarzy np. -- To zapytanie będzie trzeba dokładniej przeanalizować 3. Usuwanie tabeli (DROP TABLE Usuń stworzoną tabelę przy pomocy instrukcji DROP DROP TABLE dbo.wydzialy 4. Określanie wartości domyślnych (DEFAULT Stwórz ponownie tabelę dbo.wydzialy wywołując zapytanie SQL jak niżej. (ID INT PRIMARY KEY, Akronim VARCHAR(4 NOT NULL, Wydzial VARCHAR(30 NOT NULL DEFAULT Wydział PG Zwróć uwagę na jeszcze inny sposób definicji klucza głównego niż uprzednio (już trzeci przedstawiony w tym ćwiczeniu. Wprowadź do tak zdefiniowanej tabeli rekord bez określania wartości dla pola Wydzial (INSERT 5. Ustalenie wartości unikalnych (UNIQUE Załóżmy, że w tabeli dbo.wydzialy nie powinno być powtórzonych wartości w polu Akronim (czyli każdy Wydział powinien pojawić się w tabeli tylko raz. Zgodnie takim założeniem nadaj więc dla pola Akronim odpowiednią właściwość. (ID INT PRIMARY KEY, Akronim VARCHAR(4 NOT NULL UNIQUE, Wydzial VARCHAR(30 NOT NULL Wprowadź do tak zdefiniowanej tabeli rekord, gdzie w polu Akronim będzie wartość ZIE Analogicznie jak w przypadku nadawania klucza, atrybut UNIQUE także da się ustawić definiując go jako atrybut tabeli a nie pola (używając CONSTRAINT, czyli: (ID INT PRIMARY KEY, Akronim VARCHAR(4 NOT NULL, Wydzial VARCHAR(30 NOT NULL lab3 3

CONSTRAINT AkronimUnikalny UNIQUE(Akronim 6. Ustawianie właściwości weryfikujących (CHECK Ustaw w tabeli dbo.wydzialy warunek ograniczający dla pola ID, który nie pozwoli wprowadzić wartości mniejszych niż 1 i jednocześnie większych niż 5 (ID INT PRIMARY KEY CHECK(ID>0 and ID<999, Akronim VARCHAR(4 NOT NULL, Wydzial VARCHAR(30 NOT NULL Wprowadź nowy rekord z wartością 999 w polu ID. Ustaw w tabeli dbo.wydzialy warunek ograniczający dla pola Akronim, który nie pozwoli wprowadzić wartości innych niż: ZIE, ETI, OIO, ARCH (ID INT PRIMARY KEY, Akronim VARCHAR(4 NOT NULL, Wydzial VARCHAR(30 NOT NULL, CONSTRAINT SprawdzamAkronim CHECK (Akronim IN ( ZIE, ETI, OIO, ARCH Zauważ, ze właściwość została tym razem zadana w alternatywny sposób (na końcu definicji a nie przy polu Ustaw warunek ograniczający dla pola Wydzial, który pozwoli wprowadzić wyłącznie wartości rozpoczynające się od słowa Wydział (wskazówka: użyj słowa LIKE Przyjrzyj się danym w tabelach dbo.czytelnik i dbo.ksiazka dla jakich pól powinny zostać ustawione tego rodzaju ograniczenia przy użyciu właściwości CHECK? Gdzie powinny być określone wartości minimalne/maksymalne? Gdzie powinna być zdefiniowana lista określonych dostępnych wartości? Zauważ, że warunki ograniczające w danym polu mogą zależeć od wartości w innych polach np. w tabeli dbo.czytelnik dla pola Rok_studiow mogłoby zostać zdefiniowane ograniczenie które nie pozwoli wprowadzać liczby jeśli w polu Typ_czytelnika wprowadzono wartość pracownik. 7. Ustawianie właściwości autonumerowania (IDENTITY Zauważ, że pole ID w tabeli dbo.wydzialy jest w założeniu kluczem i przyjęto, że będzie to liczba całkowita. W domyśle każdy kolejny rekord powinien mieć wartość ID większą o jeden w stosunku do poprzedniego. Zautomatyzuj to założenie ustawiając dla tego pola właściwość IDENTITY, która zapewnia automatyczne numerowanie narastająco w każdym kolejny rekordzie (wskazówka: dodaj tę właściwość w definicji tabeli analogiczny sposób jak każdą inna dotychczas Wprowadź nowy rekord z wartością 1 w polu ID. Wprowadź nowy rekord z pominięciem zadania wartości dla pola ID. lab3 4

Zauważ, że przy ustawieniu właściwości IDENTITY nie ma potrzeby zadawać już dla tego pola właściwości UNIQUE ani CHECK. 8. Modyfikacja danych w tabeli (UPDATE Przyjrzyj się zawartości tabeli dbo.ksiazka. Zauważ, że w polu Miejsce_wydania nie wszędzie wprowadzono jakąś wartość. Ile jest takich rekordów? Zmodyfikuj wszystkie te rekordy w taki sposób, by wszędzie tam, gdzie Miejsce_wydania ma wartość NULL wprowadzone zostało słowo wyrażenia miejsce nieznane UPDATE dbo.ksiazka SET Miejsce_wydania= miejsce nieznane WHERE Miejsce_wydania IS NULL Zauważ, że uruchomienie takiego zapytania SQL nie kończy się zwróceniem wyniku w postaci rekordów (jak jest w przypadku SELECT a. Po wykonaniu instrukcji UPDATE zawsze wyświetlony zostanie komunikat: (X row(s affected gdzie X to liczba wierszy objętych modyfikacją. Uwaga! Instrukcja UPDATE jest nieodwracalna w prosty sposób, nie ma możliwości automatycznego przywrócenia stanu sprzed jej uruchomienia. Jedyne, co w takiej sytuacji można zrobić to przeprowadzić kolejną modyfikację przy pomocy UPDATE (czy zawsze jest możliwe określenie po fakcie które wiersze zostały zmienione? Sugestia: po przygotowaniu instrukcji UPDATE, ale jeszcze przed jej wywołaniem sprawdź ile rekordów potencjalnie zostanie zmienione. Zrób to poprzez tymczasową zamianę linii UPDATE i SET na SELECT (wskazówka: zachowaj wszystkie linie, ustaw przed niektórymi znak komentarza --UPDATE dbo.ksiazka --SET Miejsce_wydania= miejsce nieznane SELECT * from dbo.ksiazka WHERE Miejsce_wydania IS NULL Bardzo często istnieje potrzeba modyfikacji jednego, konkretnego rekordu. Wiąże się to zwykle z koniecznością ustawienia wielu warunków. To z kolei wiąże się z prawdopodobieństwem popełnienia błędu, który może być nieodwracalny. Taki kontrolny SELECT nie powinien w tym wypadku pokazać niczego więcej ponad ten jeden rekord. Zmodyfikuj dane w tabeli dbo.czytelnik zmieniając zawartości pola Aktywny, by wszędzie gdzie jest wartość 0 została ustawiona wartość 1. Ustaw dla kilku dowolnie wybranych rekordów (ale nie dla wszystkich! numer GG (dowolna liczba lab3 5

9. Zmiana definicji tabel (ALTER Dotychczas wszystkie ćwiczenia, które polegały na ustawianiu różnych definicji tabeli (różne właściwości wymagały, by za każdym razem tabela była usuwana (DROP i tworzona od nowa. Co by było, gdyby te tabele zawierały wiele istotnych danych? Istnieje możliwość wprowadzania zmian w istniejących tabelach bez konieczności ich usuwania przy pomocy instrukcji ALTER TABLE Zmodyfikuj tabelę dbo.wydzialy, dodaj kolejną kolumnę Ilosc_studentow ALTER TABLE dbo.wydzialy ADD Ilosc_studentow int Usuń dodaną przed chwilą kolumnę: ALTER TABLE dbo.wydzialy DROP COLUMN Ilosc_studentow W punkcie 6 niniejszego ćwiczenia analizowałeś tabele dbo.czytelnik i dbo.ksiazka z punktu widzenia ewentualnych warunków ograniczających (CHECK. Ustaw te warunki dla obu tabel przy pomocy ALTER TABLE (wskazówka: skorzystaj ze schematów: ALTER TABLE nazwa_tabeli ADD definicja_atrybutu oraz ALTER TABLE nazwa_tabeli DROP CONSTRAINT nazwa_atrybutu 10. Sprawdzenie definicji istniejącej tabeli Spod menu kontekstowego dla dowolnej tabeli (prawy klawisz na tabeli w Object Explorerze wybierz opcję: Script Table as CREATE To New Query Editor Window Przyjrzyj się zapytaniu, które zostało automatycznie wygenerowane. Zastosuj dla wybranych tabel także pozostałe opcje dostępne po rozwinięciu Script Table as Wpisz polecenie: lab3 6

sp_help 'dbo.ksiazka' opracowanie: mgr inż. Leszek Zięba, mgr inż. Tomasz Sitek 11. Tworzenie dalszych tabel Stwórz w bazie danych Biblioteka tabelę o nazwie dbo.osoba_status według poniższych wytycznych: Klucz Nazwa Typ danych Rozmiar Właściwości ID int IDENTITY Status varchar 10 NOT NULL Wprowadź do tabeli dwa rekordy: niech ID=1 oznacza pracownika, a ID=2 oznacza studenta. Stwórz w bazie danych Biblioteka tabelę o nazwie dbo.wypozyczenia według poniższych wytycznych: Klucz Nazwa Typ danych Rozmiar Właściwości Ksiazka_ Sygnatura Czytelnik_ ID int int Data_ wypozyczenia datetime Data_ oddania datetime DEFAULT GetDate( Wskazówka: by ustawić klucz na kliku polach jednocześnie użyj: CONSTRAINT Kluczyk PRIMARY KEY(Ksiazka_sygnatura, Czytelnik_ID, Data_wypozyczenia Jaka jest idea klucza w tym przypadku? Dlaczego ustawiony został na trzech polach jednocześnie? Jakie inne rozwiązanie można by zaproponować? Zadanie domowe Celem zadania jest nabycie umiejętności samodzielnej analizy wymagań funkcjonalnych bazy danych. Poniżej w kilku zdaniach przedstawione zostały wymagania przyszłego użytkownika bazy danych. Wymagania wyrażone są w języku naturalnym, stąd mogą być nieprecyzyjne. Zbuduj tabelę (lub kilka tabel, która zapewni poprawne wprowadzanie oraz przetwarzanie danych do niej wprowadzanych. Ustaw odpowiednie typy danych i właściwości kolumn. Biblioteka przechowuje także multimedia, baza danych powinna dawać możliwość przechowywania o nich danych Multimedia mamy na różnych nośnikach na płytach CD, DVD a nawet na kasetach Są to zarówno filmy, audiobooki jak i utwory muzyczne Większość pozycji jest zabezpieczona przed kopiowaniem lab3 7

W przypadku filmów przydałoby się mieć dostęp do informacji o tym, czy są napisy i/lub lektor Istotną informacją jest długość nagrania Niektórych pozycji nie można wypożyczyć dostęp do nich jest możliwy wyłącznie w czytelni Ważne jest by system nie pozwolił osobie wprowadzającej dane wprowadzić pozycji bez podania informacji o języku; wystarczą 3 litery np. POL, ANG Jeśli się da, to dobrze byłoby dysponować okładką danej pozycji Prześlij prowadzącemu plik z rozszerzeniem.sql, który zawierać będzie instrukcje, które po wykonaniu stworzą potrzebne tabele. W treści wiadomości opisz krótko koncepcję: jakie poczyniono założenia?, jakie zauważono ograniczenia? Porównaj na kolejnych zajęciach stworzony przez Ciebie projekt tabeli z efektem pracy innych osób z grupy, przeanalizujcie różnice w podejściu do powyższych wytycznych. lab3 8