Kort handledning för Databassystemet Ingres och gränssnittsprogrammet isql

Relevanta dokument
SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Övningar i SQL. SQLAccess.doc Ove Lundgren

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Starta MySQL Query Browser

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

1.Lär känna MS SQL Observera. Tips. Förberedelse

Guide för behörighetssystemet i Matilda

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

ALEPH ver. 16 Introduktion

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Manual

Kapitel 4 Arkivmenyn Innehåll

Lab1 inginfo07. Detta dokument innehåller övningar för introduktion till Media-programmets datorsystem (Mac OS X).

Laboration SQL. Kom igång.

Sample exam questions. Database exam TIG058

Structured Query Language (SQL)

Manual för Typo3 version 4.2

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Se kurshemsidan för användbara länkar för att genomföra denna laboration.

BLI VÄN MED DIN DATOR ENHETER MAPPAR FILER

2013 MUSICPARTNER AB

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

SF1672, Linjär Algebra med Matlab för F1 Lab0

Komma igång med 3L Pro Komma igång med 3L. Copyright VITEC FASTIGHETSSYSTEM AB

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

Databaser och Datamodellering Foreläsning IV

Databaser och SQL - en kort introduktion

STOCKHOLMS UNIVERSITET. Handbok 2. Funktionaliteter moveon 4

5HVLVWHQVWDEHOO 'DWD3DUWQHU. Er partner inom data

WCMS-15, Webbutvecklare CMS

Se till att posten är i Ändringsläge. Gå till rullgardinsmenyn under Föremål och välj Lägg in bild.

Åtkomst Du kommer till ditt system via en webblänk som erhålles från oss. Via denna länk ges tillgång till sökning i bibliotekets katalog.

ActiveBuilder Användarmanual

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Xemacs, första hjälpen!

Till flera av ovanstående finns det dessutom varianter, vilka kommer att presenteras i de olika avsnitten.

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Publicera material i Learn

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Användarhandbok StepStones Recruiters Space

DATORINTRODUKTION 2010 LABORATION 1

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

Lathund FE-edit i Typo3

Introduktion till frågespråket SQL (v0.91)

Öppna EndNote varje gång när du vill samla referenser till ditt bibliotek.

SORSELE KOMMUN. Handbok OEW. 28 sept 2012 Mari-Anne Englund Barbro Olofsson. Sorsele kommun Version , rev (19)

Anvä ndärguide Nyä Expeditionsresor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Hur man skapa en Wiki.

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Mikromarc 3 Fjärrlån. Version 6.30

Thomas Pihl Frontermanual för studerande vid Forum Ystad

För att logga in och få tillgång till Bildarkivet krävs att man är registrerad som Behörig Användare.

Introduktion MySQL och MariaDB

FC-kurs Röbäcks skolområde, åk 5-6

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet.

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

IT-system. BUP Användarmanual

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Användarguide Lathund Tema Modersmåls webbplats

Steg 1 Minnen, mappar, filer Windows 7

Trafla databasen vi hämtar data från (remote export) ligger på en godtycklig maskin i nätverket. Den här databasen är en MIMER databas.

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

Databasutveckling Introduktion till SQL och TSQL

Om Mappar Uppgift 1: Skapa en mapp på Skrivbordet... 2 Om enheter... 3 Uppgift 2: Byt namn på din nya Höst -mapp till Vår...

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Filbeskrivningar Eller på särskild CD skiva

Webbprogrammering, grundkurs 725G54

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

Vilken version av Dreamweaver använder du?

TENTAMEN DATABASKUNSKAP ITEK12

FC-kurs Röbäcks skolområde femmor och sexor

Flytt av. Vitec Mäklarsystem

Introduktion till Jasmine 1.2 ODQL

Switch Driver 4. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

GUIDE FÖR POWERPOINT PRESENTATIONER MICROSOFT OFFICE, POWERPOINT 2007

Arg-administratörens guide till Umbraco v 1.2.1

Handledning. Biträdessidan - E-tjänst för offentliga biträden. Handledning till Biträdessidan, 2017 version 1.4 :

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB

Hur man lägger upp och redigerar dokument i Typo3.

