MSSQL szerver 2005/2008.

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
1 Informatikai Szakképzési Portál Adatbázis kezelés Az SQL nyelv elemei.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
Delphi programozás alapjai
SQL Structured Query Language
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
PL/SQL I. ADATBÁZIS ALAPÚ RENDSZEREK.  PL/SQL = Procedural Language/SQL  utasítást ; zárja le  PL/SQL blokk lezárása: /  kis- és nagybetű egyenértékű.
Triggerek II. ADATBÁZIS ALAPÚ RENDSZEREK.  Az Oracle kifinomult módon támogatja a sorszámozások generálását  Szekvencia: olyan adatbázis-objektum, amely.
Adatbázis alapú rendszerek
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
Adatbáziskezelés Horváth Ernő 1. Elérhetőségek Kiss Jenő Horváth Ernő Tanszéki honlap
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Kényszerek megadása. Indexek kezelése.
Nézettáblák létrehozása, módosítása és törlése
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
Az SQL nyelv alapjai.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
DDL – Adatdefiníciós nyelv
Microsoft Visual FoxPro 9.0
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
SQL.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
ORACLE ORDBMS adminisztrációs feladatok 3. rész dr. Kovács László 2004.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Adatbázis rendszerek II
Ma az un. Relációs adatmodelleket használjuk.
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
Adatbázis-kezelés Takács Gábor rs1.sze.hu/~takacsg Konzultáció: kedd 11:00–12:00.
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis rendszerek I
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
Adatbázis alapú rendszerek
Triggerek gyakorlás.
Adatbáziskezelés Szi Brigitta Tanszéki honlap
Adatbázisok SQL.
Triggerek Kalmár György.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

MSSQL szerver 2005/2008

Szerver és kliens gép közötti kommunikáció

Adattárolási modellek OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó használja és valós időben cserélnek benne adatokat OLAP: OnLine Analitical Processing az adatok rendezve és összesítve találhatók meg, mely a gyors adatfeldolgozást teszi lehetővé szintén valós időben

Mire van szükség szerver és kliens oldalon?

komunikáció A kliens alkalmazás egy kérést generál. Ezután az alkalmazás az operációs rendszert (Windows) hívja segítségül, hogy a lekérdezést elküldje a hálózaton. A szerveren lefut az SQL lekérdezés, előállnak az adatok. Az adat előkészül a hálózaton való továbbításra. Optimalizálódik a küldési folyamat és az adatforma. A lekérdezés elküldése a hálózaton, a kliens fogadja a választ és a felhasználónak megjeleníti.

Adatbázis a szerveren Rendszer adatbázis: az MSSQL Szerver egészéről találunk információt Felhasználói adatbázis: maga a felhasználó hozza létre. Ebben az adatbázisban tudunk mi dolgozni

Bejelentkezés: a biztonság első foka

A felhasználók alapvetően három csoportba oszthatók, attól függően, hogy milyen jogaik vannak a szerveren: Fix Szerveri Jogok a Fix Adatbázis Jogok Felhasználó Által Definiált Adatbázisbeli Jogok

Sikeres és sikertelen csatlakozási kísérlet

Az adatbázis megtervezésénél a következő javasolt lépéseket célszerű betartani: Meghatározzuk az adatbázis célját Meghatározzuk az egyedeket, a táblákat, a tárolandó értékek típusát, attribútumát. Elsődleges és idegen kulcsot definiálunk. Kialakítjuk a kapcsolatokat a táblák között. Teszteljük az adatbázist működés közben. a tárolt eljárások biztonsági/hozzáférési jogosultságok

Adatbázisok létrehozása CREATE DATABASE database_name [ON { [PRIMARY] (NAME = logical_file_name, FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = {max_sizeUNLIMITED}] [, FILEGROWTH = growth_increment] ) } [,...n] ] [LOG ON { (NAME = logical_file_name, FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = {max_sizeUNLIMITED}] [, FILEGROWTH = growth_increment] ) } [,...n] ] [COLLATE collation_name]

CREATE DATABASE Sample ON PRIMARY ( NAME=SampleData, FILENAME='c:\Program Files\ Microsoft SQL Server\MSSQL\Data\Sample.mdf', SIZE=10MB, MAXSIZE=15MB, FILEGROWTH=20%) LOG ON ( NAME=SampleLog, FILENAME='c:\Program Files\ Microsoft SQL Server\MSSQL\Data\Sample.ldf', SIZE=3MB, MAXSIZE=5MB, FILEGROWTH=1MB) COLLATE SQL_Latin1_General_Cp1_CI_AS

