IBM DB2 Universal Database. KomgodtigangmedSQL. Version 7 S

Størrelse: px
Starte visningen fra side:

Download "IBM DB2 Universal Database. KomgodtigangmedSQL. Version 7 S511-5803-00"

Transkript

1 IBM DB2 Universal Database KomgodtigangmedSQL Version 7 S

2

3 IBM DB2 Universal Database KomgodtigangmedSQL Version 7 S

4 Læs de generelle oplysninger under Tillæg C. Om dette dokument på side 111, før oplysningerne i denne bog og det tilhørende program anvendes. Dette dokument indeholder oplysninger, der ejes af IBM. De stilles til rådighed under en licensaftale og er beskyttet af loven om ophavsret. I bogen gives ingen garanti for programmets funktion. Publikationer kan bestilles hos en IBM-forhandler eller en IBM-konsulent. Oversat af IBM Sprogcenter. Copyright International Business Machines Corporation 1993, All rights reserved.

5 Indholdsfortegnelse Indledning v Se også v Typografi v Kapitel 1. Relationsdatabaser og SQL... 1 Kapitel 2. Organisering af data Tabeller Udpluk Skemaer Datatyper Kapitel 3. Oprettelse af tabeller og udpluk. 9 Opret tabel Indsæt data Revidér data Slet data Opret udpluk Revidér data vha. udpluk Kapitel 4. Dataadgang vha. SQL-sætninger 17 Opret forbindelse til database Undersøg fejl Vælg kolonner Vælg række Sortér rækker Fjern dubletter Funktionsrækkefølge Beregn værdier vha. udtryk Navngiv udtryk Vælg data fra flere tabeller Underforespørgsler Funktioner Beregningsfunktioner Skalarfunktioner Tabelfunktioner Gruppering Brug af WHERE-udtrykket sammen med GROUP BY-udtrykket Brug af HAVING-udtrykket efter GROUP BY-udtrykket Kapitel 5. Udtryk og underforespørgsler.. 33 Skalare fullselect Konvertér datatyper CASE-udtryk Tabeludtryk Indflettet tabeludtryk Fælles tabeludtryk Korrelationsnavn Korreleret underforespørgsel Udfør korreleret underforespørgsel Kapitel 6. Brug af operatorer og prædikater i forespørgsler Kombinér forespørgsler vha. sammenkædningsoperatorer Operatoren UNION Operatoren EXCEPT Operatoren INTERSECT Prædikater Prædikatet IN Prædikatet BETWEEN Prædikatet LIKE Prædikatet EXISTS Kvantificerede prædikater Kapitel 7. Udvidet SQL Anvend betingelser og triggere til forretningsregler Nøgler Entydige betingelser Referenceintegritetsbetingelser Tabelkontrolbetingelser Triggere Sammenkædninger Komplekse forespørgsler ROLLUP- og CUBE-forespørgsler Rekursive forespørgsler OLAP-funktioner Kapitel 8. Tilpasning og forbedring af datamanipulation Brugerdefinerede typer Brugerdefinerede funktioner Store objekter (LOB) Håndtér store objekter (LOB) Specialregistre Introduktion til katalogudpluk Copyright IBM Danmark A/S 1993, 2000 iii

6 Vælg rækker fra systemkataloger Tillæg A. Tabeller i SAMPLE-databasen.. 71 SAMPLE-databasen Opret SAMPLE-databasen Slet SAMPLE-databasen Tabellen CL_SCHED Tabellen DEPARTMENT Tabellen EMPLOYEE Tabellen EMP_ACT Tabellen EMP_PHOTO Tabellen EMP_RESUME Tabellen IN_TRAY Tabellen ORG Tabellen PROJECT Tabellen SALES Tabellen STAFF Tabellen STAFFG Eksempelfiler med BLOB- og CLOB-data.. 84 Billede af Quintana CV for Quintana Billede af Nicholls CV for Nicholls Billede af Adamson CV for Adamson Billede af Walker CV for Walker Tillæg B. DB2-dokumentation DB2 PDF-filer og trykte bøger DB2-bøger Udskriv PDF-bøger Bestil trykte bøger DB2-onlinedokumentation Onlinehjælp Vis onlineoplysninger DB2-guider Konfigurér dokumentserver Søg i onlineoplysninger Tillæg C. Om dette dokument Varemærker Stikordsregister Kontakt IBM Produktinformation iv Kom godt i gang med SQL

7 Indledning Denne bog er beregnet som en introduktion til SQL (Structured Query Language) og relationsdatabaser. Bogen: v Beskriver grundlæggende begreber i SQL, der bruges i DB2-programmet. v Forklarer, hvordan du arbejder med databasen. v Indeholder enkle eksempler på opgaver. Inden du udfører eksemplerne i bogen skal du, hvis du er administrator: v Installere og konfigurere serveren som beskrevet i brugervejledningen (Quick Beginnings) til det styresystem, du bruger. Oprette SAMPLEdatabasen vha. funktionen Første trin. SAMPLE-databasen kan også oprettes fra kommandolinien. Der er flere oplysninger i SQL Reference. Bemærk: Undlad at placere egne data i DB2 SAMPLE-databasen. v Oprette bruger-id en til DB2-administratoren som beskrevet i brugervejledningen (Quick Beginnings). Hvis du ikke er systemadministrator, skal du sørge for at have en gyldig bruger-id og de relevante autorisationer og rettigheder, så du kan få adgang til SAMPLE-databasen. Se også... Følgende bøger indeholder flere oplysninger om specifikke emner: Brugervejledning (Quick Beginnings) SQL Reference Administration Guide Application Development Guide Installation og brug af databasesystemet. SQL-meddelelser. Design, implementering og vedligeholdelse af en lokal database eller en database i et client/server-miljø. Applikationsudvikling samt programmering, kompilering og udførelse af applikationer, der anvender indlejret SQL til at få adgang til databasen, eller som køres som lagrede DB2-procedurer vha. SQL-proceduresproget (eller et andet understøttet programmeringssprog). Typografi Sådan fremhæves tekst i bogen: Fed I eksemplerne angiver fed skrift kommandoer og nøgleord, som er defineret af systemet. Copyright IBM Danmark A/S 1993, 2000 v

8 Kursiv STORE BOGSTAVER Kursiveret skrift kan angive følgende: v Et nyt udtryk v En henvisning til en anden informationskilde. Store bogstaver kan angive følgende: v Kommandoer og nøgleord, som er defineret af systemet v Eksempler på specifikke dataværdier eller kolonnenavne. vi Kom godt i gang med SQL

9 Kapitel 1. Relationsdatabaser og SQL I en relationsdatabase gemmes data i tabeller. En tabel er en samling rækker og kolonner. I figur 1 på side 3 er der et grafisk eksempel på en tabel. Kolonner (lodret) og rækker (vandret) er markeret i figuren. SQL (Structured Query Language) bruges til at hente eller opdatere data med angivelse af kolonner, tabeller og de forskellige koblinger mellem dem. SQL er et standardiseret sprog til definition og manipulation af data i en relationsdatabase. SQL-sætninger udføres af et databasesystem. Et databasesystem er et computerprogram, som styrer data. En inddelt relationsdatabase er en relationsdatabase, hvor data styres på tværs af flere afsnit (også kaldt noder). En enkel måde at opfatte afsnit på er at betragte hvert afsnit som en fysisk computer. I denne bog er hovedvægten lagt på databaser med et enkelt afsnit. Du kan få adgang til SAMPLE-databasen og udføre eksemplerne i bogen vha. interaktiv SQL ved at bruge en grænseflade som f.eks. en DB2-kommandolinie eller kommandocentralen. Copyright IBM Danmark A/S 1993,

10 2 Kom godt i gang med SQL

