Frågeutveckling inom MSSQL Presentation slide for courses, classes, lectures et al. Frågeutveckling inom MSSQL Marcus Medina
Dagens visdomsord ” När du förändrar ditt sätt att betrakta saker förändras de saker du betraktar” - Okänd
Dataintegritet Vad innebär det? Informationen i databasen ska vara konsekvent med de regler som gäller Exempelvis får en anställd inte tillhöra en avdelning som inte finns Orimliga värden får inte förekomma Exempel Person i medlemsregistret som är 350 år gammal
Dataintegritet och villkor Villkor för att begränsa riskerna för att datan blir fel callas Constraint Från engelskan : Constrain, hålla fast, hindra, stoppa Constraint ska alltså hindra oss från att lägga in felaktig data
Constraints NOT NULL CHECK UNIQUE Primary Key Ett fält får inte vara null CHECK En logisk kontroll av datan (ålder>15 and ålder<75) UNIQUE Ser till att ingen rad data blir en dubblett Primary Key Ingen rad får ha samma ID
Constraints Foreign key Default FK Nyckeln måste finnas innan raden får skapas Default Ser till att kolumnen får ett standardvärde om inget anges Se även: http://www.w3schools.com/sql/sql_constraints.asp
Transactions Regler för Transactions ACID Atomicity: Allt eller inget, misslyckas en transaction så sparas inget Consistency: Transaction följer alla regler (constraints, triggers mm) som finns för att kontrollera datan Isolation: Ser till att alla Transactions sker seriellt, den ena efter den andra. Durability: När transaction är avslutat ska informationen vara sparad och säkrad mot crasch
Transactions Test med att lägga in, ta bort och ändra data med rollbacks och commit Olika nivåer av Transactioner Bra när man inte är säker på om datan matchar reglerna Bra när man arbetar mot olika tabeller samtidigt och vill vara säker på att allt, eller inget, sparas
Vyer Än så länge har vi skapat vyer med vyeditor Lätt att skapa med SQL create view vMovie as SELECT Characters.name, Movies.name AS Movie FROM Characters LEFT JOIN Movies ON Characters.fk_movieID = Movies.movieID GO
Funktioner Funktioner har mer eller mindre samma funktion som funktioner i C# har de förser en med extralösningar som inte finns annars Beräkningar Sökningar Mm Create function {namn} ({param} {typ}) returns {typ} as BEGIN {din kod} END
Stored procedures Färdigkompilerade för snabb körning Tar emot parametrar Kan köra funktioner Behöver inte returnera data Används till Dubbelchecka input Uppdatera data Massuppdateringar eller inserts
Triggers Triggers körs bara vid insert, delete eller update Den körs bara, den får ingen information i övrigt Den vet inte något om senaste ID som skapats, ändrats eller raderats Fel i triggern gör att Insert/update/delete inte går igenom
Läxa Dagens: Beginning T-SQL sida 309-377 Till måndag: 378-401 (XML) Kolla runt på w3Schools www.w3schools.com/sql/ The Manga Guide to Databases Resten av boken
Go Ninja!