Anne Randorff Højen

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

Introduktion til programmering

Data lagring. 2. iteration (implement backend)

Database. lv/

DB undervisning 01-01

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

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

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

Introduktion til SQL queries

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

Skriftlig eksamen i kurset. Informationssystemer

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

Database kursus Forår 2013

En Kort Introduktion til Oracle

Views etc. Databaser

Fra ER-Diagram til Relationel model i 7 step

1. Basal select med (stjerne)

3. semester, 2. projekt: Database

Eksempel på en database: studenter, kurser, eksamener

Kursus/workshop: SQL

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

The Design Diaries Project 3 2. Semester. Blog om designprincipper

Unitel EDI MT940 June Based on: SWIFT Standards - Category 9 MT940 Customer Statement Message (January 2004)

Databaseadgang fra Java

Databasesystemer fra forskellige synsvinkler

Jayne Alice Jensen [Link til portfolio]

Søren Løbner (lobner) ddb Databaser

Anvisning i aflevering af bitemporale data

Eksamen, DSDS, efterår 2007

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

SQL for MySQL-begyndere

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

3. SEMESTER 2. PROJECT MULB Gruppe september 2015

Eksamen, DSDS, efterår 2008

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune

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

Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0

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

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Software Projekt NoSQL vs RMDB

Introduktion til programmering

Databaser Obligatorisk opgave 1

Database design for begyndere

Aktivering af Survey funktionalitet

SQL-opgaver 5 løsning

SQL Server 2016 Data Adgang

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

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

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

User Manual for LTC IGNOU

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

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

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

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

PROC TRANSPOSE. SAS-tabellen - hensigtsmæssig lagring af data. Copyright 2011 SAS Institute Inc. All rights reserved.

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Skriftlig Eksamen Beregnelighed (DM517)

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

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

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

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

MapBasic brugergruppe. Geografiske objekter. Peter Horsbøll Møller Senior Systems Engineer April 2013

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

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

Database. Pr jekt. Hold CLmul-a14e Gruppe 3 3. semester Vejledere: Tue Becher Ivan R. Frederiksen

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

DEN GODE MODEL: OPSAMLING PÅ MODELLERINGSOPGAVER OG INTRO TIL MODELLERINGSALTERNATIVER

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

MsSQL: Basal performance tuning, part 1

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

Relationel Algebra og SQL

Rigtig SQL Programmering

Transkript:

Anne Randorff Højen arra@hst.aau.dk

Forelæsning og opgaver: Introduktion til SQL pause Forlæsning og Opgaver: SQL 2. del pause Introduktion til PhPMyAdmin Opgaver

SQL

Der modelleres ud fra reelle relationer og entiteter Det defineres i designet hvorledes databasen skal opføre sig ved opdatering og slet Her ud fra kan man så på et givet tidspunkt udsøge den relevante information fx: Hvilke afdelinger de enkelte læger er tilknyttet Hvilke faggrupper og roller der eksisterer på en afdeling Løn, operationsstatistik, ansvarsområder, ventetider, osv....og informationerne registreres kun ét sted, men kan bruges i flere sammenhænge

Anvende SQL til at indsætte og udtrække data Forstå hvornår det er en fordel at anvende SQL

Et forespørgselssprog Brugerens indgangsvinkel/grænseflade til databasen International standard: Databaser taler SQL To delsprog i SQL: Data Definition Language Data Manipulation Language: Forudsætter at databases logiske struktur er tilvejebragt, dvs: - at man har designet databasen ER-diagrammer og normalisering og at disse er dokumenteret - at man har konstrueret en database (fx i LibreOffice), hvis man ikke ønsker at benytte Data Definition Language, delen [http://www.w3schools.com/sql/]

Her bruges sql

Den basale måde hvormed vi kan kommunikere med en relationsdatabase Structured Query Language Nu en international standard, der bare hedder SQL ANSI / ISO SQL-92, SQL-99 og SQL-2003 Et deklarativt sprog Man beskriver hvad man vil have, ikke hvordan det skal findes!

Postnumre Postnr Bynavn Postnumre Postnr Bynavn 9000 Aalborg 9760 Vrå 8000 Århus C 4180 Sorø 7430 Ikast 9000 Aalborg 9760 Vrå 8000 Århus C 4180 Sorø 7430 Ikast

Data Definition Language (DDL) CREATE ALTER DROP (DESCRIBE (RENAME Opret tabel Ændre tabel Nedlæg tabel Beskriv tabel) Omdøb tabel) Postnumre Postnr Bynavn Vedrører tabelstrukturen - ikke de faktiske data i tabeller

Data Manipulation Language (DML) INSERT UPDATE DELETE SELECT (MERGE) (TRUNCATE) 9000 Aalborg 9760 Vrå 8000 Århus C 4180 Sorø 7430 Ikast Vedrører de faktiske data i tabeller

DDL - datastruktur CREATE ALTER DROP DESCRIBE DML - data INSERT UPDATE DELETE SELECT Postnumre Postnr Bynavn 9000 Aalborg 9760 Vrå 8000 Århus C 4180 Sorø 7430 Ikast

The SQL data-definition language (DDL) allows the specification of information about relations, including: The schema for each relation. The domain of values associated with each attribute. Integrity constraints Other information such as The set of indices to be maintained for each relations. Security and authorization information for each relation. The physical storage structure of each relation on disk.

char(n). Fixed length character string, with user-specified length n. varchar(n). Variable length character strings, with userspecified maximum length n. (https://dev.mysql.com/doc/refman/5.0/en/char.html) int. Integer (a finite subset of the integers that is machinedependent). smallint. Small integer (a machine-dependent subset of the integer domain type). numeric(p,d p,d). Fixed point number, with user-specified precision of p digits, with n digits to the right of decimal point. real, double precision. Floating point and double-precision floating point numbers, with machine-dependent precision. float(n). Floating point number, with user-specified precision of at least n digits.

An SQL relation is defined using the create table command: create table r (A 1 D 1, A 2 D 2,..., A n D n, (integrity-constraint 1 ),..., (integrity-constraint k )) r is the name of the relation each A i is an attribute name in the schema of relation r D i is the data type of values in the domain of attribute A i Example: create table physician( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2)) insert into physician values ( 10211, Smith, Emergency, 66000); insert into physician values ( 10211, null, Emergency, 66000);

not null primary key (A 1,..., A n ) foreign key (A m,..., A n ) references r Example: Declare ID as the primary key for instructor. create table physician( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2), primary key (ID), foreign key (dept_name) references department) primary key declaration on an attribute automatically ensures not null