Fájlcsoportokról egyes fájlokat és lekérdezéseket gyorsabban el tudunk érni, ha a fájl és/vagy adatbázis mérete lecsökken rendszeradminisztrátorok könnyebben tudnak biztonsági másolatokat készíteni

Adatbázis változtatása ALTER DATABASE Sample MODIFY FILE ( NAME = 'SampleLog', SIZE = 15MB) GO ALTER DATABASE Sample ADD FILE (NAME = 'SampleData2' , FILENAME='c:\Program Files\ Microsoft SQL Server\MSSQL\Data\Sample2.ndf', SIZE=15MB , MAXSIZE=20MB)

Adatbázis és fájlok tömörítése Teljes adatbázis lecsökkentése használhatjuk az SQL Server Enterprise Manager-t vagy a Database Consistency Checker (DBCC) SHRINKDATABASE utasítását. DBCC SHRINKDATABASE (database_name [, target_percent] [, {NOTRUNCATE | TRUNCATEONLY}]) DBCC SHRINKDATABASE (SampleData, 25)

Típusok Jellemző adattípusok SQL Server által biztosított típusok ANSI megfelelő Foglalt byte-ok száma Integer int bigint smallint, tinyint integer  4 8 2, 1 egész szám decimal[(p[, s])] numeric[(p[, s])] dec 2–17 valós szám float[(n)] real double precision, float[(n)] for n=8-15 float[(n)] for n=1-7 8 4 pénzügyi money, smallmoney 8, 4 dátum és idő Datetime, smalldatetime 8 4

Típusok karakter char[(n)] varchar[(n)] text character[(n)] char VARYING[(n)] character VARYING[(n)]  0–8000 0–2 GB Unicode karakterek nchar[(n)] nvarchar[(n)] ntext  (4000 karakter) bináris binary[(n)] varbinary[(n)] binary VARYING[(n)] kép image gobális azonosítók uniqueidentifier 16 speciális bit, cursor, uniqueidentifier timestamp sysname table sql_variant rowversion 1, 0–8 8 256 0–8016

Táblák létrehozása CREATE TABLE table_name column_name data type [COLLATE<collation_name>] [NULL | NOT NULL] | column_name AS computed_column_expression [,….n] CREATE TABLE dbo.CategoriesNew (CategoryID int IDENTITY (1, 1) NOT NULL, CategoryName nvarchar(15) NOT NULL, Description ntext NULL, Picture image NULL)

Tábla módosítása

Adatok kezelése INSERT INTO table_name VALUES [<values>] INSERT INTO Categories VALUES („Smith”,”$500”,”ID520444”,”none”) DELETE FROM <table_name> WHERE <condition> DELETE FROM Categories WHERE ’Customer_name’ = ’Smith’ UPDATE <table_name> SET column_name=’values’ [, column_name =’values’,…] Generált érték: az Identity tulajdonságot, a NEWID függvényt, vagy az uniqueidentifier adattípust használhatjuk CREATE TABLE table (column_name data_type [ IDENTITY [(seed, increment)]] NOT NULL )

SQL Server Management Studio Express

Indexek Adatelérés kétféle módon: 1. Tábla átvizsgálással Table scan, nagyon lassú 2. indexek segítségével a. felgyorsítják az adatok keresését b. a csoportosító c. rendező utasításokat

DE az Indexek sok lemezterületet és fenntartást igényelnek adatok módosításakor az indexek is automatikusan frissülnek

Indexek létrehozása indexeink ne legyenek túl nagyok -> olyan oszlopokon hozunk létre indexeket, melyek maguk is kicsik. a rövid indexek általában hatékonyabbak és hatásosabbak a nagyobbaknál

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) [WITH [PAD_INDEX ] [[,] FILLFACTOR = fillfactor ] [[,] IGNORE_DUP_KEY ] [[,] DROP_EXISTING ] [[,] STATISTICS_NORECOMPUTE ] [[,] SORT_IN_TEMPDB ] ] [ON filegroup ] Robert Vieira: Kezdőkönyv az MSSQL2005 programozásához

Pl.: CREATE CLUSTERED INDEX CL_lastname ON employees(lastname) Törlés: DROP INDEX 'table.index | view.index' [, ...n ] Drop index cl_lastname

Clustered = csoportosított indexek Az adatok fizikai tárolása egy előre meghatározott sorrend szerint történik. Az egyes sorok egyedi azonosítóját a csoportosított indexeket meghatározó oszlopok biztosítják.