Referenshanteringsprogrammet

Användarmanual TextAppen Online

INSTALLATION AV VITEC MÄKLARSYSTEM

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Formulär i Sitecore. Innehåll. Inlogg sitecore:

ONEDRIVE ÖVERBLICK Vad är OneDrive?... 2 Molnet?... 2 Två typer av OneDrive... 2 Hitta sin OneDrive för företag... 3

Grunderna i SQL del 1

Publicera taltidningen

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Transkript:

Kort handledning för Databassystemet Ingres och gränssnittsprogrammet isql Göran Landgren 2002 1 Starta gränssnittsprogrammet isql Institutionens databasystemet CA-OPENINGRES är under ständig exekvering på våra båda servrar atlantis och jupiter. För att få tillgång till systemet måste man använda sig av något sorts gränssnittsprogram. Under kursmomentet skall ni använda ett sådant program kallat isql, som är en del av Ingres. 1.1 Starta isql Öppna ett terminalfönster på en SUN-station. Om det är första gången du skall starta isql kan det vara bra att redan nu skapa ett bibliotek där du kan ha alla filer förknippade med databaserna. Detta underlättar filladdning (se nedan). Skapa ett nytt bibliotek m.h.a. kommandot mkdir biblioteksnamn och gå till detta bibliotek: cd biblioteksnamn. 1.1.1 Skapa en databas För att skapa en databas måste man vara inloggad mot vårat UNIX-system. Detta kan antingen göras genom att logga in på en SUN-station. öppna ett terminalfönster. Vid prompten, skriv kommandot createdb databasnamn där databasnamn är ett godtyckligt valt databasnamn. Nu har Ingres den begränsningen att alla databaser måste ha unika namn. Två studenter kan alltså inte ha databaser med samma namn trots att de är olika användare. Ett enkelt sätt att komma runt detta problem är att inleda namnet på databasen med sitt användarnamn, t.ex. glgrenfilmdb. Exempel: createdb atlantis% createdb glgrenfilmdb Creating database glgrenfilmdb... Creating DBMS System Catalogs... Modifying DBMS System Catalogs... Creating Standard Catalog Interface... Creating Front-end System Catalogs... Creation of database glgrenfilmdb completed successfully. 1

atlantis% I detta fall skapades databasen. Denna databas är tom, den innehåller varken data eller ens tabeller där datan skall placeras. 1.1.2 Gå in i isql Vid promten skriver du nu isql. Ex: atlantis% isql databasnamn Isql startas och du får upp en tom ruta (i terminalfönstret) där man skall skriva sina SQL-satser. Öka terminalfönstrets storlek för att underlätta avläsningen av resultaten från sökningar. Programmet är uppbyggd av flera olika skärmbilder (förvillande lika i sitt utseende), kopplade till de olika arbetsuppgifterna man kan utföra i isql. Längst ned i varje fönster finns en menyrad innehållande de kommandon som man utföra i just detta fönster. Namnen inom parantes anger vilken tangent man skall trycka. Observera att man för att utföra kommandot Go(Enter) som exekverar en SQL-sats, måste trycka Enter-tangenten på det numeriska tangentbordet och inte den vanliga radbrytningstangenten. Isql fungerar så att man först skriver in sin SQL-sats och redigerar den (om detta är nödvändigt) tills man är nöjd. Därefter trycker man enter (GOkommandot) och satsen kommer att utföras. Isql rapporterar status, d.v.s. om allt gick bra (End of Request) eller eventuella fel (End of Request - Terminated by Errors). För att gå tillbaka till föregående skärmbild tryck F3. Satsen står fortfarande kvar i fönstret. Du kan välja att redigera detta ytterligare eller rensa skärmbilden med Blank(F8). Observera att backspace-tangenten inte fungerar. Istället används deletetangenten. 1.2 Skapa en tabell Skapa en tabell film som kan innehålla uppgifter om filmer. Rensa skärmen med F8 och skriv in Create Table-satsen nedan: CREATE TABLE film ( id titel char(40) not null, regi char(40) not null, artal integer, primary key(id) ); create table Radbrytningarna är inte nödvändiga men bör gäras för att skapa överskådlighet. Man behöver inte heller skriva de reserverade orden (t.ex. select) med stora bokstäver. De är angivna sådana i texten för att framhäva SQL-satsernas struktur. 2

