Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Podobne dokumenty
Autor: Joanna Karwowska

Wykład 4. SQL praca z tabelami 1

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

Aspekty aktywne baz danych

Bazy danych - Materiały do laboratoriów VIII

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

Administracja i programowanie pod Microsoft SQL Server 2000

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

Wykład 8. SQL praca z tabelami 5

Tworzenie baz danych i tabel

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

Język SQL, zajęcia nr 1

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

Wykład 05 Bazy danych

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

Bazy danych Ćwiczenia projektowe

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

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

Bazy danych. Dr inż. Paweł Kasprowski

Instrukcja CREATE TABLE

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

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

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

Typy Oracle atrybutów relacji Typ NUMBER (1)

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

Typy Oracle atrybutów relacji Typ NUMBER (1)

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

Paweł Rajba

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Projektowanie systemów baz danych

Wykład 2. SQL 1 Structured Query Lenguage

Wykład 5. SQL praca z tabelami 2

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

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

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

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

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

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Widok Connections po utworzeniu połączenia. Obszar roboczy

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Bazy danych 10. SQL Widoki

Model relacyjny. Wykład II

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Tworzenie modelu logicznego i fizycznego danych.

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

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

SIECI KOMPUTEROWE I BAZY DANYCH

Ćwiczenie 7 - DDL. Relacje i ograniczenia integralnościowe. Ćwiczenie 7 DDL. Wymagania: Bazy Danych

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

Język SQL, zajęcia nr 2

Bazy danych. Polecenia SQL

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

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

SIECI KOMPUTEROWE I BAZY DANYCH

Transformacja modelu ER do modelu relacyjnego

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

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Transformacja modelu ER do modelu relacyjnego

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL

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

Bazy danych 7. SQL podstawy

MS SQL Język definiowania danych (DDL): ćwiczenia

(ang. Structured Query Language).

Relacyjne bazy danych. Podstawy SQL

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

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

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

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

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

ACESS- zadania z wykorzystaniem poleceń SQL

Podstawy języka SQL cz.1

SQL :: Data Definition Language

Hurtownia Świętego Mikołaja projekt bazy danych

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

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

WPROWADZENIE DO JĘZYKA SQL

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

Bazy danych. Projekt prostej biblioteki. 26 stycznia Hubert Anisimowicz,

Komunikacja z bazą danych psql

Model relacyjny. Wykład II

Bazy Danych i Usługi Sieciowe

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

1 Wstęp do modelu relacyjnego

Laboratorium nr 1. Temat: Wprowadzenie do MySQL-a

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Oracle PL/SQL. Paweł Rajba.

E.14 Bazy Danych cz. 16 SQL Tworzenie, modyfikowanie i usuwanie tabel

SIECI KOMPUTEROWE I BAZY DANYCH

Transkrypt:

Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane w postaci krotek (wierszy), które reprezentują jednostki np. informacje o pracownikach, mające szereg atrybutów (nazwisko, imię, data urodzenia itp.). 1

Tworzenie tabel CREATE TABLE instrukcja do tworzenia tabeli jest dość skomplikowana. Tworząc tabele musimy między innymi zdefiniować kolumny podając co najmniej nazwę oraz typ danych. Opcjonalnie możemy między innymi zdefiniować: czy dopuszczalne są wartości puste, czy jest to wiersz tożsamościowy lub identyfikator GUID, podać wartość domyślną kolumny, podać warunki ograniczenia. 2

CREATE TABLE <nazwa tabeli> (<nazwa kolumny> <typ danych> Tworzenie tabel [PRIMARY KEY FOREIGN KEY REFERENCES tab_odn (naz_atr)] [NULL NOT NULL] [[DEFAULT <wartość domyślna>] IDENTITY (wartość początkowa, wartość inkrementacji) [NOT FOR REPLICATION]] [ [<ograniczenie kolumny>]]) Wartość domyślna DEFAULT i specyfikacja tożsamości IDENTITY wykluczają się wzajemnie. 3