Student Takes Course

create table student ( ID varchar(5), name varchar(20) not null, dept_name varchar(20), tot_cred numeric(3,0), primary key (ID), foreign key (dept_name) references department ); create table takes ( ID varchar(5), course_id varchar(8), semester varchar(6), year numeric(4,0), grade varchar(2), primary key (ID, course_id, semester, year), foreign key (ID) references student,

create table course ( course_id varchar(8) primary key, title varchar(50), dept_name varchar(20), credits numeric(2,0), foreign key (dept_name) references department ); Primary key declaration can be combined with attribute declaration as shown above

drop table student Deletes the table and its contents delete from student Deletes all contents of table, but retains table alter table alter table r add A D where A is the name of the attribute to be added to relation r and D is the domain of A. All tuples in the relation are assigned null as the value for the new attribute. alter table r drop A where A is the name of an attribute of relation r Dropping of attributes not supported by many databases

- Gå sammen to og to - Skriv på papir den nødvendige DDL for ERdiagrammet på næste slide - I har 15 min.

Forelæsning og opgaver: Introduktion til SQL pause Forlæsning og Opgaver: SQL 2. del pause Introduktion til PhPMyAdmin Opgaver

En typisk SQL query (forespørgsel) har følgende struktur: select A 1, A 2,..., A n from r 1, r 2,..., r m where P A i s representerer attributter r i s representerer relationer P er predikatet/betingelsen

Udtræk samtlige data fra en tabel: SELECT * FROM table_name Udtræk data fra bestemt kolonne i tabel: SELECT column_name(s) FROM table_name Eksempler: SELECT * FROM Postnumre SELECT Bynavn FROM Postnumre SELECT Postnr, Bynavn FROM Postnumre SELECT Postnr, Bynavn FROM Postnumre ORDER BY Bynavn Postnr Bynavn 9000 Aalborg 7430 9760 Ikast Vrå 4180 8000 Sorø Århus C 9760 4180 Vrå Sorø 8000 7430 Århus Ikast C

Medlemstabel Fornavn Efternavn Adresse Postnr By Tlf. Medlems -type Andrea Andersen Vestergade 7 1234 Udby 99123456 1 Birger Jensen Ryesgade 12 8000 Århus C 99456789 2 Bente Christensen Ryesgade 16 8000 Århus C 99456789 2 Camilla Troelsen Fjordvej 2 1234 Udby - 3 Carla Curie Østerallé 16 1234 Udby 99456123 1 Danny Dalum Vildbjergstræde 132 1234 Udby 98456357 2 Elna Jensen Fredensgade 34 8000 Århus C 86156864 2 Kontingent Medlems- Kontin- Medlems- type ID gent type 1 800 Elite 2 100 Passiv 3 400 Ungdom Viggo Højner Højner Alpeallé 1234 Udby 86453483 1 Helle Frederiksen Frederiksen Postvej 43 1234 Udby 86292979 2 Morten Mejlsing Mejlsing Havnegade 89 8000 Århus C 86282465 3 Haldur Nielsen Kirkegade 2 1234 Udby 31445625 1 Homer Hansen Hansen Banegårdspladsen 3 8000 Århus C 32458757 1 Hvordan vil jeres sql se ud hvis i vil trække følgende data ud: Fornavn og efternavn på alle medlemmer? Fornavn, efternavn og medlemstype på alle medlemmer, sorteret efter medlemstypen?

SELECT column_name(s) FROM table_name WHERE column_name operator value AND og OR Eksempler: SELECT * FROM Medlemtabel WHERE Efternavn = Jensen SELECT * FROM Medlemstabel WHERE Efternavn= Jensen AND Fornavn= Bente

Medlemstabel Fornavn Efternavn Adresse Postnr Tlf. Medlem s-type Vægt Andrea Andersen Vestergade 7 1234 9912345 6 1 59 Birger Jensen Ryesgade 12 8000 9945678 9 2 95 Bente Christensen Ryesgade 16 8000 9945678 9 2 56 Camilla Troelsen Fjordvej 2 1234-3 75 Carla Curie Østerallé 16 1234 Danny Dalum Vildbjergstræde 132 1234 Elna Jensen Fredensgade 34 8000 Viggo Højner Højner Alpeallé 1234 Helle Frederiksen Frederiksen Postvej 43 1234 Morten Mejlsing Mejlsing Havnegade 89 8000 Haldur Nielsen Kirkegade 2 1234 Homer Hansen Hansen Banegårdspladsen 3 8000 9945612 3 9845635 7 8615686 4 8645348 3 8629297 9 8628246 5 3144562 5 3245875 7 1 65 2 101 2 81 1 89 2 67 3 88 1 78 1 97 Kontingent Medlems- Kontin- type ID gent 1 800 Elite Medlems- type 2 100 Passiv 3 400 Ungdom Postnr-tabel Hvordan vil jeres sql se ud hvis I vil trække følgende data ud: Fornavn og efternavn på alle medlemmer der bor i Århus C? Alle informationer på medlemmer der vejer mere end 70 kg, sorteret efter fornavn? By Postnr Århus 8000 Udby 1234

Gennemsnit: SELECT AVG(column_name) FROM table_name Eksempel: SELECT AVG(Mål) FROM Spillere SELECT Navn FROM Spillere WHERE Mål>(SELECT AVG(Mål) FROM Spillere)

Mindste værdi: SELECT MIN(column_name) FROM table_name Største værdi: SELECT MAX(column_name) FROM table_name Tælle: SELECT COUNT(colum_name) From table_name

Indsætte data: INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...) INSERT INTO table_name VALUES (value1, value2, value3,...)