Utför nu satsen med GO. Om något blev fel måste du gå tillbaka och redigera satsen och utföra den igen. 1.3 Lägg in data i tabellen Nu behövs det någon data i tabellen film. Här följer tre insert-satser som lägger in tre rader (tipplar) i tabellen. insert INSERT INTO film (id, titel, regi, artal) VALUES (1, Sagan om ringen, Peter Jackson, 2001); INSERT INTO film (id, titel, regi, artal) VALUES (2, Amelie från Montmartre, Jean-Pierre Jeunet, 2001); INSERT INTO film (id, titel, regi, artal) VALUES (3, Alien - återuppstår, Jean-Pierre Jeunet, 1997); Skriv raderna en och en i taget eller alla på en gång. Detta sätt att för hand mata in data är mycket arbetssamt och leder lätt till fel. Inmatning sker oftast på annat sätt 1. 1.4 Ladda SQL-satser från fil Ganska snart blir man trött på att upprepa kommandon flera gånger och mycket tid kan gå bort p.g.a. enkla skrivfel. Man kan då istället skriva in SQLkommandot(na) i en vanlig textfil. Det finns många fördelar med detta. Man sparar arbete, men man får också mer korrekta sql-satser då satsen alltid blir utförd på samma sätt. Man kan t.ex. lägga in alla create table-satser i samma fil. Varje sådan sats kan föregås av en drop table-sats som tar bort den gamla tabellen (inklusive dess eventuella data). På så sätt kan man ändra sina tabeller i textfilen och sedan läsa textfilen på nytt. En mycket viktig punkt här att observera är att filen måste ligga i samma bibliotek (directory) som man stod i när man startade sql. Man kan också ange filens fullständiga namn för att slippa detta. Gör det således till en vana att gå till rätt bibliotek innan du startar isql. Kontrollera att det är rätt m.h.a. UNIX-kommandot pwd som skriver ut i vilket bibliotek du är. 1.4.1 Ladda fil För att ladda en fil i isql, välj menyalternativ File(F10). Därefter ReadFile(F5). Du får då upp en uppmaning: Enter name of file to read:. Skriv in namnet på filen och tryck den vanliga enter-tangenten. Filens innehåll kommer nu att visas i termialfönstret. För att utföra dessa satser tryck enter på det numeriska tangentbordet. Alla SQL-satserna kommer att utföras och isql kommer att varna om eventuella fel har uppstått. Om så är fallet skall du ändra i textfilen och inte terminalfönstret. När du har ändrat måste du ladda om filen igen och utföra satserna. 1 inläsning från textfiler (se nedan), imatning via formulär eller inläggning via något annat program 3

1.5 Söka i tabellen 1.5.1 Full Sökning (utan restrict eller project) 2 För att få fram tabellens fullständiga innehåll: select SELECT * FROM film 1.5.2 Sökning med villkor (restrict) Gör nu en sökning på ett visst villkor, nämligen vilken eller vilka filmer som Jean-Pierre Jeunet har regisserat. restrict SELECT * FROM film WHERE regi = Jean-Pierre Jeunet 1.5.3 Sökning med visning av vissa kolumner (project) Gör nu en sökning där man bara vill veta namnet (attributet titel) på filmerna i tabellen. project SELECT titel FROM film Observera att * alltså betyder alla kolumner (alla attribut). 1.5.4 Sökning med visning av vissa kolumner och villkor (project och restrict) En kombination av restrict och project kan göras på följande vis, där man vill veta namnet på filmer som Jean-Pierre Jeunet har gjort: SELECT titel FROM film WHERE regi = Jean-Pierre Jeunet 1.5.5 Sortering En tabell i en relationell databas är per defintion inte sorterad i någon viss ordning. Dock kan det vara önskvärt att resultatet sorteras på något viss. Man använder då kommandot order by attributnamn [desc]. Hakparanteserna indikerar att ordet desc är valfritt och betyder att sorteringen skall ske i fallande ordning. Default är i stigande ordning. Två exempelsatser: order by SELECT * FROM film ORDER BY titel SELECT * FROM film WHERE artal = 2001 ORDER BY titel DESC 1.5.6 Sökning på mönster Det är inte alltid som man vet det exakta värdet på ett sökvillkor eller man vill ha ett mer allmännare sökvilor. Man kan då använda like istället för =. Om man t.ex. vill veta alla filmer som den där fransmannen vars fullständiga namn man inte inte riktig kan komma ihåg, har regisserat skriver man: 2 restrict och project är två operatorer i den relationella algebran. Restrict h?mtar fram all tipplar som uppfyller ett visst villkor och Project visar endast de kolumner som anges like 4

