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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Innovative Business Software A/S

Innovative Business Software A/S Innovative Business Software A/S Technical Note Klienter - Installation og opdatering 26. november 2014 ii MEDDELELSE OM OPHAVSRET Copyright 2014 Innovative Business Software A/S. Alle rettigheder forbeholdt.

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

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

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

Brugervejledning til IM and Presence-tjenesten på Cisco Unified Communications Manager, version 9.0(1)

Brugervejledning til IM and Presence-tjenesten på Cisco Unified Communications Manager, version 9.0(1) Brugervejledning til IM and Presence-tjenesten på Cisco Unified Communications Manager, version 9.0(1) Første gang udgivet: May 25, 2012 Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive

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

Formatbeskrivelse til ERH Bankens Erhvervsformat (BEC format) November 2010

Formatbeskrivelse til ERH Bankens Erhvervsformat (BEC format) November 2010 Formatbeskrivelse til ERH Bankens Erhvervsformat (BEC format) November 2010 Dette dokument er inddelt i 4 hovedområder: Beskrivelse af filformatet, kontonummerformater og datatyper. Betalingsformat for

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

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 V009 Elevens navn IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 Udarbejdet af Søren Haahr, juni 2010 Copyright Enhver mangfoldiggørelse af tekst eller illustrationer

Læs mere

Peter Kragh Hansen. Microsoft Excel 2013 Videregående. ISBN nr.: 978-87-93212-02-2

Peter Kragh Hansen. Microsoft Excel 2013 Videregående. ISBN nr.: 978-87-93212-02-2 Peter Kragh Hansen Microsoft Excel 2013 Videregående ISBN nr.: 978-87-93212-02-2 I n d h o l d s f o r t e g n e l s e Introduktion... 1 Funktioner... 2 Syntaks (Grammatik)... 2 Guiden Funktion... 4 Formelhjælp...6

Læs mere

Software Projekt NoSQL vs RMDB

Software Projekt NoSQL vs RMDB Software Projekt NoSQL vs RMDB Skrevet af Carsten Sørensen, Hans Jørgen Frandsen, Peter Haislund Department of Computer Science, University of Aarhus Aabogade 34, 8200 Arhus N, Denmark 201200089, 19960442,

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

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

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Installation og Drift. Aplanner for Windows Systemer Version 8.15 Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller

Læs mere

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

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

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

RIGSPOLITIET. Vejledning i konvertering. fra. Word -dokument. til. PDF-fil. på politi.dk. Rigspolitiets websektion

RIGSPOLITIET. Vejledning i konvertering. fra. Word -dokument. til. PDF-fil. på politi.dk. Rigspolitiets websektion RIGSPOLITIET Vejledning i konvertering fra Word -dokument til PDF-fil på politi.dk Rigspolitiets websektion Indledning Da vi skal leve op til kravene om tilgængelighed på Internettet, skal alle tekster

Læs mere

Skifte til Outlook 2010

Skifte til Outlook 2010 I denne vejledning Microsoft Microsoft Outlook 2010 ser meget anderledes ud end Outlook 2003, og vi har derfor oprettet denne vejledning, så du hurtigere kan komme i gang med at bruge programmet. Læs videre

Læs mere

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);

Læs mere

RefWorks en vejledning fra UCL Biblioteket. Indholdsfortegnelse

RefWorks en vejledning fra UCL Biblioteket. Indholdsfortegnelse Indholdsfortegnelse Hvad er RefWorks?... 2 Opret dig som bruger... 2 Inden du går i gang... 3 Klargøring af computer til download af Write-N-Cite v. 4.2... 3 Installation af Write-N-Cite... 4 Installation

Læs mere

Microsoft. fra Word 2003

Microsoft. fra Word 2003 I denne vejledning Microsoft Word 2010 ser meget anderledes ud end Word 2003, og vi har derfor oprettet denne vejledning, så du hurtigere kan komme i gang med at bruge programmet. Læs videre for at få

Læs mere

Email Archiving. SaaS Email Archiving. Brugervejledning Udgave D