INSERT INTO Deltagere (DeltagerID, Fornavn, Efternavn, Nationalitet, Født) VALUES (2, "Justin", "Gatlin", "USA", 1982)

Eksempel fra tidligere: create table physician( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2)) Indsætte værdier/rækker: insert into physician values ( 10211, Smith, Emergency, 66000); insert into physician values ( 10211, null, Emergency, 66000);

Opdatere data: UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value Slette data: DELETE FROM table_name WHERE some_column=some_value

Medlemstabel Id Fornavn Efternavn Adresse Postnr Tlf 1 Andrea Andersen Vestergade 7 1234 991234 56 2 Birger Jensen Ryesgade 12 8000 994567 89 3 Bente Christensen Ryesgade 16 8000 994567 89 Medle ms-type Vægt 1 59 2 95 2 56 4 Camilla Troelsen Fjordvej 2 1234-3 75 5 Carla Curie Østerallé 16 1234 994561 23 6 Danny Dalum Vildbjergstræde 132 1234 984563 57 7 Elna Jensen Fredensgade 34 8000 861568 64 8 Viggo Højner Højner Alpeallé 1234 864534 83 9 Helle Frederiksen Frederiksen Postvej 43 1234 862929 79 10 Morten Mejlsing Mejlsing Havnegade 89 8000 862824 65 11 Haldur Nielsen Kirkegade 2 1234 314456 25 12 Homer Hansen Hansen Banegårdspladsen 3 8000 324587 57 1 65 2 101 2 81 1 89 2 67 3 88 1 78 1 97 Kontingent Medlems- Kontin- Medlems- type ID gent type 1 800 Elite 2 100 Passiv 3 400 Ungdom Postnr-tabel By Postnr Århus 8000 Udby 1234 Hvordan vil jeres sql se ud hvis I vil lave følgende ændringer: I vil ændre Haldurs telefonnummer til = 86552424 I vil slette Carla?

DISTINCT Eksempel: SELECT DISTINCT lastname FROM Spillere

LIKE: Anvendes til at søge på rækker der ligner et bestemt mønster Wildcard: Anvendes til at konstruere mønstre. % _ Eksempel: SELECT firstname, lastname FROM Player WHERE lastname LIKE M% SELECT firstname, lastname FROM Player WHERE lastname LIKE M_ller'

Hvordan vil I søge på efternavne der slutter på sen?

Forelæsning og opgaver: Introduktion til SQL pause Forlæsning og Opgaver: SQL 2. del pause Introduktion til PhPMyAdmin Opgaver

Se jeres mail fra Henrik Larsen med adgangsoplysninger

Implementér dette ER diagram ved brug af SQL-funktionen i PhPMyAdmin

Indsæt værdier i tabellerne ved brug af sql Foretag søgninger i tabellerne Diskutér hvilke søgninger i kan lave i de enkelte tabeller. Udvælg 5 forskellige søgninger og foretag disse. (dokumentér disse, fx vha. printscreen) Foretag opdateringer i tabellen ved brug af sql Udvælg 3 forskellige opdateringer og foretag disse. (dokumentér disse, fx vha. printscreen)