Administracja i programowanie pod Microsoft SQL Server 2000



Podobne dokumenty
Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Aspekty aktywne baz danych

Bazy danych Ćwiczenia projektowe

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

Autor: Joanna Karwowska

Tworzenie baz danych i tabel

Wykład 4. SQL praca z tabelami 1

Paweł Rajba

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

Wykład 8. SQL praca z tabelami 5

Instrukcja CREATE TABLE

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

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.

Bazy danych 10. SQL Widoki

Bazy danych - Materiały do laboratoriów VIII

Paweł Rajba

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

Bazy danych 7. SQL podstawy

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

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

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

Język SQL, zajęcia nr 1

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

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Administracja i programowanie pod Microsoft SQL Server 2000

MySQL. Darmowa baza danych. Æwiczenia praktyczne

Oracle PL/SQL. Paweł Rajba.

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

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

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

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

Tworzenie baz danych. Stworzenie bazy danych. Pliki danych. Najprostsze polecenie: CREATE DATABASE baza. Tworzy się dokładna kopia bazy model

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

Administracja i programowanie pod Microsoft SQL Server 2000

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

Przedmowa Rozpoczęcie pracy z bazą danych Microsoft SQL Server Podstawowe instrukcje języka SQL...39

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

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

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

Oracle PL/SQL. Paweł Rajba.

Bazy danych. Dr inż. Paweł Kasprowski

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

Wykład 5. SQL praca z tabelami 2

060 SQL FIZYCZNA STRUKTURA BAZY DANYCH. Prof. dr hab. Marek Wisła

(ang. Structured Query Language).

Podstawy języka SQL cz.1

Bazy danych 5. Samozłaczenie SQL podstawy

2 Przygotował: mgr inż. Maciej Lasota

Wykład 05 Bazy danych

SIECI KOMPUTEROWE I BAZY DANYCH

Fizyczna struktura bazy danych w SQL Serwerze

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Oracle PL/SQL. Paweł Rajba.

Wykład 2. SQL 1 Structured Query Lenguage

Typy Oracle atrybutów relacji Typ NUMBER (1)

Administracja i programowanie pod Microsoft SQL Server 2000

Typy Oracle atrybutów relacji Typ NUMBER (1)

1. Administrowanie bazą danych MS SQL Serwer 2005

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

Lab.8: Podstawy języka SQL.

Administracja i programowanie pod Microsoft SQL Server 2000