Email Archiving. SaaS Email Archiving. Brugervejledning Udgave D Brugervejledning Udgave D SaaS Email Archiving Email Archiving Email Archiving er en skybaseret tjeneste, der automatisk arkiverer din mail på et sikkert centralt sted. Desuden giver Email Archiving dig

Læs mere

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje. Maple Dette kapitel giver en kort introduktion til hvordan Maple 12 kan benyttes til at løse mange af de opgaver, som man bliver mødt med i matematiktimerne på HHX. Skærmbilledet Vi starter med at se lidt

Læs mere

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Easy Guide i GallupPC

Easy Guide i GallupPC Easy Guide i GallupPC Version. 6.00.00 Gallup A/S Masnedøgade 22-26 DK 2100 København Ø Telefon 39 27 27 27 Fax 39 27 50 80 Indhold SÅDAN KOMMER DU I GANG MED AT ANVENDE GALLUPPC... 2 TILFØJELSE AF UNDERSØGELSER

Læs mere

WinDCCD Brugervejledning. Indhold. Adgangskontrol...2

WinDCCD Brugervejledning. Indhold. Adgangskontrol...2 Indhold Adgangskontrol...2 WinDCCD Hovedmenu...3 Information på tværs...3 Opret generel information...3 Slet generel information...3 Patienter...4 Patienter...4 Sådan filtrerer du data...4 Sådan redigerer

Læs mere

Introduktion til webanalyser.dk

Introduktion til webanalyser.dk Introduktion til webanalyser.dk Hvis du udskriver og følger denne introduktion, vil du få et godt overblik over systemet på ca. 20 minutter. Når du har fulgt beskrivelsen, har du oprettet dit første skema,

Læs mere

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

Sådan får du en kirkegård på nettet i DKI-modellen! v./stegemüller & Sepstrup Side 1 09-04-2007 Sådan får du en kirkegård på nettet i DKI-modellen! Vi beskriver ret detaljeret, hvordan du kommer fra dit regneark med informationer fra gravsten til en hjemmeside,

Læs mere

Brugervejledning til hurtig start af EasyBusiness Online Indholdsfortegnelse:

Brugervejledning til hurtig start af EasyBusiness Online Indholdsfortegnelse: Brugervejledning til hurtig start af EasyBusiness Online Indholdsfortegnelse: 1. Hvordan du bliver tilsluttet EasyBusiness...2 2. Hvordan du foretager en søgning...2 3. Hvordan du gemmer og åbner en søgning...4

Læs mere

Programmering I Java/C#

Programmering I Java/C# Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren

Læs mere

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

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk Projekt database 3 Semester - Mul a Projekt 1 Yaser Osman cph-mo102@cphbusiness.dk Dan Eskildsen cph-de32@cphbusiness.dk Ammar Al-Basri cph-aa140@cphbusiness.dk Emre Kandemir cph-ek68@cphbusiness.dk Lotte

Læs mere

Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C Intro og grundlæggende C 5. marts 2007 Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner

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

Kort og godt om test af arkiveringsversioner

Kort og godt om test af arkiveringsversioner Kort og godt om test af arkiveringsversioner Data og dokumenter fra den offentlige forvaltnings it-systemer, som skal bevares for eftertiden, skal afleveres til arkiv i form af arkiveringsversioner. Arkiveringsversioner

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

Anvendelse af dobbelthistorik i GD2

Anvendelse af dobbelthistorik i GD2 Grunddataprogrammet under den Fællesoffentlige Digitaliseringsstrategi GD2 - Adresseprogrammet Anvendelse af dobbelthistorik i GD2 Implementerings regler og eksempler på dobbelthistorik MBBL- REF: Version:

Læs mere

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

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:

Læs mere

Deltag i en quiz: Test din viden i SAS -programmering

Deltag i en quiz: Test din viden i SAS -programmering Deltag i en quiz: Test din viden i SAS -programmering Georg Morsing, uddannelsesdirektør Copyright 2011 SAS Institute Inc. All rights reserved. Test din SAS -programmering 12 spørgsmål 4 svarmuligheder

Læs mere

