Views etc. Databaser

Relaterede dokumenter
Begrænsninger i SQL. Databaser, efterår Troels Andreasen

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus, byer og regning..

DB undervisning 01-01

Conceptual, logic, physical

Database. lv/

A11: Last Year s Exam

Fra ER-Diagram til Relationel model i 7 step

Databasesystemer. IT Universitetet i København 16. januar 2006

Introduktion til SQL queries

3. semester, 2. projekt: Database

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Database design for begyndere

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

Databasesystemer. IT Universitetet i København 7. juni 2005

Data lagring. 2. iteration (implement backend)

Eksamen, DSDS, efterår 2007

Eksamen, DSDS, efterår 2008

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

Projekt titel. Projekt navn. Gruppe medlemmer. Klasse/Gruppenummer. Databaseprojekt 1. Ferrari

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men

Ratingsystem i PHP og MySQL

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Introduktion til programmering

Eksamen, DSDS, forår 2009

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer:

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order

En Kort Introduktion til Oracle

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Reeksamen, DSDS, forår 2008

1. Basal select med (stjerne)

SQL Server 2016 Data Adgang

Database programmerings tips

(fig.1. Eksempel på en almindelig entity)

Databaser Obligatorisk opgave 1

Databasesystemer fra forskellige synsvinkler

Søren Løbner (lobner) ddb Databaser

Eksamen, DSDS, forår 2008

Få sin querystring til at fungere. (Nybegyndere)

The Design Diaries. Link til blog

Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, "Bjarne Larsen");

SQL-opgaver 5 løsning

-- Først opretter vi databasen CREATE DATABASE projekt_database; -- og så benytter vi den: USE projekt_database;

Jayne Alice Jensen [Link til portfolio]

Tagwall med Php & MySQL

Obligatorisk opgave 2. SQL, relationel algebra og relationel kalkyle

OPC ACCESS HEARTBEAT 1

Databaseadgang fra Java

Databasesystemer. IT Universitetet i København 8. juni 2006

SQL Server 2008 Spatiale eksempler. Plan & Miljø, GIS

Elaboration fase 2. semester projekt Gruppe 4

Projekt 1 - Database. Cphbusiness Lyngby Multimediedesigner, 3. semester. MulB13e, gruppe 4

Efterår 2002 Note 10. Temaopgave

Undervisningsbeskrivelse

3. SEMESTER 2. PROJECT MULB Gruppe september 2015

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler.

Databaser. Område / Specialefag nr Database, design og programmering Datatekniker Infra & Prog IT-Supporter AMU Kursister

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

MsSQL: Basal performance tuning, part 1

Projekt: Database. Multimedia Design: Semester 3 - projekt 01. Sabine Larsen cph-sl176@cphbusiness.dk. Anastasia Keller cph-ak186@cphbusiness.

Opgave 1 Basal select med (stjerne)

Database optimering - Indeks

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

DML, Foresprgsler Relationel algebra + noget mere! af skemaer (overlap m. DDL)

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

Sådan får du en kirkegård på nettet i DKI-modellen!

Relationel Algebra og SQL

Gæstebog med validering opbygget med MySQL

Eksempel på en database: studenter, kurser, eksamener

Design Diaries.

Afleveringsopgave. Efterår 2001

Brugerguide til Stamdatamodulets administrator-gui KOMBIT

1. Indholdsfortegnelse

Begrynder til at lave log ind system

Databasesystemer. IT Universitetet i København 8. juni 2006

Appendix C - Databeskrivelse

Anne Randorff Højen

Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

Uploade billeder eller andre filer ved hjælp af php og mysql

Objektorientering og databaser

MODUL 2 ASSIGNMENT 3 PHP/DB SYSTEM 9. OKTOBER 2016

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

Software Projekt NoSQL vs RMDB

Obligatorisk opgave i objektorienteret analyse og design

Informal Design Guidelines. March 23, 2008 DB:EER Model - 1 1

Workshop Persistence

Vejledning til Blackboards portfolio værktøj

SQL for MySQL-begyndere

Database-sproget SQL. SELECT A1,, Ar FROM R1,, Rk WHERE B med. SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Introduktion til OPC Access

HTML, PHP, SQL, webserver, hvad er hvad??

Transkript:

Views etc. Databaser

Views Med Views kan vi gemme nogle af de lange select sætninger. I vores eksempel fra tidligere er det f.eks. forbundet med en del besvær at finde telefon nr og bilmærker for en sælger da det kræver to JOINs. Ved at lave et View kan man gemme SELECT sætningen en gang for alle sådan her Create View SaelgerView AS SELECT MedarbNr,Navn,StartDato,Email,Nr AS TelefoonNr, RegNr AS Bil,Maerke,RegAar AS BilRegAar FROM Saelger JOIN Bil ON Saelger.MedarbNr = bil.saelger JOIN TelefonNr ON TelefonNr.Saelger = Saelger.MedarbNr; Efterfølgende gør man blot sådan for at anvende viewet Select * from SaelgerView; Resultat Sælger Navn AnsættelsesDato Email MedarbejderNr TelefonNr Bil RegistreringsNr Type RegistreringsÅr Sælger (FK) TelefonNr Nr Sælger (FK)