SELECT * FROM film WHERE regi LIKE %Pierre% Procenttecken (%) används för att ange att ett godtyckligt (0-n) st tecken kan föregå och följa ordet pierre. Om det första procenttecknet hade utelämnats hade villkoret gällt alla namn som började på Pierre. 1.5.7 Uppdatering av tabellrad För att ändra i en befintlig rad används update-satsen. I används exempel ändras titel på den första filmen. update UPDATE film SET titel = Lord of the rings WHERE titel = Sagan om ringen Observera att en update inte nödvändigtvis lyckas. Följande sats skall inte lyckas då id är en s.k. primärnyckel. Databashanteraren kommer att garantera att inte två rader i samma tabell har samma värde på id. I det här fallet finns redan en tippel som en primärnyckel med värdet 2 i tabellen. UPDATE film SET id = 2 WHERE titel = Alien - återuppstår End of Output 7H1> UPDATE film SET id = 2 WHERE titel = Alien - återuppstår E_US1195 Duplicate key on UPDATE detected. (Fri Oct 25 10:26:25 2002) End of Request - Terminated by Errors 2 Andra kommandon 2.1 Lista databaser Efter ett tag kommer man inte längre ihåg vilka databaser man har eller vad de heter. M.h.a. programmet catalogdb får man uppgifter om sina databaser. Observera att detta inte är ett SQL-kommando utan ett fristående program som måste startas ifrån den vanliga kommandopromten. Du måste alltså först avsluta isql genom att trycka F4. Programmet kommer att lista dina databaser och låta dig gära vissa sökningar mot dessa. Observera att denna data är s.k. katalogdata, d.v.s. data om databasen, så som tabellnamn, attributnamn, säkerhet, etc. 2.2 Ta bort en databas Om du av någon anledning vill ta bort en databas använder du SQL-satsen drop databasnamn. VARNING! Detta raderar bort databasen med all data och tabeller. 5