Lønstigning mellem to selvvalgte perioder (Rapport-ID: 67)

Lønstigning mellem to selvvalgte perioder (Rapport-ID: 67) Lønstigning mellem to selvvalgte perioder (Rapport-ID: 67) 1. Hvad er formålet med rapporten? I denne rapport kan du sammenligne lønnen på to forskellige selvvalgte tidspunkter (to løngenerationer) pr.

Læs mere

Her ser du dit arbejde i preview undervejs og udgiver dit arbejde når du er færdig. (se side 4)

Her ser du dit arbejde i preview undervejs og udgiver dit arbejde når du er færdig. (se side 4) Sitecore vejledning Hvad er det? Sitecore er det program, den officielle del af Spejdernet laves i. Sitecore er et Content Management System, dvs. indholds-håndteringssystem til hjemmesider. Hvordan starter

Læs mere

Formatbeskrivelse til indlæsning af betalinger

Formatbeskrivelse til indlæsning af betalinger Formatbeskrivelse til indlæsning af betalinger - ERH Bankens Erhvervsformat (BEC) Udarbejdet af: BEC Gældende fra: 21. februar 2013 Version Udarbejdet af Dato 1.0 BEC Bankernes EDB Central 21. februar

Læs mere

Effektiv søgning på web-steder

Effektiv søgning på web-steder Effektiv søgning på web-steder 7. maj 1998 Udarbejdet af DialogDesign ved Rolf Molich, Skovkrogen 3, 3660 Stenløse Indhold 1. Indledning 3 1.1. Model for søgning 3 2. Forskellige former for søgning 4 2.1.

Læs mere

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse.

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse. Boolesk Algebra og det binære talsystem - temahæfte informatik. I dette hæfte arbejdes der med to-tals systemet og logiske udtryk. Vi oplever at de almindelige regneregler også gælder her, og vi prøver

Læs mere

Skifte til Excel 2010

Skifte til Excel 2010 I denne vejledning Microsoft Excel 2010 ser meget anderledes ud end Excel 2003, og vi har derfor oprettet denne vejledning, så du hurtigere kan komme i gang med at bruge programmet. Læs videre for at få

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony)

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Generelt Mobil Reception er et værktøj som bruges til at overvåge medarbejdere, kø er og meget andet samt styre dit omstillingsanlæg

Læs mere

KIH Database. Systemdokumentation for KIH Databasen. 1. maj 2013. Side 1 af 13

KIH Database. Systemdokumentation for KIH Databasen. 1. maj 2013. Side 1 af 13 KIH Database Systemdokumentation for KIH Databasen 1. maj 2013 Side 1 af 13 Indholdsfortegnelse Indholdsfortegnelse... 2 Indledning... 3 Systemoverblik... 3 KIH Database applikationsserver... 5 Forudsætninger

Læs mere

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13 1 Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Hvad er en makro... 10 Hvad kan du bruge en makro til... 10 Hvad en makro er (Visual Basic for Applications)... 11 Det hele sker

Læs mere

Start af nyt schematic projekt i Quartus II

Start af nyt schematic projekt i Quartus II Start af nyt schematic projekt i Quartus II Det følgende er ikke fremstillet som en brugsanvisning der gennemgår alle de muligheder der er omkring oprettelse af et Schematic projekt i Quartus II men kun

Læs mere

Navision Stat 7.0. CVR Integration. Overblik. Side 1 af 15. 30. april 2015 ØS/ØSY/MAG

Navision Stat 7.0. CVR Integration. Overblik. Side 1 af 15. 30. april 2015 ØS/ØSY/MAG Side 1 af 15 Navision Stat 7.0 30. april 2015 ØS/ØSY/MAG CVR Integration Overblik Introduktion I denne vejledning kan du læse om, hvordan du validerer dine debitorers og kreditorers data op imod Det Centrale

Læs mere

IT/Regneark Microsoft Excel 2010 Grundforløb