Insert via View Bemærk at et View kun giver et udtræk af databasens tabeller og ikke er en tabel i sig selv Derfor er det normalt ikke muligt at anvende insert og delete på views, dog er der visse undtagelse hvor det er muligt, men det vil jeg ikke komme nærmere ind på her

Opgave Lav views som viser Kunder incl. oplysninger om hvilken sælger de betjenes af og sælgerens navn og telefon nummer Lav view som viser varer og hvilken kunde de købes af

ON DELETE CASCADE CREATE TABLE Saelger( Navn NVARCHAR(20)NOT NULL, StartDatoDATETIMENOT NULL, EmailNVARCHAR(20)NOT NULL, MedarbNrINTNOT NULL, PRIMARY KEY(MedarbNr) ); CREATE TABLE TelefonNr( ); Nr NVARCHAR(8) NOT NULL, SaelgerINT NOT NULL, PRIMARY KEY(Nr), I eksemplet her laves først tabellen sælger og derefter TelefonNr der har Saelger som FK. Efterfølgende indsættes en sælger og en telefon med reference til sælgeren hvorefter vi forsøger at slette sælgeren. Normalt vil dette ikke være muligt, men fordi vi har indsat ON DELETE Cascade vil den blot slette de numre som referere til Sælgeren når Sælgeren slettes. FOREIGN KEY(Saelger) REFERENCES Saelger(MedarbNr) ON DELETE Cascade INSERT INTO Saelger (Navn, StartDato,Email,MedarbNr) VALUES ('Hans','2001-1- 1','Hans@mail.dk',1); INSERT INTO TelefonNr (Nr, Saelger) VALUES ('12345678',1); DELETE FROM Saelger WHERE MedarbNr = 1;

Opgave Forsøg på sælger databasen at slette en Vare Ret i databasen ved at tilføje de nødvendige ON DELETE sådan at en Vare kan slettes uden problemer Ret derefter også sådan at en Sælger kan slettes uden problemer. Dette er nok ikke praktisk i virkeligheden men prøv alligevel

SELECT DISTINCT Afprøv selv forskellen på SELECT Navn FROM KoebesAf JOIN Kunde ON Kunde.KundeNr = KoebesAf.Kunde OG SELECT DISTINCT Navn FROM KoebesAf JOIN Kunde ON Kunde.KundeNr = KoebesAf.Kunde

IDENTITY, AUTO_INCREMENT /* Opret tabellen Saelger */ CREATE TABLE Saelger ( Navn NVARCHAR(20) NOT NULL, StartDato DATETIME NOT NULL, Med IDENTITY kan man bestemme at databasen selv skal tælle værdien MedarbNr op hver gang der indsættes en ny. Email NVARCHAR(20) NOT NULL, MedarbNr INT IDENTITY,//Hedder AUTO_INCREMENT i MySQL PRIMARY KEY(MedarbNr) ); INSERT INTO Saelger (Navn,StartDato,Email) VALUES ('Ole','1-1-1','ole@mail.dk'); Bemærk at MedarbNr nu ikke længere er med.

Unique /* Opret tabellen Saelger */ CREATE TABLE Saelger ( ); Navn NVARCHAR(20) NOT NULL, StartDato DATETIMENOT NULL, Email NVARCHAR(20) NOT NULL, MedarbNr INT NOT NULL, UNIQUE (Navn), PRIMARY KEY(MedarbNr) Med UNIQI kan vi bestemme at en attribut skal være unik selv om den ikke er nøgle attribut. Derved kan vi anvende den som reference til foreign key /* Opret tabellen TelefonNr */ CREATE TABLE TelefonNr ( ); Nr NVARCHAR(8) NOT NULL, SaelgerNavn NVARCHAR(20) NOT NULL, PRIMARY KEY(Nr), FOREIGN KEY(SaelgerNavn) REFERENCES Saelger(Navn)

Stored procedure CREATE PROCEDURE InsertSaelger @navn NVARCHAR(20), @email NVARCHAR(20), @startdato DATETIME, @saelgernr INT, @telefonnr NVARCHAR(8) AS GO IF NOT EXISTS (SELECT Navn FROM Saelger WHERE Saelger.MedarbNr = @saelgernr) BEGIN INSERT INTO Saelger(Navn,Email,StartDato,MedarbNr)VALUES(@navn,@email,@startDato,@saelgerNr); END INSERT INTO TelefonNr(Nr,Saelger) VALUES (@telefonnr,@saelgernr); EXECUTE InsertSaelger 'Jens', 'jens@mail.dk', '2001-1-1',4,'67891234'; EXECUTE InsertSaelger 'Jens', 'jens@mail.dk', '2001-1-1',4,'67891235'; Med stored procedure kan man automatiserer nogle processer. Her er f.eks. vist hvordan vi indsætter Saelger og telefon nr i en og samme arbejdsgang.