11 Kapitel 2. Organisering af data I dette kapitel beskrives vigtige begreber i forbindelse med tabeller, udpluk og skemaer. Det er en generel oversigt over de forskellige byggeklodser i en relationsdatabase. Det sidste afsnit indeholder en kort beskrivelse af nogle af de vigtigste og mest udbredte datatyper. Tabeller Tabeller er logiske strukturer, som består af et fast antal kolonner og et variabelt antal rækker. En kolonne er et sæt værdier af samme datatype. En række er et antal værdier, der udgør en enkelt record i tabellen. Rækkerne i tabellen er ikke nødvendigvis sorteret. Hvis du vil sortere resultatrækker, skal du eksplicit angive det i den SQL-sætning, du bruger til at hente data i tabellen. Dér hvor en kolonne og en række skærer hinanden, findes et dataelement, som kaldes en værdi. I figur 1 er f.eks. Sanders en værdi. En basistabel indeholder brugerdata. Den oprettes ved hjælp af sætningen CREATE TABLE. En resultattabel er et sæt rækker, som databasesystemet vælger eller genererer fra én eller flere basistabeller som svar på en forespørgsel. I figur 1 vises en del af en tabel. Kolonner og rækker er angivet. Kolonne Række{ 10 ID NAME DEPT J Sanders 20 Mg 20 Pernal 20 Sa 30 Marenghi 38 Mg 40 O'Brien 38 Sa 50 Hanes 15 Mg 60 Quigley 38 Sa 15 Sa Figur 1. Tabel Copyright IBM Danmark A/S 1993,

12 Udpluk Et udpluk (view) er en anden måde at få vist data i én eller flere tabeller. Det er et dynamisk vindue med tabeloplysninger. Med udpluk kan flere brugere få vist de samme data på forskellige måder. Man kunne forestille sig, at flere brugere skal have adgang til en tabel med medarbejderdata. En leder ser data om sine medarbejdere men ikke om medarbejdere i en anden afdeling. En personalemedarbejder ser alle medarbejderes ansættelsesdato, men ikke deres løn, mens en regnskabsmedarbejder ser lønoplysninger, men ikke ansættelsesdatoer. Begge brugere benytter et udpluk af den egentlige tabel. Udplukkene vises som tabeller med deres eget navn. En af fordelene ved udpluk er, at det er muligt af begrænse adgangen til fortrolige data. Forskellige personer kan have adgang til forskellige datakolonner eller -rækker. Skemaer Et skema er en samling navngivne objekter, f.eks. tabeller og udpluk. Et skema er en logisk klassificering af objekterne i databasen. Et skema oprettes implicit, når du opretter en tabel, et udpluk eller et andet navngivet objekt. Det kan også oprettes eksplicit vha. sætningen CREATE SCHEMA. Når du opretter et navngivet objekt, kan du kvalificere (tilknytte) dets navn med navnet på et skema. Navngivne objekter har todelte navne, hvor første del er navnet på det skema, som objektet er knyttet til. Hvis du ikke angiver et skemanavn, knyttes objektet til standardskemaet. Navnet på standardskemaet er autorisations-id en for den bruger, der udfører sætningen. Ved interaktiv SQL, som benyttes til eksemplerne her i bogen, er autorisations-id en den bruger-id, der er angivet i CONNECT-sætningen. Hvis navnet på en tabel for eksempel er STAFF, og den angivne bruger-id er BRU- GERID, så er det kvalificerede navn BRUGERID.STAFF. Der er flere oplysninger om CONNECT-sætningen under Opret forbindelse til database på side 18. Nogle skemanavne er reserveret. Således ligger indbyggede funktioner i skemaet SYSIBM, mens forudinstallerede brugerdefinerede funktioner hører til i skemaet SYSFUN. Der er flere oplysninger om sætningen CREATE SCHEMA i SQL Reference. 4 Kom godt i gang med SQL

13 Datatyper Datatyper angiver gyldige værdier for konstanter, kolonner, værtsvariabler, funktioner, udtryk og specialregistre. I dette afsnit beskrives de datatype, der bruges i eksemplerne. Der er en fuldstændig oversigt over og beskrivelse af datatyper i SQL Reference. Strenge af typen Character En Character-streng er en bytesekvens. Længden på strengen er antallet af byte i sekvensen. Hvis længden er nul, kaldes værdien en tom streng. Character-streng med fast længde CHAR(x) er en streng med fast længde. Længdeangivelsen x skal være mellem 1 og 254. Character-streng med variabel længde Der er tre typer Character-strenge med variabel længde: VARCHAR, LONG VARCHAR og CLOB. VARCHAR(x)-strenge har variabel længde, så en streng med længden 9 kan godt indsættes i VARCHAR(15), men strengens længde er stadig 9. Under Store objekter (LOB) på side 67 er der flere oplysninger om CLOB. Dobbeltbytestreng af typen Character En dobbeltbyte Character-streng er en sekvens af dobbeltbyte tegn. Dobbeltbyte Character-streng med fast længde GRAPHIC(x) er en streng med fast længde. Længdeangivelsen x skal være mellem 1 og 127. Dobbeltbyte Character-streng med variabel længde Der er tre typer dobbeltbyte Character-strenge med variabel længde: VARGRAPHIC, LONG VARGRAPHIC og DBCLOB. Under Store objekter (LOB) på side 67 er der flere oplysninger om DBCLOB. Binær streng En binær streng er en bytesekvens. Den bruges til opbevaring af specielle data, f.eks. billeder. Et binært stort objekt (BLOB) er en binær streng. Der er flere oplysninger under Store objekter (LOB) på side 67. Kapitel 2. Organisering af data 5

14 Tal Alle tal har et fortegn og en præcision. Præcisionen er antallet af bit eller cifre, ekskl. fortegnet. SMALLINT SMALLINT (lille heltal) er et tobyte heltal med en præcision på 5 cifre. INTEGER INTEGER (heltal) er et firebyte heltal med en præcision på 10 cifre. BIGINT BIGINT (stort heltal) er et heltal på 8 byte med en præcision på 19 cifre. REAL REAL (enkeltpræcisionstal med flydende decimaltegn) er en 32-bit tilnærmelse til et reelt tal. DOUBLE DOUBLE (dobbeltpræcisionstal med flydende decimaltegn) er en 64-bit tilnærmelse til et reelt tal. DOUBLE kaldes også FLOAT. DECIMAL(p,a) DECIMAL er et decimaltal. Decimaltegnets position afgøres af tallets præcision (p) og antal decimaler (a). Præcisionen er det samlede antal cifre, som skal være mindre end 32. Antallet af decimaler er antallet af cifre til højre for decimaltegnet, som altid er mindre end eller lig med værdien for præcision. Hvis intet andet angives, bruges standardværdierne 5 for præcision og 0 for antal decimaler. Værdier for dato/klokkeslæt Værdier for dato/klokkeslæt er datoer, klokkeslæt og tidsstempler (en Character-streng på 14 cifre, der repræsenterer en gyldig dato/klokkeslætværdi i formatet ååååmmddttmmss). Værdierne kan benyttes i visse matematiske funktioner og strengfunktioner og er kompatible med visse strenge, men de er hverken strenge eller tal. 1 Dato En dato er en tredelt værdi (år, måned og dag). Klokkeslæt Et klokkeslæt er en tredelt værdi (timer, minutter og sekunder), som angiver en tid på døgnet. 1. I bogen her bruges ISO-værdierne for dato/klokkeslæt. 6 Kom godt i gang med SQL

15 Tidsstempel Et tidsstempel er en syvdelt værdi (år, måned, dag, timer, minutter, sekunder og mikrosekunder), der angiver en dato og et klokkeslæt. NULL-værdi Værdien NULL er en særlig værdi, som adskiller sig fra alle ikke- NULL-værdier. Den angiver, at der ikke er nogen værdi for den kolonne i rækken. NULL-værdien findes for alle datatyper. Nedenfor vises kendetegnene for de datatyper, der benyttes i eksemplerne. Alle numeriske datatyper ligger inden for et givet interval. Intervallet vises også nedenfor. Oversigten kan bruges til at få et hurtigt overblik over datatyperne. Datatype Type Kendetegn Eksempel eller interval CHAR(15) Characterstreng med fast længde Maksimumslængde på 254 Godt vejr VARCHAR(15) Characterstreng med variabel længde Maksimumslængde på SMALLINT tal 2 byte langt præcision på 5 cifre INTEGER tal 4 byte langt præcision på 10 cifre BIGINT tal 8 byte langt præcision på 19 cifre REAL tal enkelt præcision flydende decimaltegn 32-bit tilnærmelse DOUBLE tal dobbelt præcision flydende decimaltegn 64-bit tilnærmelse DECIMAL(5,2) tal DATE TIME dato/- klokkeslæt dato/- klokkeslæt præcision = 5 antal decimaler = 2 Godt vejr tredelt værdi tredelt værdi interval fra til interval fra til interval fra til interval fra E+38 til E-37 eller 1.175E-37 til E+38 eller nul interval fra E+308 til E-307 eller 2.225E- 307 til E+308 eller nul interval fra -10**31+1 til 10**31-1 Kapitel 2. Organisering af data 7

16 Datatype Type Kendetegn Eksempel eller interval TIMESTAMP dato/- klokkeslæt syvdelt værdi Der er flere oplysninger i oversigten over datatypekompatibilitet i SQL Reference. 8 Kom godt i gang med SQL

17 Kapitel 3. Oprettelse af tabeller og udpluk I dette kapitel beskrives, hvordan du kan oprette og ændre tabeller og udpluk i DB2 Universal Database. Relationen mellem tabeller og udpluk vises med diagrammer og eksempler. Der er følgende afsnit i kapitlet: v Opret tabel og Opret udpluk v Indsæt data v Revidér data v Slet data v Revidér data vha. udpluk Opret tabel Ved hjælp af CREATE TABLE-sætningen kan du oprette tabeller og angive kolonnenavne og -typer samt betingelser. Betingelser beskrives under Anvend betingelser og triggere til forretningsregler på side 51. I følgende eksempel oprettes tabellen PERS, som ligner tabellen STAFF, men har en ekstra kolonne til fødselsdato. CREATE TABLE PERS ( ID SMALLINT NOT NULL, NAME VARCHAR(9), DEPT SMALLINT WITH DEFAULT 10, JOB CHAR(5), YEARS SMALLINT, SALARY DECIMAL(7,2), COMM DECIMAL(7,2), BIRTH_DATE DATE) Med denne sætning oprettes en tabel uden data. I næste afsnit beskrives, hvordan du indsætter data i en tabel. Som eksemplet viser, skal du angive både navn og datatype for hver kolonne. Datatyper beskrives under Datatyper på side 5. NOT NULL er valgfrit og kan angives, hvis kolonnen ikke skal kunne indeholde NULL-værdier. Det er også valgfrit at angive standardværdier. I CREATE TABLE-sætningen kan du også angive en række andre valg, f.eks. entydige betingelser og referencebetingelser. Der er flere oplysninger om disse muligheder i SQL Reference. Copyright IBM Danmark A/S 1993,

18 Indsæt data En nyoprettet tabel indeholder ingen data. Hvis du vil indsætte rækker i en tabel, skal du bruge INSERT-sætningen. Den har to generelle formater: v I det ene format bruges et VALUES-udtryk til at angive værdier for kolonnerne i én eller flere rækker. I de næste tre eksempler bruges dette generelle format. v I det andet format angiver du ingen værdier. I stedet bruger du en fullselect til at identificere kolonner fra rækker i andre tabeller og/eller udpluk. En fullselect er en SELECT-sætning, der bruges i INSERT- og CREATE VIEWsætningerne samt efter et prædikat. En fullselect i parentes kaldes gerne en underforespørgsel. Afhængigt af de standardværdier, du har valgt til tabellen, skal du for hver række, der indsættes, enten angive en værdi for hver kolonne eller acceptere standardværdien. Der er flere oplysninger om standardværdier for de forskellige datatyper i SQL Reference. I dette eksempel bruges et VALUES-udtryk til at indsætte en datarække i tabellen PERS: INSERT INTO PERS VALUES (12, 'Harris', 20, 'Sales', 5, 18000, 1000, ' ') I nedenstående eksempel bruges VALUES-udtrykket til at indsætte tre rækker i tabellen PERS. Kun værdierne for id, navn og job kendes. Hvis en kolonne ikke kan indeholde NULL, og den ikke har en standardværdi, skal du angive en værdi. Udtrykket NOT NULL i en kolonnedefinition i CREATE TABLE-sætningen kan udvides med ordene WITH DEFAULT. Hvis en kolonne er defineret som NOT NULL WITH DEFAULT eller en konstant standardværdi, som f.eks. WITH DEFAULT 10, og du ikke angiver kolonnen i listen over kolonner, bruges kolonnens standardværdi i den indsatte række. I eksemplet her er der i CREATE TABLE-sætningen kun angivet en standardværdi for kolonnen DEPT, og den er 10. Derfor indsættes afdelingsnummeret (DEPT) 10, mens alle andre kolonner, der ikke eksplicit angives en værdi for, får en NULL-værdi. INSERT INTO PERS (NAME, JOB, ID) VALUES ('Swagerman', 'Prgmr', 500), ('Limoges', 'Prgmr', 510), ('Li', 'Prgmr', 520) Med denne sætning får du vist resultatet af indsættelserne: 10 Kom godt i gang med SQL

19 SELECT * FROM PERS ID NAME DEPT JOB YEARS SALARY COMM BIRTH_DATE Harris 20 Sales /01/ Swagerman 10 Prgmr Limoges 10 Prgmr Li 10 Prgmr I dette tilfælde vises der ikke værdier for alle kolonner. NULL-værdier angives ved en tankestreg ( ). Hvis det skal kunne lade sig gøre, skal listen over kolonnenavne svare nøjagtigt til værdierne i VALUES-udtrykket både mht. rækkefølge og datatype. Hvis kolonnenavnene udelades (som i det første eksempel), skal værdierne efter VALUES stå i samme rækkefølge som kolonnerne i den tabel, de skal indsættes i, og antallet af værdier skal være lig med antallet af kolonner i tabellen. Alle værdier skal være kompatible med datatyperne i de kolonner, de indsættes i. Hvis en kolonne kan indeholde NULL, og der ikke angives nogen værdi for kolonne, bruges NULL-værdien i den kolonne i den indsatte række. I nedenstående eksempel indsættes NULL-værdier i YEARS, COMM og BIRT- H_DATE, da der ikke er angivet værdier for disse kolonner. INSERT INTO PERS (ID, NAME, JOB, DEPT, SALARY) VALUES (410, 'Perna', 'Sales', 20, 20000) Det andet format til INSERT-sætningen er praktisk, hvis værdier fra rækker i andre tabeller skal indsættes i en tabel. Som sagt skal du ikke angive værdier, men bruge en fullselect til at identificere kolonner fra rækker i andre tabeller og/eller udpluk. I dette eksempel hentes data om medarbejdere i afdeling 38 fra tabellen STAFF og indsættes i tabellen PERS: INSERT INTO PERS (ID, NAME, DEPT, JOB, YEARS, SALARY) SELECT ID, NAME, DEPT, JOB, YEARS, SALARY FROM STAFF WHERE DEPT = 38 Når disse data er indsat, giver følgende SELECT-sætning samme resultat som fullselecten i INSERT-sætningen. SELECT ID, NAME, DEPT, JOB, YEARS, SALARY FROM PERS WHERE DEPT = 38 Resultatet er: Kapitel 3. Oprettelse af tabeller og udpluk 11

20 ID NAME DEPT JOB YEARS SALARY Marenghi 38 Mgr O'Brien 38 Sales Quigley 38 Sales Naughton 38 Clerk Abrahams 38 Clerk Revidér data Brug UPDATE-sætningen, hvis du vil ændre data i en tabel. Med denne sætning kan du ændre værdien for én eller flere kolonner i de rækker, som opfylder søgekriterierne i WHERE-udtrykket. I eksemplet her opdateres oplysningerne om medarbejderen med id en 410: UPDATE PERS SET JOB='Prgmr', SALARY = SALARY WHERE ID = 410 SET-udtrykket angiver de kolonner, der skal opdateres, og de nye værdier. WHERE-udtrykket er valgfrit og angiver, hvilke rækker der skal opdateres. Hvis WHERE-udtrykket udelades, opdaterer databasesystemet alle rækker i tabellen eller udplukket med de angivne værdier. I dette eksempel angives tabellen (PERS) først, derefter angives en betingelse for den række, der skal opdateres. Oplysningerne om medarbejder 410 skal ændres: Medarbejderens stilling er nu Prgmr, og lønnen er steget med 300. Du kan ændre data i flere rækker ved at specificere et WHERE-udtryk, som gælder for to eller flere rækker. I dette eksempel får alle salgsmedarbejdere en lønstigning på 15%: UPDATE PERS SET SALARY = SALARY * 1.15 WHERE JOB = 'Sales' Slet data Med DELETE-sætningen kan du slette datarækker fra en tabel, hvis de opfylder søgekriterierne i WHERE-udtrykket. I eksemplet her slettes den række, hvor medarbejder-id en er 120: DELETE FROM PERS WHERE ID = Kom godt i gang med SQL

21 WHERE-udtrykket er valgfrit og angiver, hvilke rækker der skal slettes. Hvis WHERE-udtrykket udelades, sletter databasesystemet alle rækker i tabellen eller udplukket. Du kan slette flere rækker med DELETE-udtrykket. I dette eksempel slettes alle rækker, hvor medarbejderens afdelingsnummer er 20: DELETE FROM PERS WHERE DEPT = 20 Når du sletter en række, fjernes hele rækken, ikke kun specifikke kolonneværdier. Hvis du ud over tabelindholdet vil slette selve tabellen, skal du bruge DROP TABLE-sætningen, som er beskrevet i SQL Reference. Opret udpluk Som beskrevet under Udpluk på side 4 er et udpluk en anden måde at få vist data i én eller flere tabeller. Ved hjælp af udpluk kan du begrænse de oplysninger, som forskellige brugere har adgang til. Nedenfor vises relationen mellem udpluk og tabeller. I figur 2 på side 14 begrænses adgangen i Udpluk_A til kolonnerne AC1 og AC2 i TABEL_A. I Udpluk_AB får brugeren adgang til kolonne AC3 i TABEL_A og BC2 i TABEL_B. Vha. Udpluk_A begrænses brugeradgangen til TABEL_A, og vha. Udpluk_AB begrænses brugeradgangen til visse kolonner i begge tabeller. Kapitel 3. Oprettelse af tabeller og udpluk 13

22 Database Tabel_A Kolonne Tabel_B Række { AC1 AC2 AC3 AC4 BC1 BC2 BC3 BC4 ABC QRS FCP MLI CJP DJS KMP { Udpluk_A CREATE VIEW VIEW_A AS SELECT AC1, AC2 FROM TABLE_A WHERE... CREATE VIEW VIEW_AB AS SELECT AC3, BC2 FROM TABLE_A, TABLE_B WHERE... Udpluk_AB Figur 2. Relation mellem tabeller og udpluk I nedenstående eksempel oprettes et udpluk med ikke-ledere i afdeling 20 i tabellen STAFF. Lønnen og provisionen, som vises i basistabellen, vises ikke i udplukket. CREATE VIEW STAFF_ONLY AS SELECT ID, NAME, DEPT, JOB, YEARS FROM STAFF WHERE JOB <> 'Mgr' AND DEPT=20 Når du har oprettet udplukket, kan du få det vist vha. følgende sætning: SELECT * FROM STAFF_ONLY Resultatet er: ID NAME DEPT JOB YEARS Pernal 20 Sales 8 80 James 20 Clerk Sneider 20 Clerk 8 14 Kom godt i gang med SQL

23 I endnu et eksempel kan vi bruge tabellerne STAFF og ORG til at oprette et udpluk, der viser navnet på hver afdeling og navnet på afdelingslederen. Udplukket oprettes vha. følgende sætning: CREATE VIEW DEPARTMENT_MGRS AS SELECT NAME, DEPTNAME FROM STAFF, ORG WHERE MANAGER = ID Du kan angive yderligere betingelser for tilføjelser til og opdatering af tabeller ved at bruge udtrykket WITH CHECK OPTION, når du opretter et udpluk. Databasesystemet undersøger så, om opdateringer af eller tilføjelser til udplukket er i overensstemmelse med udpluksdefinitionen. Hvis ikke, afvises de. Hvis du udelader udtrykket, kontrolleres tilføjelser og opdateringer ikke i forhold til udpluksdefinitionen. Der er flere oplysninger om WITH CHECK OPTION i SQL Reference. Revidér data vha. udpluk Ligesom SELECT-sætningen afsendes INSERT-, DELETE- og UPDATEsætningerne mod et udpluk, som om det var en rigtig tabel. Sætningerne bruges til at ændre data i den eller de underliggende basistabel(ler). Når du igen bruger udplukket, hentes data fra de seneste basistabeller. Hvis du ikke bruger WITH CHECK OPTION-udtrykket, er det ikke sikkert, at de data, du ændrer fra udplukket, vises, næste gang du får adgang til udplukket. Yderligere kan du risikere, at dataene ikke passer til den oprindelige udpluksdefinition. Her opdateres udplukket FIXED_INCOME: CREATE VIEW FIXED_INCOME (LNAME, DEPART, JOBTITLE, NEWSALARY) AS SELECT NAME, DEPT, JOB, SALARY FROM PERS WHERE JOB <> 'Sales' WITH CHECK OPTION UPDATE FIXED_INCOME SET NEWSALARY = SALARY * 1.10 WHERE LNAME = 'Li' Bortset fra CHECK-funktionen svarer ovenstående opdatering af udplukket til at opdatere basistabellen PERS: UPDATE PERS SET SALARY = SALARY * 1.10 WHERE NAME = 'Li' AND JOB <> 'Sales' Fordi udplukket er oprettet med angivelse af WITH CHECK OPTION for betingelsen JOB <> 'Sales' i CREATE VIEW FIXED_INCOME, er følgende opdatering ikke mulig, når Limoges flyttes til salgsafdelingen: Kapitel 3. Oprettelse af tabeller og udpluk 15

24 UPDATE FIXED_INCOME SET JOBTITLE = 'Sales' WHERE LNAME = 'Limoges' Kolonner, der er defineret vha. udtryk som SALARY + COMM eller SALARY * 1.25 kan ikke opdateres. Hvis du definerer et udpluk med den slags kolonner, får ejeren ikke UPDATE-rettighed til kolonnerne. INSERT-sætninger kan ikke bruges mod udpluk med den slags kolonner, men DELETE-sætninger kan. Forestil dig, at der i tabellen PERS ikke er nogen kolonner, der ikke kan indeholde NULL. Du kan indsætte rækker i tabellen PERS fra udplukket FIXED_INCOME, selv om det ikke indeholder ID, YEARS, COMM eller BIRT- H_DATE fra den underliggende tabel PERS. For kolonner, som ikke vises i udplukket, sættes værdien til NULL eller standardværdien. Kolonnen ID i tabellen PERS kan imidlertid ikke indeholde NULL. Hvis du prøver at indsætte en række via udplukket FIXED_INCOME, prøver systemet at indsætte NULL-værdier i alle de PERS-kolonner, som er usynlige i udplukket. Fordi kolonnen ID ikke vises i udplukket og ikke kan indeholde NULL-værdier, tillader systemet ikke indsættelse af rækker via udplukket. Du kan læse om regler og begrænsninger for ændring af udpluk under CREATE VIEW i SQL Reference. 16 Kom godt i gang med SQL

25 Kapitel 4. Dataadgang vha. SQL-sætninger I dette kapitel beskrives, hvordan du opretter forbindelse til en database og læser data vha. SQL-sætninger. I eksemplerne vises den sætning, der skal angives, efterfulgt (i de fleste tilfælde) af resultatet, når sætningen afsendes mod SAMPLE-databasen. Sætningerne vises med store bogstaver, men kan indtastes med en vilkårlig blanding af store og små bogstaver, undtagen hvis de står i enkelte anførselstegn ( ) eller dobbelte anførselstegn ( ). SAMPLE-databasen, som følger med DB2 Universal Database, indeholder flere tabeller som vist i Tillæg A. Tabeller i SAMPLE-databasen på side 71. Databasen kan oprettes vha. startvinduet Første trin. Du kan også oprette SAMPLE-databasen fra kommandolinien. Der er flere oplysninger i SQL Reference. Der leveres flere eksempeldatabaser med DB2 Universal Database, der viser funktionerne i datavarehuscentret og OLAP. I eksemplerne i denne bog bruges kun den generelle SAMPLE-database. Afhængigt af databasekonfigurationen skal du muligvis kvalificere de anvendte tabelnavne, dvs. sætte et skemanavn og et punktum foran dem. I eksemplerne i denne bog bruges standardskemaet BRUGERID. Du kan med andre ord kalde tabellen ORG for BRUGERID.ORG. Databaseadministratoren kan oplyse, om det er nødvendigt. Der er følgende afsnit i kapitlet: v Opret forbindelse til database v Undersøg fejl v Vælg kolonner og Vælg række v Sortér rækker og Fjern dubletter v Funktionsrækkefølge v Beregn værdier vha. udtryk v Navngiv udtryk v Vælg data fra flere tabeller v Underforespørgsler v Funktioner v Gruppering Copyright IBM Danmark A/S 1993,

26 Opret forbindelse til database Du skal oprette forbindelse til en database, før du kan afsende forespørgsler mod den eller ændre data vha. SQL-sætninger. CONNECT-sætningen knytter en databaseforbindelse til et brugernavn. Skriv følgende kommando på DB2-kommandolinien, hvis du vil oprette forbindelse til SAMPLE-databasen: CONNECT TO SAMPLE USER BRUGERID USING KODEORD Sørg for, at vælge en bruger-id og et kodeord, der er gyldige på serversystemet. USER er BRUGERID, og USING er KODEORD i eksemplet. Nedenstående meddelelse viser, at forbindelsen er oprettet: Oplysninger om databaseforbindelser Databaseserver = DB2/NT SQL-autorisations-id = BRUGERID Lokalt databasealias = SAMPLE Når forbindelsen er oprettet, kan du ændre i databasen. Der er flere oplysninger om forbindelser under CONNECT i SQL Reference. Undersøg fejl Hvis du laver en fejl, når du indtaster eksemplerne, eller hvis der opstår en fejl under udførelse af en SQL-sætning, viser databasesystemet en fejlmeddelelse. Fejlmeddelelsen består af et meddelelsesnummer, en kort forklaring og en SQLSTATE. SQLSTATE-fejl er fejlkoder, som er fælles for alle DB2-programmer. SQLSTATE-fejl overholder ISO/ANSI SQL92-standarden. Hvis du f.eks. angiver en forkert bruger-id eller et forkert kodeord i CONNECT-sætningen, viser databasesystemet meddelelsesnummer SQL1403N og SQLSTATE Følgende meddelelse vises: SQL1403N Det angivne brugernavn og/eller kodeord er forkert. SQLSTATE=08004 Du kan få flere oplysninger om fejlmeddelelsen ved at skrive et spørgsmålstegn (?) efterfulgt af meddelelsesnummeret eller SQLSTATE på DB2- kommandolinien: 18 Kom godt i gang med SQL

27 eller eller? SQL1403N? SQL1403? Den næstsidste linie i beskrivelsen af fejlen SQL1403N angiver, at SQLCODE er SQLCODE er en programspecifik fejlkode. Meddelelsesnumre, der slutter med N (Notification - besked) eller C (Critical - kritisk), angiver fejl, og deres SQLCODE er negativ. Meddelelsesnumre, der slutter med W (Warning - advarsel), angiver en advarsel, og deres SQLCODE er positiv. Vælg kolonner Brug SELECT-sætningen, hvis du vil vælge specifikke kolonner fra en tabel. Angiv kolonnenavnene adskilt af kommaer. I dette eksempel vælges afdelingsnavne (DEPTNAME) og afdelingsnumre (DEPTNUMB) fra tabellen ORG i SAMPLE-databasen: SELECT DEPTNAME, DEPTNUMB FROM ORG Resultatet er: DEPTNAME DEPTNUMB Head Office 10 New England 15 Mid Atlantic 20 South Atlantic 38 Great Lakes 42 Plains 51 Pacific 66 Mountain 84 Med en stjerne (*) kan du vælge alle kolonner i tabellen. I det næste eksempel får du vist alle kolonner og rækker i tabellen ORG: SELECT * FROM ORG Kapitel 4. Dataadgang vha. SQL-sætninger 19

28 Resultatet er: DEPTNUMB DEPTNAME MANAGER DIVISION LOCATION Head Office 160 Corporate New York 15 New England 50 Eastern Boston 20 Mid Atlantic 10 Eastern Washington 38 South Atlantic 30 Eastern Atlanta 42 Great Lakes 100 Midwest Chicago 51 Plains 140 Midwest Dallas 66 Pacific 270 Western San Francisco 84 Mountain 290 Western Denver Vælg række Hvis du vil vælge specifikke rækker i en tabel, skal du efter SELECTsætningen med et WHERE-udtryk angive ét eller flere kriterier, som de valgte rækker skal opfylde. Et kriterium til udvælgelse af rækker fra en tabel er et søgekriterium. Et søgekriterium består af ét eller flere prædikater. Et prædikat angiver en betingelse, som er sand eller falsk (eller ukendt) for en række. Du kan angive betingelser i WHERE-udtrykket vha. følgende grundlæggende prædikater: Prædikat x = y x <> y x < y x > y x <= y x>=y IS NULL/IS NOT NULL Funktion xerligmedy x er forskellig fra y x er mindre end y xerstørre end y x er mindre end eller lig med y xerstørre end eller lig med y der testes for NULL-værdier Når du opretter søgekriterier, skal du sørge for kun at foretage beregninger for numeriske data og kun at sammenligne data, der er kompatible. Således kan tekststrenge og tal ikke sammenlignes. Hvis du udvælger rækker på grundlag af en tegnværdi, skal værdien stå i enkelte anførselstegn, f.eks. WHERE JOB = 'Clerk', og alle tegnværdier skal indtastes nøjagtig som i databasen. Hvis dataværdien er skrevet med små bogstaver i databasen, og du bruger store bogstaver, vælges ingen rækker. Hvis du udvælger rækker på grundlag af en numerisk værdi, må værdien ikke stå i anførselstegn, f.eks. WHERE DEPT = Kom godt i gang med SQL

29 Ifølgende eksempel udvælges kun de rækker, hvor afdelingsnummeret er 20, fra tabellen STAFF: SELECT DEPT, NAME, JOB FROM STAFF WHERE DEPT = 20 Resultatet er: DEPT NAME JOB Sanders Mgr 20 Pernal Sales 20 James Clerk 20 Sneider Clerk I det næste eksempel bruges AND til at angive mere end ét kriterium. Du kan angive så mange kriterier, du vil. I eksemplet udvælges de medarbejdere i afdeling 20, som har stillingsbetegnelsen clerk, fra tabellen STAFF: SELECT DEPT, NAME, JOB FROM STAFF WHERE JOB = 'Clerk' AND DEPT = 20 Resultatet er: DEPT NAME JOB James Clerk 20 Sneider Clerk En NULL-værdi optræder, når der ikke angives nogen værdi, og kolonnen ikke har en standardværdi. En værdi kan også eksplicit angives til at være NULL. Værdien kan kun optræde, hvis kolonnen er defineret til at kunne indeholde NULL-værdier. Brugen af NULL-værdier beskrives under Opret tabel på side 9. Brug prædikatet IS NULL eller IS NOT NULL, hvis du vil teste for NULLværdier. Med følgende sætning får du vist de medarbejdere, hvis provision er ukendt: SELECT ID, NAME FROM STAFF WHERE COMM IS NULL Resultatet er: ID NAME Sanders 30 Marenghi 50 Hanes Kapitel 4. Dataadgang vha. SQL-sætninger 21

30 100 Plotz 140 Fraye 160 Molinare 210 Lu 240 Daniels 260 Jones 270 Lea 290 Quill Værdien nul er ikke det samme som NULL-værdien. Med følgende sætning får du vist alle i tabellen, hvis provision er nul: SELECT ID, NAME FROM STAFF WHERE COMM = 0 Da der ikke er nogen nuller i kolonnen COMM i eksempeltabellen, returneres en tom resultatrække. I det næste eksempel udvælges alle rækker, hvor værdien for YEARS i tabellen STAFF er højere end 9: SELECT NAME, SALARY, YEARS FROM STAFF WHERE YEARS > 9 Resultatet er: NAME SALARY YEARS Hanes Lu Jones Quill Graham Sortér rækker Det kan være praktisk at få oplysningerne vist i en bestemt rækkefølge. Med ORDER BY-udtrykket kan du sortere oplysningerne efter værdierne i én eller flere kolonner. I dette eksempel vises medarbejderne i afdeling 84 efter anciennitet: SELECT NAME, JOB, YEARS FROM STAFF WHERE DEPT = 84 ORDER BY YEARS Resultatet er: 22 Kom godt i gang med SQL

31 NAME JOB YEARS Davis Sales 5 Gafney Clerk 5 Edwards Sales 7 Quill Mgr 10 Angiv ORDER BY som det sidste udtryk i SELECT-sætningen. De kolonner, der angives i udtrykket, kan være udsagn eller en vilkårlig kolonne i tabellen. Kolonnenavnet i ORDER BY-udtrykket behøver ikke at være blandt dem, du har valgt. Du kan sortere rækker i stigende eller faldende rækkefølge ved eksplicit at angive ASC eller DESC i ORDER BY-udtrykket. Hvis intet angives, sorteres rækkerne automatisk i stigende rækkefølge. I dette eksempel vises medarbejderne i afdeling 84 i faldende rækkefølge efter anciennitet: SELECT NAME, JOB, YEARS FROM STAFF WHERE DEPT = 84 ORDER BY YEARS DESC Resultatet er: NAME JOB YEARS Quill Mgr 10 Edwards Sales 7 Davis Sales 5 Gafney Clerk 5 Du kan både sortere rækker efter tegnværdier og efter numeriske værdier. Her vises medarbejderne i afdeling 84 i alfabetisk rækkefølge efter navn: SELECT NAME, JOB, YEARS FROM STAFF WHERE DEPT = 84 ORDER BY NAME Resultatet er: NAME JOB YEARS Davis Sales 5 Edwards Sales 7 Gafney Clerk 5 Quill Mgr 10 Kapitel 4. Dataadgang vha. SQL-sætninger 23

32 Fjern dubletter Ofte er det overflødigt at få vist de samme oplysninger flere gange. I tabellen STAFF er der f.eks. en DEPT-kolonne, hvor flere afdelingsnumre optræder mere end én gang, og en JOB-kolonner, hvor flere stillingsbetegnelser optræder mere end én gang. Hvis du ikke vil have vist flere ens rækker, skal du bruge parameteren DISTINCT i SELECT-sætningen. Hvis du indsætter DISTINCT i sætningen, vises hver stilling i en afdeling kun én gang: SELECT DISTINCT DEPT, JOB FROM STAFF WHERE DEPT < 30 ORDER BY DEPT, JOB Resultatet er: DEPT JOB Mgr 15 Clerk 15 Mgr 15 Sales 20 Clerk 20 Mgr 20 Sales Med DISTINCT har du fjernet alle gentagelser fra SELECT-sætningens resultatrækker. Funktionsrækkefølge Funktionsrækkefølgen er vigtig. Outputtet frar ét udtryk er input til det næste, som vist nedenfor. I eksemplet Navngiv udtryk på side 25 tages der højde for funktionsrækkefølgen. Nedenstående funktionsrækkefølge er ikke nødvendigvis den samme, som funktionerne udføres på af DB2. Forklaringen er blot en mere intuitiv måde at opfatte forespørgsler på. Funktionerne udføres i denne rækkefølge: 1. FROM-udtryk 2. WHERE-udtryk 3. GROUP BY-udtryk 4. HAVING-udtryk 5. SELECT-udtryk 6. ORDER BY-udtryk 24 Kom godt i gang med SQL

33 Beregn værdier vha. udtryk Et udtryk er en beregning eller funktion, som medtages i en sætning. I nedenstående sætning beregnes lønnen for hver enkelt medarbejder i afdeling 38, hvis de alle modtog en bonus på 500: SELECT DEPT, NAME, SALARY FROM STAFF WHERE DEPT = 38 ORDER BY 3 Resultatet er: DEPT NAME Abrahams Naughton Quigley Marenghi O'Brien Bemærk, at kolonnenavnet for den tredje kolonne er et tal. Nummeret indsættes automatisk, da SALARY+500 ikke er et kolonnenavn. Senere bruges tallet i ORDER BY-udtrykket til at henvise til den tredje kolonne. Navngiv udtryk omhandler navngivning af udtryk. Du kan danne matematiske udtryk vha. de grundlæggende operatorer, dvs. plus (+), minus ( ), gange (*) og divideret med ( ). Operatorerne kan bruges på numeriske værdier fra flere typer operander, bl.a.: v Kolonnenavne (f.eks. RATE * HOURS) v Konstanter (f.eks. RATE * 1.07) v Skalarfunktioner (f.eks. LENGTH(NAME) + 1). Navngiv udtryk Med det valgfrie AS-udtryk kan du give et udtryk et navn, så det bliver lettere at henvise til udtrykket senere. AS-udtrykket kan bruges til at navngive alle punkter på listen. I dette eksempel vises alle medarbejdere, hvis løn plus kommission er mindre end Udtrykket SALARY + COMM kaldes PAY: SELECT NAME, JOB, SALARY + COMM AS PAY FROM STAFF WHERE (SALARY + COMM) < ORDER BY PAY Resultatet er: Kapitel 4. Dataadgang vha. SQL-sætninger 25

34 NAME JOB PAY Yamaguchi Clerk Burke Clerk Scoutten Clerk Abrahams Clerk Kermisch Clerk Ngan Clerk Ved at bruge AS-udtrykket kan du henvise til et bestemt kolonnenavn frem for det nummer, der automatisk blev indsat i ORDER BY-udtrykket. I dette eksempel sammenlignes (SALARY + COMM) - og ikke PAY - med i WHERE-udtrykket. Det skyldes den rækkefølge, funktionerne udføres i. WHERE-udtrykket vurderes, før (SALARY + COMM) får navnet PAY, fordi SELECT-udtrykket udføres efter WHERE-udtrykket. Derfor kan PAY ikke bruges i prædikatet. Vælg data fra flere tabeller Med SELECT-sætningen kan du få vist resultater, der indeholder oplysninger fra to eller flere tabeller. Det kaldes en sammenkædning. Du kan f.eks. danne en ny tabel ved at sammenkæde data fra tabellerne STAFF og ORG. Hvis du vil sammenkæde to tabeller, skal du angive de ønskede kolonner i SELECTudtrykket, tabelnavnene i et FROM-udtryk og søgekriterierne i WHERE-udtrykket. WHERE-udtrykket er valgfrit. I det næste eksempel knyttes afdelingslederne og afdelingsnavnene sammen. Til det skal du bruge oplysninger fra to tabeller, da medarbejderoplysninger og afdelingsoplysninger opbevares hver for sig (i hhv. STAFF og ORG). Vha. nedenstående forespørgsel kan du vælge kolonnerne NAME og DEPTNAME fra tabellerne STAFF og ORG. Med søgekriterierne begrænses valget til de rækker, hvor værdien i kolonnen MANAGER er lig med værdien i kolonnen ID: SELECT DEPTNAME, NAME FROM ORG, STAFF WHERE MANAGER = ID I figur 3 på side 27 vises, hvordan kolonner i to forskellige tabeller sammenlignes. De indrammede værdier opfylder søgekriterierne. 26 Kom godt i gang med SQL

35 ORG DEPTNUMB DEPTNAME MANAGER D 10 Head Office 160 Co STAFF 10 ID NAME Sanders 20 DEPT J Mg 15 New England 50 Ea 20 Pernal 20 Sa 20 Mid Atlantic 10 Ea 30 Marenghi 38 Mg 38 South Atlantic 30 Ea 40 O'Brien 38 Sa 42 Great Lakes 100 Mi 50 Hanes 15 Mg 51 Plains 140 Mi 60 Quigley 38 Sa 270 We 15 Sa MANAGER=ID? Figur 3. Vælg fra tabellerne STAFF og ORG Resultatet er: DEPTNAME NAME Mid Atlantic Sanders South Atlantic Marenghi New England Hanes Great Lakes Plotz Plains Fraye Head Office Molinare Pacific Lea Mountain Quill I resultatoversigten vises afdelingslederne og deres afdelinger. Underforespørgsler Når du skriver en SELECT-sætning, kan du angive flere SELECT-sætninger i WHERE-udtrykket. For hver yderligere SELECT startes en underforespørgsel. En underforespørgsel kan derefter indeholde endnu en separat underforespørgsel, hvis resultat sættes ind i den oprindelige underforespørgsels WHERE-udtryk. Desuden kan et WHERE-udtryk indeholde underforespørgsler i flere søgekriterier. Underforespørgslen kan henvise til andre tabeller og kolonner end hovedforespørgslen. Nedenfor vælges division og geografisk placering fra tabellen ORG for den medarbejder, der har id 280 i tabellen STAFF: SELECT DIVISION, LOCATION FROM ORG WHERE DEPTNUMB = (SELECT DEPT FROM STAFF WHERE ID = 280) Kapitel 4. Dataadgang vha. SQL-sætninger 27

36 Når ensætning behandles, finder DB2 først frem til resultatet af underforespørgslen. Resultatet af underforespørgslen i eksemplet er 66, da medarbejder nr. 280 arbejder i afdeling 66. Det endelige resultat findes så i den række i tabellen ORG, hvor kolonnen DEPTNUMB har værdien 66. Det endelige resultat er: DIVISION LOCATION Western San Francisco Når du bruger en underforespørgsel, vurderer databasesystemet den og sætter resultatværdien direkte ind i WHERE-udtrykket. Der er flere oplysninger om underforespørgsler under Korreleret underforespørgsel på side 39. Funktioner Dette afsnit indeholder en kort beskrivelse af de funktioner, der benyttes i eksemplerne i bogen. En databasefunktion er en kobling mellem et sæt inputdataværdier og en resultatværdi. Funktioner kan være indbyggede eller brugerdefinerede. DB2 Universal Database har mange indbyggede og forudinstallerede brugerdefinerede funktioner. De indbyggede funktioner findes i skemaet SYSIBM, og de forudinstallerede brugerdefinerede funktioner findes i skemaet SYSFUN. SYSIBM og SYSFUN er reserverede skemanavne. De indbyggede og forudinstallerede brugerdefinerede funktioner kan aldrig dække alle brugeres behov. Derfor er det nødvendigt for applikationsudviklere at lave deres egne applikationsspecifikke funktioner. Det kan gøres vha. brugerdefinerede funktioner, så DB2 Universal Database udvides til at omfatte f.eks. specielle virksomhedsspecifikke eller videnskabelige funktioner. Læs mere herom under Brugerdefinerede funktioner på side 66. Beregningsfunktioner Beregningsfunktioner finder frem til en enkelt resultatværdi ud fra et sæt værdier i en kolonne. Her følger et par eksempler på beregningsfunktioner. Du kan finde en fuldstændig oversigt i SQL Reference. AVG COUNT MAX Returnerer gennemsnittet, dvs. summen af værdierne i et sæt divideret med antallet af værdier i sættet Returnerer antallet af rækker eller værdier i et sæt rækker eller værdier Returnerer den højeste værdi i et sæt værdier 28 Kom godt i gang med SQL

37 MIN Returnerer den laveste værdi i et sæt værdier I dette eksempel vælges den højeste løn fra tabellen STAFF: SELECT MAX(SALARY) FROM STAFF Sætningen returnerer værdien fra tabeleksemplet STAFF. I det næste eksempel findes navnene på og lønningerne for medarbejdere, der tjener mere end gennemsnittet, selv om de har været ansat i kortere tid end gennemsnitsmedarbejderen. SELECT NAME, SALARY FROM STAFF WHERE SALARY > (SELECT AVG(SALARY) FROM STAFF) AND YEARS < (SELECT AVG(YEARS) FROM STAFF) Resultatet er: NAME SALARY Marenghi Daniels Gonzales I dette eksempel er beregningsfunktionen i WHERE-udtrykket angivet i en underforespørgsel i stedet for at blive implementeret direkte (f.eks. WHERE SALARY > AVG(SALARY)). Beregningsfunktioner kan ikke angives i WHEREudtrykket. Det skyldes den rækkefølge, funktioner udføres i. WHEREudtrykket vurderes før SELECT-udtrykket. Derfor har beregningsfunktionen ikke adgang til værdisættet, når WHERE-udtrykket vurderes. Værdierne vælges senere vha. SELECT-udtrykket. Du kan bruge DISTINCT-elementet i parameterværdien til en beregningsfunktion. Dermed elimineres dubletter, før en funktion aktiveres. Når du f.eks. angiver COUNT(DISTINCT WORKDEPT), beregnes antallet af forskellige afdelinger. Skalarfunktioner En skalarfunktion udfører en funktion med en enkelt værdi, så der returneres en anden enkelt værdi. Her følger et par eksempler på skalarfunktioner i DB2 Universal Database. ABS Returnerer den absolutte værdi for et tal HEX Returnerer den hexadecimale repræsentation af en værdi LENGTH YEAR Returnerer antallet af byte i en parameterværdi eller antallet af dobbeltbytetegn i en dobbeltbytestreng Udtrækker årstallet fra en værdi for dato/klokkeslæt Kapitel 4. Dataadgang vha. SQL-sætninger 29

38 Der er en mere detaljeret oversigt over og beskrivelse af skalarfunktioner i SQL Reference. I nedenstående eksempel returneres afdelingsnavnene fra tabellen ORG sammen med længden på de enkelte navne: SELECT DEPTNAME, LENGTH(DEPTNAME) FROM ORG Resultatet er: DEPTNAME Head Office 11 New England 11 Mid Atlantic 12 South Atlantic 14 Great Lakes 11 Plains 6 Pacific 7 Mountain 8 Bemærk: Da AS-udtrykket ikke er brugt til at navngive LENGTH(DEPT- NAME), indsættes et nummer automatisk for den anden kolonne. Tabelfunktioner Tabelfunktioner returnerer kolonnerne i en tabel, hvilket ligner den tabel, der oprettes vha. en enkel CREATE TABLE-sætning. En tabelfunktion kan kun bruges i FROM-udtrykket i en SQL-sætning. Den eneste tabelfunktion, der p.t. understøttes i DB2 Universal Database, er SQLCACHE_SNAPSHOT. SQLCACHE_SNAPSHOT Returnerer resultatet af et snapshot af DB2-cachen med dynamiske SQL-sætninger. Gruppering I DB2 Universal Database kan data analyseres på grundlag af bestemte kolonner i en tabel. Du kan organisere rækker vha. en grupperingstruktur, der er defineret i et GROUP BY-udtryk. Den enkleste type gruppe er et sæt rækker, der har ens værdier i kolonnen GROUP BY. Kolonnenavnene i SELECT-udtrykket skal enten være grupperingskolonner eller en beregningsfunktion. Beregningsfunktioner returnerer en værdi for hver gruppe i GROUP BY-udtrykket. Hver gruppe repræsenteres af en enkelt række i resultatsættet. I det følgende eksempel vises en oversigt over den højeste løn i hver afdeling: 30 Kom godt i gang med SQL

39 SELECT DEPT, MAX(SALARY) AS MAXIMUM FROM STAFF GROUP BY DEPT Resultatet er: DEPT MAXIMUM Bemærk, at MAX(SALARY) beregnes for hver afdeling, dvs. for en gruppe der er angivet i GROUP BY-udtrykket, ikke for hele selskabet. Brug af WHERE-udtrykket sammen med GROUP BY-udtrykket En grupperingsforespørgsel kan indeholde et WHERE-udtryk, som eliminerer irrelevante rækker, før grupperne dannes, og beregningerne foretages. WHERE-udtrykket skal angives før GROUP BY-udtrykket. For eksempel: SELECT WORKDEPT, EDLEVEL, MAX(SALARY) AS MAXIMUM FROM EMPLOYEE WHERE HIREDATE > ' ' GROUP BY WORKDEPT, EDLEVEL ORDER BY WORKDEPT, EDLEVEL Resultatet er: WORKDEPT EDLEVEL MAXIMUM D D D D E E Bemærk, at de kolonnenavne, der angives i SELECT-sætningen, også er med i GROUP BY-udtrykket. Hvis et kolonnenavn ikke angives begge steder, opstår der en fejl. GROUP BY-udtrykket returnerer en række for hver entydig kombination af WORKDEPT og EDLEVEL. Brug af HAVING-udtrykket efter GROUP BY-udtrykket Du kan angive en kvalificerende betingelse for grupper, så DB2 kun returnerer et resultat for de grupper, der opfylder betingelsen. Det gør du ved at inkludere et HAVING-udtryk efter GROUP BY-udtrykket. Et HAVING-udtryk kan Kapitel 4. Dataadgang vha. SQL-sætninger 31

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

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en

Læs mere

Introduktion til programmering

Introduktion til programmering Introduktion til programmering Databaser Uge 38 L. Ingemann: SQL databaser på nettet, kap 2-4. Kompendium L. Ingemann: SQL databaser på nettet, kap 6-20, Kompendium Sidste gang Databaser Relationelle databaser

Læs mere

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

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

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

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

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. Sidste forelæsning Jacob Aae Mikkelsen IMADA 28. april 2013 Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april 2013 1 / 36 Outline 1 Brugere og Sikkerhed Jacob Aae Mikkelsen (IMADA) Sidste forelæsning

Læs mere

DB undervisning 01-01

DB undervisning 01-01 Databaser... 2 Tabeller... 2 Redundans... 3 Første regel... 4 Anden regel... 4 Tredje regel... 5 Relationer... 5 Opskrift... 6 SQL sætninger til at oprette tabeller... 7 SQL sætninger til at indsætte data...

Læs mere

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit. Kapitel 20: Talsystemer 20 Resumé af talsystemer... 344 Indtastning og omregning af talsystemer... 345 Udførelse af matematiske beregninger med hexadecimale og binære tal... 346 Sammenligning eller manipulation

Læs mere

OPC Access 3.0 opdatering via Stored Procedure

OPC Access 3.0 opdatering via Stored Procedure OPC Access 3.0 opdatering via Stored Procedure Dette dokument gennemgår et eksempel på, hvordan OPC Access 2.0 kan konfigureres til at opdatere en database via en stored procedure. OPC ACCESS 2.0 OPDATERING

Læs mere

SQL for MySQL-begyndere

SQL for MySQL-begyndere Denne guide er oprindeligt udgivet på Eksperten.dk SQL for MySQL-begyndere I denne artikel vil jeg prøve at beskrive MySQL på begynderniveau. SQL står for Structured Query Language, og er et sprog til

Læs mere

Introduktion til OPC Access

Introduktion til OPC Access Introduktion til OPC Access OPC Access anvendes til at kommunikere med jeres produktionsudstyr via OPC. OPC Access kombinerer en SQL Server med OPC, således at jeres produktionsudstyr kobles sammen med

Læs mere

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

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler. Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler. Af Seniorkonsulent Carsten Saastamoinen-Jakobsen Skal datamodellen blot være på 3NF (normalform)?

Læs mere

Data lagring. 2. iteration (implement backend)

Data lagring. 2. iteration (implement backend) Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Eksempel på en database: studenter, kurser, eksamener

Eksempel på en database: studenter, kurser, eksamener Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

Anne Randorff Højen

Anne Randorff Højen 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

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

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

DML, Foresprgsler Relationel algebra + noget mere! af skemaer (overlap m. DDL) SQL Stuctured Query Language, spiller roller som DDL, denere relationsskemaer m.v. DML, Foresprgsler Relationel algebra + noget mere! Opdatering af relationer af skemaer (overlap m. DDL) Hvem bruger SQL

Læs mere

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

Databasesystemer. IT Universitetet i København 16. januar 2006 Databasesystemer IT Universitetet i København 16. januar 2006 Eksamenssættet består af 5 opgaver med 16 spørgsmål, fordelt på 6 sider (inklusiv denne side), samt et svarark, hvor visse spørgsmål skal besvares.

Læs mere

Eksamen, DSDS, efterår 2007

Eksamen, DSDS, efterår 2007 Eksamen, DSDS, efterår 2007 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech og Martin Elsman IT Universitetet i København 7. januar 2008 Alle hjælpemidler er tilladte, dog ikke

Læs mere

BAAN IVc. Brugervejledning til BAAN Data Navigator

BAAN IVc. Brugervejledning til BAAN Data Navigator BAAN IVc Brugervejledning til BAAN Data Navigator En udgivelse af: Baan Development B.V. P.O.Box 143 3770 AC Barneveld Holland Trykt i Holland Baan Development B.V. 1997. Alle rettigheder forbeholdes.

Læs mere

Python programmering. Per Tøfting. MacFest

Python programmering. Per Tøfting. MacFest Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer

Læs mere

HOFTEALLOPLASTIK - DATAUDTRÆK OG IMPORT TIL EXCEL

HOFTEALLOPLASTIK - DATAUDTRÆK OG IMPORT TIL EXCEL HOFTEALLOPLASTIK - DATAUDTRÆK OG IMPORT TIL EXCEL Når man er logget på KMS systemet, vælges Dataudtræk under punktet Vælg modul, hvorefter der klikkes på Gå til: På næste side klikkes på knappen Opret:

Læs mere

IDAP manual Analog modul

IDAP manual Analog modul IDAP manual Analog modul Dato: 15-06-2005 11:01:06 Indledning Til at arbejde med opsamlede og lagrede analoge data i IDAP portalen, findes en række funktions områder som brugeren kan anvende. Disse områder

Læs mere

Eksamen, DSDS, efterår 2008

Eksamen, DSDS, efterår 2008 Eksamen, DSDS, efterår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 6. januar 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Dannelse af PDF dokumenter

Dannelse af PDF dokumenter Dannelse af PDF dokumenter Indhold Dannelse af PDF-dokumenter i Phd Planner... 2 Valg af vedhæftninger i PDF dokumentet... 2 Valg af skabelon for PDF dokumentet... 3 Når PDF filen er dannet... 5 Gem PDF

Læs mere

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

Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus, byer og regning.. Side 1 af 11 Dato: 07-09-2003 Opgaver i oprettelse af kunder og info i database med java. Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus,

Læs mere

Skriftlig eksamen i kurset. Informationssystemer

Skriftlig eksamen i kurset. Informationssystemer 6. semester sundhedsteknologi Skriftlig eksamen i kurset Informationssystemer Der er 3 timer til at besvare opgaven. Alle hjælpemidler er tilladte. Skriv kort og præcist. Referer gerne til kursuslitteraturen.

Læs mere

Få sin querystring til at fungere. (Nybegyndere)

Få sin querystring til at fungere. (Nybegyndere) Denne guide er oprindeligt udgivet på Eksperten.dk Få sin querystring til at fungere. (Nybegyndere) Artikelen henvender sig til nybegyndere der har problemer med at få sin querystring til at fungere (Access/ASP).

Læs mere

Innovative Business Software A/S

Innovative Business Software A/S Innovative Business Software A/S Technical Note Kalendermodulet 18. december 2014 ii MEDDELELSE OM OPHAVSRET Copyright 2014 Innovative Business Software A/S. Alle rettigheder forbeholdt. Oplysningerne

Læs mere

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB. GeoCad modul GeoDB I GeoCAD er det muligt at koble relationsdatabase til GeoEDIT. Her igennem er det muligt at lagre forskellige oplysninger i databasen og koble disse oplysninger til objekter i kortet.

Læs mere

Ruko SmartAir. Updater installation

Ruko SmartAir. Updater installation Ruko SmartAir Updater installation Introduktion. Updateren er en speciel enhed som giver os mulighed for at tilføje, læse og skrive funktioner i en offline installation. Med læse og skrive funktionen kan

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et

Læs mere

Opsætning af MobilePBX med Kalenderdatabase

Opsætning af MobilePBX med Kalenderdatabase Opsætning af MobilePBX med Kalenderdatabase Dette dokument beskriver hvorledes der installeres Symprex Exchange Connector og SQL Server Express for at MobilePBX kan benytte kalenderadadgang via database

Læs mere

Øvelser i Business Intelligence: Introduktion til datavarehuscentret

Øvelser i Business Intelligence: Introduktion til datavarehuscentret IBM DB2 Universal Database Øvelser i Business Intelligence: Introduktion til datavarehuscentret Version 8 IBM DB2 Universal Database Øvelser i Business Intelligence: Introduktion til datavarehuscentret

Læs mere

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

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker

Læs mere

Databaser Obligatorisk opgave 2 Vejledende løsning

Databaser Obligatorisk opgave 2 Vejledende løsning University of Southern Denmark Department of Mathematics and Computer Science Databaser Obligatorisk opgave 2 Vejledende løsning Afleveres senest: Søndag d. 5. maj kl 23.59 Spilleregler Denne obligatoriske

Læs mere

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret Håndbog Til CPR services Bilag 8 GCTP-standard m.m. CPR-kontoret Datavej 20, Postboks 269, 3460 Birkerød E-post: cpr@cpr.dk. Telefax 45 82 51 10. Hjemmeside: www.cpr.dk Side 2 af 14 Indholdsfortegnelse

Læs mere

Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og FKG_2_3_1_mssql.sql

Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og FKG_2_3_1_mssql.sql Septima P/S Larsbjørnsstræde 3 1454 København K +45 7230 0672 www.septima.dk 31. juli 2013 Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og

Læs mere

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

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

Læs mere

Kursus/workshop: SQL

Kursus/workshop: SQL Kursus/workshop: SQL En workshop - med fokus på workshop. En workshop arrangeret af PROSA Palle Nygaard Hansen Frank Jensen Indledning Gennemgang af alle basale SQL-sætninger Forløb for alle 3 aftener:

Læs mere

JavaScript. nedarvning.

JavaScript. nedarvning. JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man

Læs mere

Dannelse af PDF-dokumenter

Dannelse af PDF-dokumenter Dannelse af PDF-dokumenter Indhold Generere PDF-dokumenter... 2 Håndtering af PDF-dokumentet... 8 Hvordan indsætter man sidetal i PDF-dokumentet?... 8 Hvordan laver man bookmarks i PDF-dokumentet?... 8

Læs mere

1. Opbygning af et regneark

1. Opbygning af et regneark 1. Opbygning af et regneark Et regneark er et skema. Vandrette rækker og lodrette kolonner danner celler, hvori man kan indtaste tal, tekst, datoer og formler. De indtastede tal og data kan bearbejdes

Læs mere

FKG datamodellen Version Implementeringsguidelines. FKG datamodellen Version Implementeringsguidelines

FKG datamodellen Version Implementeringsguidelines. FKG datamodellen Version Implementeringsguidelines FKG Fælleskommunale Geodatasamarbejde FKG datamodellen Version 2.3.1 Implementeringsguidelines Sidste revisionsdato: 24. oktober 2013 1 Dokumenthistorik Version Dato Initialer Ændring 1.0 5.7.2013 TBS/NIRAS

Læs mere

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø Høringssvar vedr. FESD GIS-integrationsmodel version 2.0 Geodata Danmark har

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

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

Databasesystemer. IT Universitetet i København 8. juni 2006 Databasesystemer IT Universitetet i København 8. juni 2006 Eksamenssættet består af 5 opgaver med 16 spørgsmål, fordelt på 7 sider (inklusiv denne side), samt et svarark, hvorpå visse spørgsmål skal besvares.

Læs mere

Vigtigste funktionstaster Microsoft Dynamics C5 2014 / NAV 2013

Vigtigste funktionstaster Microsoft Dynamics C5 2014 / NAV 2013 Vigtigste funktionstaster Microsoft Dynamics C5 2014 / NAV 2013 Her har du de vigtigste funktionstaster, som både gælder for Microsoft Dynamics C5 2014 og NAV 2013. Filtrering af søgekriterier Du kan anvende

Læs mere

Sådan indlægges nyheder på DSqF s hjemmeside trin for trin

Sådan indlægges nyheder på DSqF s hjemmeside trin for trin Sådan indlægges nyheder på DSqF s hjemmeside trin for trin Systemkrav For at kunne bruge Composite kræves: Windows 95 eller nyere (bemærk - kun Windows kan bruges) Browseren Internet Explorer 6.0 eller

Læs mere

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave

Læs mere

Installationsguide til Oracle Database XE 10.2 og APEX 3.1.1

Installationsguide til Oracle Database XE 10.2 og APEX 3.1.1 Installationsguide til Oracle Database XE 10.2 og APEX 3.1.1 Oracle Database Express Edition (XE) er Oracles lille gratis database tilsvarende Microsofts SQL Server Express Edition. Oracle Database XE

Læs mere

DMX styring med USB-interface

DMX styring med USB-interface DMX styring med USB-interface Introduktion...2 DMX bibliotek...3 Programmering af kanaler...7 Sådan skabes et show/en lyssekvens...11 Introduktion DMX LightPlayer er en avanceret men meget brugervenlig

Læs mere

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

PHP Snippets. De små korte. Skrevet af Daniel Pedersen PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk

Læs mere

Introduktion til Calc Open Office med øvelser

Introduktion til Calc Open Office med øvelser Side 1 af 8 Introduktion til Calc Open Office med øvelser Introduktion til Calc Open Office... 2 Indtastning i celler... 2 Formler... 3 Decimaler... 4 Skrifttype... 5 Skrifteffekter... 6 Justering... 6

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

Funktions opdatering 4.5.01 ASPECT4 QueryManager (B=fejl, S=support/Info, T=Opgave, W=Releaseønske)

Funktions opdatering 4.5.01 ASPECT4 QueryManager (B=fejl, S=support/Info, T=Opgave, W=Releaseønske) ASPEC4 QueryManager (B=fejl, S=support/Info, =Opgave, =Releaseønske) 00001289 Dags dato som standardværdi Standardværdierne for datofelter i en rekvisition kan sættes til dynamiske datoer, således at rekvisitionsfeltet

Læs mere

I tabellen vises en liste med værdier for den uafhængige variabel, og desuden den tilsvarende værdi for den afhængige variabel.

I tabellen vises en liste med værdier for den uafhængige variabel, og desuden den tilsvarende værdi for den afhængige variabel. Kapitel 13: Tabeller 13 Resumé af tabeller... 222 Oversigt over trinene i oprettelse af en tabel... 223 Indstilling af tabelparametre... 224 Visning af en automatisk tabel... 226 Oprettelse af en manuel

Læs mere

LESSOR-5. Inquiry (teknisk beskrivelse) Tilgængelighed for andre systemer

LESSOR-5. Inquiry (teknisk beskrivelse) Tilgængelighed for andre systemer LESSOR-5 Inquiry (teknisk beskrivelse) Effektive og fleksible IT-løsninger til LØN, TID og HR Tilgængelighed for andre systemer LESSOR-5 Inquiry har til formål at gøre data i LESSOR-5 tilgængelig for andre

Læs mere

(Positions) Talsystemer

(Positions) Talsystemer (Positions) Talsystemer For IT studerende Hernik Kressner Indholdsfortegnelse Indledning...2 Positions talsystem - Generelt...3 For decimalsystemet gælder generelt:...4 Generelt for et posistionstalsystem

Læs mere

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

Databasesystemer. IT Universitetet i København 7. juni 2005 Databasesystemer IT Universitetet i København 7. juni 2005 Eksamenssættet består af 5 opgaver med 13 spørgsmål, fordelt på 6 sider (inklusiv denne side). Vægten af hver opgave er angivet. Du har 4 timer

Læs mere

Integration af DocuBizz og Helios

Integration af DocuBizz og Helios Integration af DocuBizz og Helios v. 0.2 Side 1 af 7 Integration af DocuBizz og Helios 1 Overordnet beskrivelse... 1 2 Format for de overførte data... 1 3 Overførsel af stamdata fra Helios til DocuBizz...

Læs mere

Ferieregnskab (Rapport-ID: 74)

Ferieregnskab (Rapport-ID: 74) Ferieregnskab (Rapport-ID: 74) Indhold 1. Hvad er formålet med rapporten?... 1 2. Overblik over rapporten... 1 3. Den færdige rapport... 2 4. Faste, indbyggede filtre / betingelser i rapporten... 2 5.

Læs mere

Kursusbeskrivelse Microsoft Excel Grundkursus

Kursusbeskrivelse Microsoft Excel Grundkursus kursusbeskrivelse Office kurser ms Excel niveau 1 Kursusbeskrivelse Microsoft Excel Grundkursus Varighed: 1 dag Excel version 2010, 2013 & 2016 Niveau 1. I gang med Excel Hvad kan du bruge kurset til:

Læs mere

Det. Bind. Journal of. Citations. Impact Factor. Articles. Books. Patents

Det. Bind. Journal of. Citations. Impact Factor. Articles. Books. Patents Det Natur og Biovidenskabelige Fakultet SCIENCE Forskningsdokumentation Guide til Rapportgenerering i CURIS Bind 1: Grundlæggendee rapportering 160 70 140 60 120 50 100 40 80 60 30 40 20 20 10 0 0 Journal

Læs mere

SelskabMasterKom. Per Kjærulf-Møller ApS 13. november 2008. KomTabel-layout. Art: 41 Sendes: Begge veje

SelskabMasterKom. Per Kjærulf-Møller ApS 13. november 2008. KomTabel-layout. Art: 41 Sendes: Begge veje SelskabMasterKom Bemærkninger: Ny protokol (opr. Art 11) Generelt : 1. + 2. byte = RecordArt 3. byte = Transaktionskode 1 = Opret 2 = Ændring 3 = Slet Email og Hjemmeside reduceret til 30 kar. Samlet længde

Læs mere

Eksamen, DSDS, forår 2009

Eksamen, DSDS, forår 2009 Eksamen, DSDS, forår 2009 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Systemair Connect. Opsætning

Systemair Connect. Opsætning Systemair Connect Opsætning Opsætning af Systemair Connect Denne vejledning er lavet for at hjælpe dig i gang med opsætningen af Systemair Connect. Du kan bl.a. læse om, hvordan du opbygger en understruktur

Læs mere

Øvelser i Business Intelligence

Øvelser i Business Intelligence IBM DB2 Universal Database Øvelser i Business Intelligence Version 7 Læs de generelle oplysninger under Om dette dokument på side 155, før oplysningerne i denne bog og det tilhørende program anvendes.

Læs mere

Database kursus Forår 2013

Database kursus Forår 2013 Database kursus Forår 2013 Jacob Aae Mikkelsen Database design og programmering/databaser fra Organisationsorienteret softwareudvikling 1 Praktisk info Lærebog Database Systems: The Complete Book Skema

Læs mere

Typografidefinition: Typografi1: Skrifttype: 10 pkt, (intet) DKAL Snitflader REST Afhentningssystem

Typografidefinition: Typografi1: Skrifttype: 10 pkt, (intet) DKAL Snitflader REST Afhentningssystem Typografidefinition: Typografi1: Skrifttype: 10 pkt, (intet) DKAL Snitflader REST Afhentningssystem 1 Indholdsfortegnelse A3.1 INTRODUKTION 3 A3.1.1 HENVISNINGER 3 A3.1.2 LÆSEVEJLEDNING 4 A3.1.2.1 SÅDAN

Læs mere

Nyansatte og fratrådte i valgfrit år (Rapport-ID: 47)

Nyansatte og fratrådte i valgfrit år (Rapport-ID: 47) Nyansatte og fratrådte i valgfrit år (Rapport-ID: 47) Indhold 1. Hvad er formålet med rapporten?... 1 2. Overblik over rapporten... 1 3. Den færdige rapport... 2 4. Faste, indbyggede filtre / betingelser

Læs mere

FORCE Inspect Online Manual v. 1.02. FORCE Inspect Online Manual. 1 af 18

FORCE Inspect Online Manual v. 1.02. FORCE Inspect Online Manual. 1 af 18 FORCE Inspect Online Manual 1 af 18 Indholdsfortegnelse Indholdsfortegnelse... 2 FORCE Inspect Online Manual... 3 Generelt... 3 Login... 3 Main... 4 Intro sektion... 4 Links sektion... 4 News sektion...

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

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

MapBasic brugergruppe. Geografiske objekter. Peter Horsbøll Møller Senior Systems Engineer April 2013 MapBasic brugergruppe Geografiske objekter Slå mute fra hvis I vil sige eller spørge om noget Peter Horsbøll Møller Senior Systems Engineer April 2013 Program MapBasic IDE som udviklingsværktøj Geografiske

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

Brugervejledning. Sådan laves et opslag med avanc. søgning. December 2010

Brugervejledning. Sådan laves et opslag med avanc. søgning. December 2010 Brugervejledning Sådan laves et opslag med avanc. søgning December 2010 Sådan laves en avanceret søgning Denne vejledning gennemgår eksempler på, hvordan avanceret søgning kan bruges. Når du har startet

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

Brugermanual SuperSail (DS Version) Performance System Release 2.0

Brugermanual SuperSail (DS Version) Performance System Release 2.0 Brugermanual SuperSail (DS Version) Performance System Release 2.0 Side 1 af 14 Indholdsfortegnelse 1 LOGIN MENU... 3 2 HOVED MENU... 4 3 TRACKER INFO MENU... 5 4 KAPSEJLADS MENU... 6 4.1 TILMELD KAPSEJLADS

Læs mere

DKAL Snitflader REST Register

DKAL Snitflader REST Register DKAL Snitflader REST Register 1 Indholdsfortegnelse A2.1 INTRODUKTION 3 A2.1.1 HENVISNINGER 3 A2.1.2 LÆSEVEJLEDNING 4 A2.1.2.1 SÅDAN LÆSES EN REST GRAF 4 A2.1.2.2 SÅDAN LÆSES EN RESSOURCE OG EN TYPE 4

Læs mere

Huskesedler. Design og automatisering af regneark. Microsoft Excel 2013

Huskesedler. Design og automatisering af regneark. Microsoft Excel 2013 Huskesedler Design og automatisering af regneark Microsoft Excel 2013 Januar 2017 Knord Side 2 Indholdsfortegnelse Ark... 4 Beskyttelse... 6 Diagram... 7 Eksport af data... 8 Fejlretning i formler... 9

Læs mere

Digital post Snitflader Bilag A2 - REST Register Version 6.3

Digital post Snitflader Bilag A2 - REST Register Version 6.3 Digital post Snitflader Bilag A2 - REST Register Version 6.3 1 Indholdsfortegnelse A2.1 INTRODUKTION 4 A2.1.1 HENVISNINGER 4 A2.2 OVERSIGT OVER FUNKTIONSOMRÅDE 5 A2.2.1 OPRET / HENT OPLYSNINGER OM SLUTBRUGER

Læs mere

Formatbeskrivelse til ERH - Bankens Erhvervsformat (BEC format) Oktober 2005

Formatbeskrivelse til ERH - Bankens Erhvervsformat (BEC format) Oktober 2005 Formatbeskrivelse til ERH - Bankens Erhvervsformat (BEC format) Oktober 2005 Dette dokument er inddelt i 3 hovedområder: Beskrivelse af filformatet, kontonummerformater og datatyper Betalingsformat for

Læs mere

Programmering i C. Lektion 4. 5. december 2008

Programmering i C. Lektion 4. 5. december 2008 Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )

Læs mere

1. Release Notes for WorkZone Content Server 2014 og Captia Web Client 4.7 3. 2. Ny og ændret funktionalitet 4. 3. Rettet i denne version 7

1. Release Notes for WorkZone Content Server 2014 og Captia Web Client 4.7 3. 2. Ny og ændret funktionalitet 4. 3. Rettet i denne version 7 2014 Release Notes WorkZone Content Server 2014 Indhold 1. Release Notes for WorkZone Content Server 2014 og Captia Web Client 4.7 3 2. Ny og ændret funktionalitet 4 3. Rettet i denne version 7 4. Kendte

Læs mere

Advanced Word Template Brugermanual

Advanced Word Template Brugermanual Advanced Word Template Brugermanual Forord: Advanced Word Template er et værktøj, der anvendes sammen med Microsoft Word til at opbygge ensartet beskrivelser på en mere intelligent måde end Copy and Paste

Læs mere

Assignment #5 Toolbox Contract

Assignment #5 Toolbox Contract Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal

Læs mere

Indberetning til eindkomst via SFTP. Folder: J:\Kunder\eIndkomst Projektdokumentation\SFTP\Vejledninger\EC SFTP_eIndkomst 2008-01-22.

Indberetning til eindkomst via SFTP. Folder: J:\Kunder\eIndkomst Projektdokumentation\SFTP\Vejledninger\EC SFTP_eIndkomst 2008-01-22. Indberetning til eindkomst via SFTP Forfatter: IBM Emne: Indberetning til eindkomst via SFTP Side 1 af 9 Dokumenthistorik Revisionshistorik Dato for denne revision: 22.01.2007 Dato for næste revision:

Læs mere

MapBasic brugergruppe. SQL i MapBasic. Peter Horsbøll Møller Senior Systems Engineer Marts Slå mute fra hvis I vil sige eller spørge om noget

MapBasic brugergruppe. SQL i MapBasic. Peter Horsbøll Møller Senior Systems Engineer Marts Slå mute fra hvis I vil sige eller spørge om noget MapBasic brugergruppe SQL i MapBasic Slå mute fra hvis I vil sige eller spørge om noget Peter Horsbøll Møller Senior Systems Engineer Marts 2013 Program MapBasic IDE som udviklingsværktøj MapBasic-vinduet

Læs mere

Introduktion til EXCEL med øvelser

Introduktion til EXCEL med øvelser Side 1 af 10 Introduktion til EXCEL med øvelser Du kender en almindelig regnemaskine, som kan være til stort hjælp, når man skal beregne resultater med store tal. Et regneark er en anden form for regnemaskine,

Læs mere

DKAL Snitflader Masseforsendelse

DKAL Snitflader Masseforsendelse DKAL Snitflader Masseforsendelse 1 C.1 Indholdsfortegnelse C.1 INDHOLDSFORTEGNELSE... 2 C.2 LÆSEVEJLEDNING... 3 C.3 TILMELDINGSLISTE... 4 C.3.1 RECORD-STRUKTUR... 4 C.3.2 OIOXML-STRUKTUR... 5 C.4 MATERIALE-INDLÆSNING...6

Læs mere

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

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE Fact sheet Indholdsfortegnelse Fact Sheet Gantt kort Valgt af virksomhed Brainstorm Attribut tabel ER-diagram Skitse MySQLWorkbench

Læs mere

Views etc. Databaser

Views etc. Databaser 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

Læs mere

MsSQL: Basal performance tuning, part 1

MsSQL: Basal performance tuning, part 1 Denne guide er oprindeligt udgivet på Eksperten.dk MsSQL: Basal performance tuning, part 1 Hvordan man skriver "God SQL" for bedre performance. Skrevet den 03. Feb 2009 af trer I kategorien Databaser /

Læs mere

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

Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, Bjarne Larsen); SQL-programmering Alle opgaverne er baseret på ACCESS-databasen REGNSKAB Løsningsforslag til SQL-opgavesættet Følgende løsninger til opgaverne i forbindelse med Regnskabsdatabasen er vejledende. Fund af

Læs mere

OPC ACCESS HEARTBEAT 1

OPC ACCESS HEARTBEAT 1 OPC Access Heartbeat Dette dokument gennemgår i et kort eksempel, hvordan OPC Access konfigureres til at anvende Heartbeat funktionen til at dokumentere kontinuerlig forbindelse mellem SQL Server og OPC

Læs mere

Kort om CoinDB (Mønt- og seddelsamling):

Kort om CoinDB (Mønt- og seddelsamling): Kom godt i gang med CoinDB programmet fra PetriSoft (Holder styr på din Mønt- seddel- eller frimærkesamling) Kort om CoinDB (Mønt- og seddelsamling): CoinDB er et Windows program, der anvendes af mønt-

Læs mere

OIOUBL Guideline. OIOUBL Guideline

OIOUBL Guideline. OIOUBL Guideline OIOUBL Guideline OIOUBL Guideline OIOUBL Datatyper UBL 2.0 Datatypes G29 Version 1.3 Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5 Kolofon Kontakt: Digitaliseringsstyrelsen E-mail:

Læs mere