2.3 Editering via extern editor Edit(F9) Istället för att redigera en SQL-sats direkt i rutan kan man välja Edit(F9). Då öppnas den vanliga texteditorn 3. Där man kan redigera med större precision. När man är klar med redigeringen sparar man filen och stänger texteditorn. Man kommer då tillbaka i terminalfönstret. 2.4 Ingresmanualer Manualer för Ingres finns online. I menyraden längst ned i fönstret på en Sunstation finns olika ikoner. Ovanför ikonen föreställande ett antal böcker och ett frågetecken, finns en liten pil. Klicka på denna pil och välj Open Ingres Manuals i menyn som kommer upp. 3 Databasen bibliotek Under momenten kommer ni arbeta mycket med en (så gott som) färdig databas. Databasen innehåller uppgifter böcker som finns i ett antal bibliotek. 3.1 Skapa databasen För att skapa databasen och fylla den med data skall ni ladda två textfiler in i isql. Först måste ni dock skapa en databas med lämpligt namn. 3.2 Kopiera filer När ni har skapat databasen måste ni kopiera över ett antal filer. Ställ er först i biblioteket där ni har era databasfiler. Skriv sedan kopieringskommandot: atlantis% cp /home/jupiter/staff/glgren/db/biblio/*. OBSERVERA att det skall vara ett mellanslag och en punkt i slutet av kopieringskommandot. Nu kommer 7 filer kopieras till biblioteket. Dessa innehåller filer för att skapa databasen, ladda databasen och databasens data (*.dat) Gå nu in i isql. Ladda först filen create.sql och utför denna. Därefter rensar ni skärmen och laddar in copy.sql som kopierar in data i de existerande tabellerna. All ändringännu i databasen kommer nu att ske i filen create.sql. Om man vill kan man gära en kopia av denna fil och arbeta med kopian. En bra sak kan vara att lägga in drop table-satser framför varje create table. På så viss tas den gamla tabellen bort och ersätts med den nya. Glöm inte sedan bort att ladda in datan på nytt. För den som vill gära det ännu enklare så läggs de båda filerna ihop till en där innehållet i create.sql föregår copy.sql. På så sätt utför man både skapandet och laddandet med ett enda G0-kommando. 3 Vilken editor som öppnas beror på inställningarna. Om man arbetar via jupiter kommer istället editorn vi att öppnas. 6

3.3 Kort beskrivning av tabellerna Databasen består av fem tableller: Tabellen bibbok representerar placeringen av en bok. Tabellen biblio representerar olika bibliotek med ett visst nummer och ort. Tabellen boklan representerar ett boklån, d.v.s. en person lånar en viss bok. Tabellen lantagare representerar en låntagare Se även appendix - create.sql för alla attributnamn och dess datatyper. 3.4 Några valda SELECT-satser Lista alla böcker i alla bibliotek: SELECT * FROM bok Lista alla böcker i alla bibliotek sorterat efter upphovsman: SELECT * FROM bok ORDER BY upphovsman Ta fram alla uppgifter på alla boklån och vilka som är långatare för dessa lån. SELECT * FROM boklan, lantagare WHERE boklan.lnr = lantagare.lnr Den föregående satsen resulterar i en stor mängd kolumner. Genom att utföra en project så kan man öka överskådligheten. Ta fram namnet på låntagare som har lånat en bok. SELECT lantagare.namn FROM lantagare, boklan WHERE lantagare.lnr = boklan.lnr Föregående sats resulterade i att vissa namn förekom flera gånger vilket beror på att de har lånat flera böcker. Om man bara vill visa vilka låntagarna är utan att samtidigt visa hur många böcker de har lånat lägger man till distinct i föregående sats: SELECT distinct lantagare.namn FROM lantagare, boklan WHERE lantagare.lnr = boklan.lnr A create.sql Nedan följer innehållet i filen create.sql. /* SKAPA TABELLEN bibbok */ CREATE TABLE bibbok (bibnr boknr integer not null); /* SKAPA TABELLEN biblio */ 7

CREATE TABLE biblio (bibnr biort char(20) not null); /* SKAPA TABELLEN bok */ CREATE TABLE bok (boknr titel char(60) not null, upphovsman char(40) not null, amne char(5) not null); /* SKAPA TABELLEN boklan */ CREATE TABLE boklan (bibnr boknr lnr adat date not null); /* SKAPA TABELLEN lantagare */ CREATE TABLE lantagare (lnr namn char(30) not null, gata char(25) not null, postnr char(6) not null, padress char(20) not null, tel char(12) not null); B copy.sql Nedan följer innehållet i filen copy.sql. /* KOPIERA ÖVER TILL TABELLEN bibbok */ COPY TABLE bibbok (bibnr = C1, boknr = C0NL) FROM bibofil.dat ; /* KOPIERA ÖVER TILL TABELLEN biblio */ COPY TABLE biblio (bibnr = C1, 8

biort = C0NL) FROM bibfil.dat ; /* KOPIERA ÖVER TILL TABELLEN bok */ COPY TABLE bok (boknr = C4, dummy = D1, titel = C60, upphovsman = C40, amne = C0NL) FROM bokfil.dat ; /* KOPIERA ÖVER TILL TABELLEN boklan */ COPY TABLE boklan (bibnr = C1, boknr = C4, lnr = C3, adat = C0NL) FROM lanfil.dat ; /* KOPIERA ÖVER TILL TABELLEN lantagare */ COPY TABLE lantagare (lnr = C3, namn = C30, gata = C25, postnr = C6, padress = C20, tel = C0NL) FROM persfil.dat ; 9