Indexek fenntartása Fregmentálódás – töredezetté válás Adatok felvitelekor, módosításakor vagy törlésekor Karbantartás (Index Tuning Varázsló) 1. Törlés – létrehozás 2. újrarendezés DBCC INDEXDEFRAG ( { database_name | database_id | 0 } , { table_name | table_id | 'view_name' | view_id } , { index_name | index_id } ) [ WITH NO_INFOMSGS ]

A triggerek táblához kötődnek tárolt eljárások egy speciális fajtája lefut valahányszor, amikor adatot próbálunk módosítani a triggerek jó lehetőséget biztosítanak komplex üzleti szabályok betartására

A triggerek használata elsődleges feladata és előnye, hogy más, pl. a CHECK megszorításnál több és komplexebb megoldást nyújtanak adatok ellenőrzésére és így az adatintegritás megőrzésére is. Triggerek használatával azt is meg tudjuk állapítani, hogy az INSERT, UPDATE vagy DELETE parancsok kiadása után egy tábla mely sorait érintette változás.

A triggerek Transact-SQL utasításokat tartalmaznak úgy, mint a tárolt eljárások CREATE TRIGGER [owner.] trigger_name ON [owner.] table_name [WITH ENCRYPTION] {FOR | AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE} AS [IF UPDATE (column_name)...] [{AND | OR} UPDATE (column_name)...] sql_statements}

CREATE TRIGGER Empl_Delete ON NewEmployees FOR DELETE AS IF (SELECT COUNT(*) FROM Deleted) > 1 BEGIN RAISERROR( 'You cannot delete more than one employee at a time.', 16, 1) ROLLBACK TRANSACTION END DELETE FROM Employees WHERE EmployeeID > 6 DELETE FROM Employees WHERE EmployeeID = 6

Trigger deaktiválása ALTER TABLE table {ENABLE | DISABLE} TRIGGER {ALL | trigger_name[,…n]} DROP TRIGGER trigger_name

@@IDENTITY rendszerfüggvény Identity típusú mező értékét adja Az utolsó insert parancs által generált. Create table test (id int identity primary key) DECLARE @ident int INSERT INTO test DEFAULT VALUES Set @ident = @@identity …

@@ROWCOUNT Az utolsó lekérdezés által érintett sorok száma Declare @rc int Select * from test Select @rc = @@rowcount Print ‘a sorok száma: ‘+cast(@rc as varchar(10))

kurzorok DECLARE @keycol AS INT, @filler AS CHAR(200); DECLARE C CURSOR FOR SELECT keycol, filler FROM dbo.T1; OPEN C FETCH NEXT FROM C INTO @keycol, @filler; WHILE @@fetch_status = 0 BEGIN -- Process data here FETCH NEXT FROM C INTO @keycol, @filler; END CLOSE C; DEALLOCATE C;

Tárolt eljárások Create procedure|proc eljárás neve [Paraméternév adattípus] [= alapértelmezett érték] [OUT paraméternév típus [= alapért. érték]] AS <kód>

Create proc spShip AS select * from Ship Végrehajtása: Exec spShip

paraméterek Név : @parname [as] adattípus[= alapért. Érték| NULL] [OUTPUT|OUT] Create proc spInsertS @cname nvarchar(50) = ‘alapérték’, @phone nvarchar(20) = NULL AS Insert into Sh Values (@cname, @phone)

Kimeneti paraméter Create Proc spIns @custom int = 1, @nev varchar(30), @kapott_id int OUT AS Insert into ord values (@custom, @nev) Select @kapott_id = @@identity

Vezérlő utasítások IF.. ELSE CASE GOTO WHILE

IF <logikai kifejezés> <SQL utasítás> | BEGIN <kódsor> END [ELSE <SQL utasítás> | BEGIN <kódsor> END] CASE <bemeneti kifejezés> WHEN <összehasonlítás> THEN <eredmény kif.> … [ELSE <eredméyn kif.>] END

Select top 10 orderId, orderid % 10 as ‘Last Digit’, Position = CASE orderid % 10 WHEN 1 THEN ‘First’ WHEN 2 THEN ‘Sec’ WHEN 3 THEN ‘Third’ WHEN 4 THEN ‘Fourth’ ELSE ‘Something’ END FROM orders

WHILE <logikai kif> <SQL utasítás> | BEGIN <utasításblokk> [BREAK] <SQL utasítás| utasításblokk> [CONTINUE] END