Typy danych znakowe i binarne Znakowe typy służą do przechowywania łańcuchów znaków. Mogą być stałej lub. Wyróżniamy 6 typów danych: char,varchar, nchar,nvarchar, text,ntext. Typ nvarchar oraz nchar przystosowane są do obsługi znaków w standardzie Unicode. Do zapisania znaków w Unicod potrzeba dwóch bajtów dlatego ograniczona jest liczba przechowywanych znaków do 4000. Char określa stałą długość. Varchar stosujemy dla znaków. 4

Typy danych datetime Typ datetime i smalldatetime przechowują informacje o dacie i czasie, różnią się one precyzją i ilością miejsca niezbędną do zapisania danych. Liczba bajtów potrzebna do zapisania informacji Precyzja Najmniejsza możliwa wartość Największa możliwa wartość datetime 8 bajtów 3/100 sekundy 1 stycznia 1753 31 grudnia 9999 smalldatetime 4 bajty 1 minuta 1 stycznia 1990 6 czerwca 2079 SQL Server nie dysponuje formatami danych, które przechowują informacje o samej dacie lub samym czasie. 5

Tworzenie tabel przykład Utwórz relację OSOBY o schemacie: Nazwisko Imie PESEL ciąg tekstowy, 30 znakowy o ciąg tekstowy, 20 znakowy o ciąg tekstowy, 11 znakowy o stałej długości Utwórz relację OSOBY_1 o schemacie: Id Nazwisko Imie_1 Imie_2 miasto całkowity ciąg tekstowy, 30 znakowy o ciąg tekstowy, 20 znakowy o ciąg tekstowy, 20 znakowy o ciąg tekstowy, 11 znakowy o unikalny, przyrost 1, wartość początkowa 1 opcjonalny, wartośc domyslna Poznań create table OSOBY (Nazwisko varchar(30), Imie varchar(20), PESEL char(11)) create table OSOBY_1 ( Id int IDENTITY(1,1), Nazwisko varchar(30) NOT NULL, Imie_1 varchar(20) NOT NULL, Imie_2 varchar(20), Miasto varchar(30) NOT NULL DEFAULT Poznań ) 6

DEFINIOWANIE KLUCZY GŁÓWNYCH Utwórz relację OSOBY_2 o schemacie: Id_osoby Nazwisko Imie całkowity ciąg tekstowy, 30 znakowy o ciąg tekstowy, 20 znakowy o unikalny, przyrost 1, wartość początkowa 1, klucz główny Utwórz relację PROJEKTY o schemacie: Id_Projektu Nazwa całkowity ciąg tekstowy, 150 znakowy, o zmiennej długości unikalny, przyrost 1, wartość początkowa 1, klucz główny Data_Rozpoczecia datetime wartość domyślna: data systemowa create table OSOBY_2 ( ID_osoby int IDENTITY(1,1) PRIMARY KE Nazwisko varchar(30) NOT NULL, Imie varchar(20) NOT NULL) Utwórz relację DZIAŁY o schemacie: Id_Dzialu Dzial_Opis znakowy o długość stałej równej 1 ciąg tekstowy, 15 znakowy, o zmiennej długości klucz główny 7

DEFINIOWANIE KLUCZY OBCYCH Utwórz relację PRACOWNICY o schemacie: ID_pracownika Nazwisko stanowisko Id_Dzialu całkowity ciąg tekstowy, 30 znakowy, o ciąg tekstowy,15 znakowy, o znakowy o długośc stałej równej 1 unikalny, przyrost 1, wartość początkowa 1, klucz główny, klucz obcy z tabeli DZIALY CREATE TABLE PRACOWNICY (Id_Pracownika int IDENTITY(1,1) PRIMARY KEY, Nazwisko varchar(30) NOT NULL, Stanowisko varchar(15) NOT NULL, Id_Dzialu char(1) NOT NULL FOREIGN KEY REFERENCES DZIALY (Id_Dzialu)) 8