IT/Regneark Microsoft Excel 2010 Grundforløb Januar 2014 Indhold Opbygning af et regneark... 3 Kolonner, rækker... 3 Celler... 3 Indtastning af tekst og tal... 4 Tekst... 4 Tal... 4 Værdier... 4 Opbygning af formler... 5 Indtastning af formler...

Læs mere

INDHOLDSFORTEGNELSE. INDLEDNING... Indledning. KAPITEL ET... Kom videre med Excel. KAPITEL TO... 27 Referencer og navne

INDHOLDSFORTEGNELSE. INDLEDNING... Indledning. KAPITEL ET... Kom videre med Excel. KAPITEL TO... 27 Referencer og navne INDHOLDSFORTEGNELSE INDLEDNING... Indledning KAPITEL ET... Kom videre med Excel Flyt markering efter Enter... 8 Undgå redigering direkte i cellen... 9 Markering ved hjælp af tastaturet... 10 Gå til en

Læs mere

Søren Løbner (lobner) ddb Databaser 2007 10 10

Søren Løbner (lobner) ddb Databaser 2007 10 10 ddb Excercise Week 4 Fra relationships til relations Nu når vi har fået vores skemaer på plads, kan SQL udtrykkene til konstruktion af relationerne laves Det foregår ved at vi tager en 1 til 1 oversættelse

Læs mere

poedit og oversættelse af sprogfiler

poedit og oversættelse af sprogfiler poedit og oversættelse af sprogfiler af Georg S. Adamsen WordPress.Blogos.dk 2009 http://kortlink.dk/wordpressblogosdk/6g38 1 af 11 14-04-2009 14:55 Jeg får af og til spørgsmål om, hvordan man bruger poedit,

Læs mere

Import af udtræk af ODIN-data i Access-databaser

Import af udtræk af ODIN-data i Access-databaser September 2006 OBS: Kun brugere, der har rettigheden Redningsberedskabsadministrator, kan eksportere data fra ODIN. Der er mange muligheder for udtræk af data fra ODIN, men ved at anvende udtrækkene Alarmer,

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net Web Admin 5.5 Copyright 2003 Gullestrup.net Log ind på systemet Start med at gå ind på http://mailadmin.gullestrup.net i din browser. Indtast din Email Adresse samt Password, som du tidligere har modtaget

Læs mere

Finanstilsynets indberetningssystem. Vejledning til Regnearksskabelonerne

Finanstilsynets indberetningssystem. Vejledning til Regnearksskabelonerne Finanstilsynets indberetningssystem Vejledning til Regnearksskabelonerne Finanstilsynet - 2. udgave oktober 2009 Indholdsfortegnelse 1 INDLEDNING... 2 2 FORUDSÆTNINGER... 3 3 TRIN FOR TRIN... 4 3.1 Hent

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

Mathcad Survival Guide

Mathcad Survival Guide Mathcad Survival Guide Mathcad er en blanding mellem et tekstbehandlingsprogram (Word), et regneark (Ecel) og en grafisk CAS-lommeregner. Programmet er velegnet til matematikopgaver, fysikrapporter og

Læs mere

CM 940-F / 941-F / 942-F. Short Operating Instructions Short Programming Instructions Dansk - Version

CM 940-F / 941-F / 942-F. Short Operating Instructions Short Programming Instructions Dansk - Version CM 940-F / 941-F / 942-F O L Y MPIA Short Operating Instructions Short Programming Instructions Dansk - Version www.olympia-vertrieb.de SINCE 1903 Programmering af kassen via PC'en Du har mulighed for

Læs mere

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 3: E-R modellering 17. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvornår, hvorfor og hvordan? Business

Læs mere

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske Det Naturvidenskabelige Fakultet Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske Indholdsfortegnelse Introduktion til Blackboard Content System...3 Øvelse 01 individuel:

Læs mere

Vejledning til Club Counsellor i brug af RYE Database 2008

Vejledning til Club Counsellor i brug af RYE Database 2008 Vejledning til Club Counsellor i brug af RYE Database 2008 Indledning Multi District Denmark har udviklet en database til brug ved administration af udvekslingsstudenter. Databasen kan åbnes fra alle pc

Læs mere