Dr Michał Tanaś(

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Bazy danych 4. SQL podstawy. P. F. Góra

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

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

Programowanie obiektów

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

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

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

Tuning SQL Server dla serwerów WWW

Widok Connections po utworzeniu połączenia. Obszar roboczy

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Bazy danych SQL Server 2005

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

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

Oracle PL/SQL. Paweł Rajba.

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

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

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

Relacyjne bazy danych. Podstawy SQL

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wykład 2. Relacyjny model danych

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

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

Wykład :45 BD-1 W_3

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Tabela wewnętrzna - definicja

Tworzenie modelu logicznego i fizycznego danych.

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

Oracle PL/SQL. Paweł Rajba.

Bazy danych 9. SQL Klucze obce Transakcje

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

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Transkrypt:

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

Zawartość modułu 2 Typy danych wbudowane użytkownika Tabele organizacja wiersza przechowywanie dużych danych automatyczne generowanie wartości kluczy Integralność danych - 1 -

Typy danych Wbudowane typy danych Całkowite int (4), bigint (8), smallint (2), tinyint (1) Numeryczne dokładne: decimal(p,s), numeric(p,s) (2-17) przybliżone: float, real Monetarne money (8), smallmoney (4) Czasu i daty datetime (8), smalldatetime (4) - 2 -

Typy danych Wbudowane typy danych Tekstowe char, varchar (0-8000), text (0-2GB) Tekstowe unicode nchar, nvarchar (0-8000), ntext (0-2GB) Binarne binary, varbinary (0-8000) Obrazkowe Inne image (0-2GB) bit, cursor, table, sql_variant, uniqueidentifier - 3 -

Typy danych Typy danych użytkownika Poleceniem sp_addtype tworzymy typ Składnia sp_addtype nazwa, typ_systemowy [, ['null' 'not null']] Poleceniem sp_droptype usuwamy typ Składnia sp_droptype nazwa Poleceniem sp_help pobieramy informacje o typie Składnia sp_help nazwa - 4 -

Typy danych Typy danych użytkownika Przykłady exec sp_addtype pesel, 'char(11)' exec sp_addtype imie, 'varchar(30)' exec sp_addtype nazwisko, 'varchar(50)' exec sp_addtype plec, 'char(1)' exec sp_droptype pesel exec sp_help plec exec sp_help (później będzie w przykładzie) - 5 -

Typy danych Kilka uwag o używaniu typów danych warto rozważyć używanie małych typów typu tinyint, jednak trzeba zadbać, żeby baza była elastyczna jeśli mamy ustalony stopień precyzji liczb należy używać typów do tego przeznaczonych, np. decimal jeśli dane przekraczają 8KB, możemy użyć typów text lub image dla walut używamy typów money nie powinniśmy opierać klucza głównego o kolumny typu float lub real - 6 -

Tabele Organizacja wiersza tabeli Najpierw jest nagłówek (4B) Następnie są dane wiersza, kolejne kawałki: dane kolumn stałej szerokości NULL BLOCK, czyli 2B na ilość kolumn w wierszu dalej bitmapa, w której 1bit oznacza, czy kolumna ma wartość NULL; wielkość bitmapy jest zaokrąglana w górę do pełnego bajtu - 7 -

Tabele Organizacja wiersza tabeli c.d. Dane wiersza c.d. VARIABLE BLOCK, czyli 2B na ilość kolumn o zmiennej wielkości po 2B na oznaczenie końca każdej kolumny w bloku z danymi brak VARIABLE BLOCK oznacza brak kolumn zmiennej długości Dane kolumn zmiennej długości może mieć wielkość 0 w przypadku braku danych lub kolumn - 8 -

Tabele Przechowywanie dużych danych Dane typu np. text mogą mieć rozmiar do 2GB Domyślnie dla takich dużych danych tworzona jest osobna struktura, a w wierszu znajduje się 16 bajtowy wskaźnik Jeśli dane typu text nie są duże, można zażądać, żeby były przechowywane bezpośrednio w wierszu tabeli Służy do tego procedura sp_tableoption Składnia sp_tableoption 'tabela', 'text in row', '1000' Ostatni parametr: on, off, liczba 24 7000 określająca limit Domyślny limit do 256 (przy opcji 'on') - 9 -

Tabele Można utworzyć: 2 miliardy tabel w bazie danych 1024 kolumny w tabeli 8060 bajtów w wierszu (nie licząc typów text, image) Każda kolumna w tabeli może mieć inne collation Można tworzyć kolumny wyliczeniowe są to kolumny wirtualne dzięki nim znacznie mogą się uprościć zapytania - 10 -

Tabele Przykład sqlserver2000-02-01.sql - 11 -

Tabele Automatyczne generowanie wartości dla kluczy właśność IDENTITY Składnia CREATE TABLE nazwa (nazwa_kolumny typ_danych [ IDENTITY [(seed seed, increment)]] NOT NULL ) Ograniczenia w tabeli możliwa jest tylko jedna kolumna z tą własnością może być używana w połączeniu z typami całkowitymi (int, bigint, smallint, tinyint), decimal, numeric, ale te dwa typy parametr scale muszą mieć ustawiony na 0 wartości kolumny nie mogą być uaktualniane nie są dozwolone wartości NULL - 12 -

Tabele Automatyczne generowanie wartości dla kluczy właśność IDENTITY c.d. Inne właśności ident_seed i ident_incr zwracają wartość startową i krok zmienna @@identity zwraca ostatni wygenerowany numer w ramach sesji (połączenia) funkcja scope_identity zwraca ostatni wygenerowany numer w ramach tego samego zasięgu (zasięg tworzy procedura, wyzwalacz, funkcja lub wsad) ident_current zwraca ostatni wygenerowany numer w ramach wszystkich sesji i zasięgów dostęp do kolumny z tą własnością jest przez identitycol - 13 -

Tabele Automatyczne generowanie wartości dla kluczy właśność IDENTITY c.d. Za pomocą funkcja dbcc checkident można sprawdzić bieżącą wartość licznika ustawić nową wartość licznika przy kolejnym pobraniu wartość będzie licznik+krok Składnia DBCC CHECKIDENT ( 'nazwa_tabeli tabeli' [, { NORESEED { RESEED [, nowa_wartosc wartosc ] } } ] ) - 14 -

Tabele Automatyczne generowanie wartości dla kluczy typ uniqueidentity i funkcja newid() Poprzez tą kombinację tworzone są unikalne identyfikatory (unikalne na caaałym świecie) Identyfikator to 16 bajtowa wartość binarna reprezentowana przez następujący napis: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx stosuje się to poprzez kombinację typu z klauzulą default, w której jest funkcja newid() - 15 -

Tabele Przykłady sqlserver2000-02-02.sql sqlserver2000-02-03.sql - 16 -

Integralność danych Rodzaje integralności Na kolumny (domain) realizowane przez klauzule DEFAULT CHECK REFERENTIAL Na tabelę (entity) realizowane przez klauzule PRIMARY KEY (zabronione nulle) UNIQUE (dopuszczony null) Zależności (referential) realizowane przez klauzule FOREIGN KEY CHECK - 17 -

Integralność danych Kilka uwag dla primary key, unique jest tworzony automatycznie indeks dla foreign key taki indeks nie jest tworzony przy tworzeniu wyrażenia LIKE możemy użyć % dowolny ciąg znaków _ dowolny pojedynczy znak [ ] - jeden znak z listy [^ ] - jeden znak spoza listy - 18 -

Integralność danych Zalecane nazewnictwo więzów integralności primary key PK_nazwa unique U_nazwa check CK_nazwa foreign key FK_nazwa default DF_nazwa Przykłady constraint PK_imie_nazwisko primary key (imie, nazwisko) constraint CK_dataur check (dataur<getdate()) constraint FK_emp_dept foreign key (DeptId) references dept(deptid) - 19 -

Integralność danych Wyłączanie więzów integralności wyłączyć można tylko CHECK i FOREIGN KEY pozostałe więzy trzeba usunąć i utworzyć na nowo wyłączanie może być pomocne przy wczytywaniu danych z zewnętrznego źródła jak włączamy i wyłączamy ALTER TABLE nazwa { CHECK NOCHECK } CONSTRAINT { ALL nazwa_więzu[,...] } - 20 -

Integralność danych Weryfikacja więzów integralności Służy do tego poleceni dbcc checkconstraints Składnia DBCC CHECKCONSTRAINTS [(( 'table_name' table_name' 'constraint_name'' )]) [ WITH ALL_CONSTRAINTS ] Znaczenie opcji podamy tabelę sprawdzane są więzy w danej tabeli podamy wiąz sprawdzany jest więz w danej tabeli (nazwa więzu jednoznacznie wyznacza tabelę) all_constraints sprawdzane będą wszystkie więzy (nie tylko włączone) - 21 -

Integralność danych Przykład sqlserver2000-02-04.sql - 22 -

Integralność danych Wartości domyślne zdefiniowane w bazie danych Wartość definiujemy raz, a może być wykorzystywana wiele razy Utworzenie poprzez polecenie create default Składnia CREATE DEFAULT nazwa AS wyrażenie Wartości domyślną możemy związać poprzez procedurę sp_bindefault odwiązać poprzez procedurę sp_unbindefault - 23 -

Integralność danych Wiązanie wartości domyślnej poprzez procedurę sp_bindefault Składnia sp_bindefault 'nazwa_default' nazwa_default', 'nazwa_obiektu' [, future_only] Znaczenie opcji nazwa_default nazwa wiązanej wartości domyslnej nazwa_obiektu nazwa kolumny postaci tabela.kolumna lub nazwa typu danych future_only podanie opcji sprawi, że wartość domyślna będzie obowiązywać w obiektach (tabelach) dopiero utworzonych po tym wiązaniu (domyślnie obowiązuje wszędzie, również w obiektach utworzonych wcześniej) - 24 -

Integralność danych Odwiązanie wartości domyślnej poprzez procedurę sp_unbindefault Składnia sp_unbindefault 'nazwa_obiektu'' [, future_only] Znaczenie opcji nazwa_obiektu nazwa kolumny postaci tabela.kolumna lub nazwa typu danych future_only podanie opcji sprawi, że wartość domyślna przestanie obowiązywać w obiektach (tabelach) dopiero utworzonych po tym odwiązaniu. W obiektach utworzonych wcześniej będzie obowiązywać dalej. - 25 -

Integralność danych Tworzenie reguł w bazie danych Reguły pozwala określić dopuszczalne wartości w kolumnie tabeli Definicja reguły może zawierać dowolne wyrażenie akceptowalne w klauzuli WHERE Składnia CREATE RULE nazwa AS wyrażenie Kilka uwag w wyrażeniu może wystąpić jedna zmienna i to ona musi spełniać żadany warunek wyrażenie nie może się odwoływać do zewnętrznych obiektów, np. kolumn z innych tablic - 26 -

Integralność danych Wiązanie reguły poprzez procedurę sp_bindrule Składnia sp_bindrule 'reguła', 'obiekt' [, 'futureonly_flag' ] Znaczenie opcji reguła nazwa wiązanej reguły obiekt nazwa kolumny postaci tabela.kolumna lub nazwa typu danych future_only podanie opcji sprawi, że reguła będzie obowiązywać w nowych obiektach (tabelach), inaczej, zapobiega nałożeniu reguły na tabele już istniejące (mogłoby to zaburzyć istniejące zależności) - 27 -

Integralność danych Odwiązanie reguły poprzez sp_unbindrule Składnia sp_unbindrule 'obiekt' [, 'futureonly_flag' ] Znaczenie opcji obiekt nazwa kolumny postaci tabela.kolumna lub nazwa typu danych future_only podanie opcji sprawi, że reguła przestanie obowiązywać w nowych obiektach (tabelach), istniejące więzy pozostaną - 28 -

Integralność danych Usuwanie wartości domyślnej i reguły Służą do tego polecenia drop default nazwa [,...] drop rule nazwa [,...] Czego używać więzy reguły i defaults wyzwalacze typy danych funkcjonalność średnia niska wysoka niska obciążenie niskie niskie średnie-wysokie niskie - 29 -

Integralność danych Przykład sqlserver2000-02-05.sql - 30 -