Ograniczenie UNIQUE i CHECK Utwórz relacje OSOBY_3 o schemacie oraz OSOBY_4: Id_osoby NIP Nazwisko Imie całkowity ciąg tekstowy o stałej długości 10 znaków ciąg tekstowy, 30 znakowy o ciąg tekstowy, 20 znakowy o unikalny, przyrost 1, wartość początkowa 1, klucz główny, unikalny create table OSOBY_3 ( ID_osoby int IDENTITY(1,1) PRIMARY KEY, NIP char(10) UNIQUE Nazwisko varchar(30) NOT NULL, Imie varchar(20) NOT NULL) ID_Osoby całkowity klucz główny Plec ciąg tekstowy,1 znakowy, o stałej długości jedna z wartosci K lub M Dzial ciąg tekstowy,2 znakowy, o stałej pierwszy znak to litera, drugi długości cyfra Prowizja liczba całkowita z przedziału (100, 1000) create table OSOBY_4 (Id_Osoby int PRIMARY KEY, Plec char(1) CHECK(Plec IN ('K','M')), Dzial char(2) CHECK(Dzial Like '[A-Z][0-9]'), Prowizja int CHECK (Prowizja between 100 and 1000)) 9

Polecenie CONSTRAINT Utwórz relację OSOBY_5 analogiczną do OSOBY_4 tylko ograniczeniom nadaj odpowiednie nazwy: create table OSOBY_5 (Id_Osoby int PRIMARY KEY, Plec char(1) CONSTRAINT blad_plec CHECK(Plec IN ('K','M')), Dzial char(2) CONSTRAINT blad_dzial CHECK(Dzial Like '[A-Z][0-9]'), Prowizja int CONSTRAINT blad_prowizja CHECK (Prowizja between 100 and 1000)) 10

ALTER TABEL nazwa_tabeli zmiana_definicji_tabeli Zmiana definicji tabeli zmiana_definicji_tabeli to: ALTER COLUMN def_kolumny - zmiana np. długości atrybutu ADD def_kolumny dodanie atrybutu DROP COLUMN nazwa_kolumny -usunięcie atrybutu ADD CONSTRAINT def_ograniczenia dodanie ograniczenia na atrybut DROP CONSTRAINT nazwa_ogra usunięcie ograniczenia 11

Przykłady Wszystkie przykłady odnoszą się do relacji OSOBY_1 dodanie atrybutu PLEC ALTER TABLE osoby_1 ADD PLEC char (1) usunięcie atrybutu IMIE_2 ALTER TABLE osoby_1 DROP COLUMN imie_2 zdefiniowanie klucza głównego dla atrybutu ID ALTER TABLE osoby_1 ADD CONSTRAINT klucz PRIMARY KEY (ID) dodanie ograniczenia na atrybut PLEC ATLER TABLE osoby_1 ADD CONSTRAAINT ograniczenie_plec CHECK (PLEC IN( K, m )) zmiana wielkości pola ALTER TABLE osoby_1 ALTER COLUMN Imie_1 varchar(15) 12

Więzy integralności Ograniczenia między tabelami definiujemy przy określaniu klucza obcego. FOREIGN KEY (kolumny_klucza_obcego) REFERENCES tabela_klucza_głównego (kolumny_klucza_głównego) ON UPDATE czynność_przy_modyfikacji ON DELETE czynność_przy_kasowaniu czynność to: CASCADE skasuj lub zmodyfikuj wszystkie wiersze zawierające wskazaną wartość klucza obcego, NO ACTION nie wprowadzaj zmian do wartości klucza obcego 13

Przykład Mamy dwie tabele o następujących definicjach i krotkach: CREATE TABLE DZIALY (Id_Dzialu char(1) PRIMARY KEY, Dzial_Opis varchar(15) NOT NULL,) DZIALY CREATE TABLE PRACOWNICY (Id_Pracownika int IDENTITY (1,1) PRIMARY KEY, Nazwisko varchar(30) NOT NULL, Stanowisko varchar(15) NOT NULL, Id_Dzialu char(1) NOT NULL FOREIGN KEY REFERENCES DZIALY(Id_Dzialu) ON UPDATE CASCADE ) PRACOWNICY 14

Przykład Po dokonaniu modyfikacji: UPDATE DZIALY SET Id_Dzialu= G WHERE Id_Dzialu= M otrzymamy DZIALY PRACOWNICY W przypadku kiedy mamy następującą definicję klucza obcego w tabeli PRACOWNICY: Id_Dzialu char(1) NOT NULL FOREIGN KEY REFERENCES DZIALY(Id_Dzialu) ON DELETE CASCADE po wykonaniu instrukcji: DELETE DZIALY WHERE Id_Dzialu='K' otrzymamy: DZIALY PRACOWNICY 15