IBM DB2 Universal Database til Windows. Brugervejledning. Version 7 G511-5799-00

IBM DB2 Universal Database til Windows. Brugervejledning. Version 7 G511-5799-00 IBM DB2 Universal Database til Windows Brugervejledning Version 7 G511-5799-00 IBM DB2 Universal Database til Windows Brugervejledning Version 7 G511-5799-00 Læs de generelle oplysninger under Tillæg

Læs mere

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN 5. OPSÆTNING DOKUMENTSKABELONER Under fanen Dok. skabeloner kan du arbejde med de skabeloner som du har i systemet, eller du kan oprette nye. I denne vejledning kigger vi på hvordan du kan tilrette selve

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS August 2012 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

Tlf. +45 7027 1699 Fax + 45 7027 1899

Tlf. +45 7027 1699 Fax + 45 7027 1899 Firmaordninger I firmaoversigten kan du holde styr på dit kundekartotek samt disses bookinger. Der kan desuden oprettes andre firmaer end dit eget. Herved kan der udbydes særlige ydelser på med egne arbejdstider.

Læs mere

Brugermanual SuperSail (DS Version) Performance System Release 1.0

Brugermanual SuperSail (DS Version) Performance System Release 1.0 Brugermanual SuperSail (DS Version) Performance System Release 1.0 Dokument: SuperSail DS Users Manual 1.0.docx Dato: 09. December - 2013 Revision: 1.0 Antal sider: 19 Side 1 af 19 Indholdsfortegnelse

Læs mere

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE 1 Tekniske Krav 1.1 Hardware krav: En skærm gerne med touch Hvis skærmen ikke har touch, skal du bruge et tastatur og en mus Webcam Gerne i HD En ekstern lydenhed

Læs mere

Velkommen til REX onlinehjælp

Velkommen til REX onlinehjælp Velkommen til REX onlinehjælp I REX onlinehjælp kan du finde information om følgende emner: Indhold Enkel søgning...3 Hvordan kan du bruge søgefeltet?...3 Søg efter sætninger...3 Søg efter specifikke ord

Læs mere

MobileIVR Brugervejledning

MobileIVR Brugervejledning MobileIVR Brugervejledning Vejledning i brugerfunktioner i MobileIVR Version 1.6 august 2008 www.blueposition.com Alle firma og produkt navne omtalt i dokumentet er varemærker eller registrerede varemærker

Læs mere

EXCEL 2010 KURSUSHÆFTE TRIN 1 EXCEL 2010 KURSUSHÆFTE TRIN 1

EXCEL 2010 KURSUSHÆFTE TRIN 1 EXCEL 2010 KURSUSHÆFTE TRIN 1 EXCEL 2010 KURSUSHÆFTE TRIN 1 EXCEL 2010 KURSUSHÆFTE TRIN 1 Excel 2010 for begyndere første trin Baseret på små overskuelige øvelser Mange store illustrationer i farver KURSUSHÆFTE TRIN 1 Excel 2010 kursushæfte

Læs mere

Om brugen af matematiske tegn og objekter i en god matematisk fremstilling

Om brugen af matematiske tegn og objekter i en god matematisk fremstilling Om brugen af matematiske tegn og objekter i en god matematisk fremstilling af Petur Birgir Petersen Et særpræg ved matematik som videnskab er den udstrakte brug af symboler. Det er vigtigt at symbolerne

Læs mere

2013 SP1. Konfiguration af koncernindblik. Configuration Guide

2013 SP1. Konfiguration af koncernindblik. Configuration Guide 2013 SP1 Konfiguration af koncernindblik Configuration Guide Intellectual Property Rights This document is the property of ScanJour. The data contained herein, in whole or in part, may not be duplicated,

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

MobileCTI Dialer Installations og konfigurations vejledning

MobileCTI Dialer Installations og konfigurations vejledning MobileCTI Dialer Installations og konfigurations vejledning Vejledning i Installation og konfiguration af MobileCTI Outlook Dialer / MobileCTI TAPI Dialer Version 2.10 December 2005 www.blueposition.com

Læs mere