Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse med databasekurset. Databasen er en Oracle 9i og for at kunne bruge den skal du benytte en klient, hvor du kan skrive og udføre SQLforespørgelser. Til dette kan du benytte Oracle-værktøjet SQL*Plus som du finder på Datalogi's Windows PC'ere og på UNIXmaskinen HOMER.RUC.DK. SQL*Plus på WINDOWS Du finder SQL*Plus således: TRYK Start -> Programs -> Course Related -> SQLPlus Brugernavn: <brugernavn> Adgangskode: <adgangskode> Værtsstreng: datalogi Bemærk at ovenstående kun er et eksempel Herefter får du en SQL prompt, hvor du kan skrive SQL-kommandoer SQL> Kommandoer Du kan enten skrive kommandoer direkte i kommando prompten eller du kan gemme dine kommandoer i en fil og så udføre kommandofilen. Redigering af kommandoer/fil. Det kan være hensigtsmæssigt at gemme SQL-kommandoerne til senere brug. Med kommandoen 'ed' kan du oprette eller redigere din kommandofil SQL> ed filnavn Herefter starter Notepad (el. Ultraedit) og du kan skrive SQL-kommandoerne. Gem filen så du kan finde den igen, f.eks. på dit H:-drev Kørsel af kommando fil Med kommandoen '@' eller 'start' kan du køre kommandoer i filen eller SQL> @filnavn SQL> start filnavn Bemærk at hvis filen gemmes på H:-drevet så kan du skrive således: SQL> @h:\filnavn Bemærk at SQL*Plus forventer at filens endelse hedder.sql
SQL*Plus på UNIX Det er også muligt at benytte SQL*Plus via UNIX. Dette kræver en UNIX-konto på homer, hvilket fås ved henvendelse i Drift Afdelingen på Datalogi Adgang til homer opnås vha. SSH, hvilket kan ske fra hvilken som helst maskine på nettet. Når forbindelse er opnået skal der først tastes følgende: module load datora Herefter startes SQL*Plus [509]homer:jeans$ sqlplus SQL*Plus: Release 8.0.4.0.0 - Production on Man Feb 11 9:17:48 2002 (c) Copyright 1997 Oracle Corporation. All rights reserved. Enter user-name: scott/tiger@datalogi Connected to: Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production With the Partitioning option JServer Release 9.0.1.0.0 - Production SQL> NB: byt scott/tiger ud med dit brugernavn/kodeord Redigering af fil (UNIX) Under UNIX benyttes også ed kommandoen til at redidere/oprette en fil. SQL> ed <filnavn> Standard editoren på UNIX er 'vi', men du kan ændre dette med følgende kommando under UNIX: (Ændre til editoren 'joe') EDITOR=/usr/local/bin/joe;export EDITOR; Som alternativ kan du også benytte editoren: 'pico' Du kan se en hjælpe side for de enkelte editorer med: eller man vi man pico I 'joe' trykkker 'CTRL+H K' for hælpe Kørsel af kommando-fil (UNIX) Under UNIX kan du køre en kommando fil på samme måde som under windows. Hvis du gemmer SQL-filen i dit hjemmekatalog, så er kommandoen: SQL> @/home/<unix-brugernavn>/<filnavn> For kørsel af SQL-fil aktuelt bibliotek er kommandoen SQL> @./<filnavn>
Oprettelse af tabel Med kommandoen 'CREATE TABLE' oprettes en tabel. CREATE <tabel_navn> ( <liste af attributter> ); CREATE TABLE temp ( tal number(10), tekst varchar2(10), tal2 number(3,2) ); Indsættelse af rækker i tabel Med kommandoen 'INSERT' indsættes rækker i en tabel INSERT INTO <tabel_navn> ( <liste af attributter> ) VALUES ( <liste af værdier> ); INSERT INTO temp (tal, tekst, tal2) VALUES (5,'test',5.5); Vis rækker i tabel(ler) En SQL-forespørgsel ser typisk således ud: SELECT <liste af attribut_navne> FROM <liste af tabel_navne> WHERE <liste af kriterier> SELECT tal FROM temp WHERE tekst = 'test'; Vis alle attributter i en tabel Med tegnet '*' kan alle attributter i tabel vises. SELECT * FROM temp; Vis antallet af rækker i en tabel SELECT count(*) FROM temp; Opdatering af rækker i tabel Med kommandoen UPDATE opdateres rækker i en tabel. UPDATE <tabel_navn> SET <attribut> = <værdi>, <attribut> = <værdi> etc. etc. ; UPDATE temp SET tekst = 'test2';
Sletning af rækker i tabel Med kommandoen 'DELETE' slettes rækker i en tabel. DELETE <tabel_navn>; DELETE temp; COMMIT og ROLLBACK Ved brug af insert og delete skal disse bekæftes med kommandoen COMMIT; Man har inden dette mulighed for at fortryde med ROLLBACK; Slet tabel Med kommandoen 'DROP' slettes en hel tabel DROP <tabel_navn>; DROP temp; Beskrivelse af tabel For at se attributnavnene på en tabel benyttes kommandoen 'DESCRIBE' (eller DESC) DESC <tabel_navn>; DESC temp; Spool output til en fil For at få resultatet ud i en fil kan spool kommandoen benyttes. SPOOL filnavn SPOOL off (husk spool off kommandoen) <SQL-kommandoer> Hvis du ikke giver filnavnet en filendelse, så kommer den automatisk til at hedde.lis Udførelse af system kommandoer Fra SQL*Plus er det muligt at udføre system-kommandoer HOST (giver en DOS-prompt) HOST <system-kommandoe> (udfører system-kommandoen og vender tilbage til SQL*Plus)
Hvilke tabeller er oprettet Med følgende SQL-kommando kan man se hvilke tabeller, der er oprettet. SELECT table_name from tabs; Sådan ændres kolonne bredden Hvis du f.eks. har oprettet en tabel der ser således ud: SQL> desc intro_test; Navn NULL? Type ----------------------------------------- -------- --------------------------- ID NUMBER NAVN VARCHAR2(200) I tabellen er følgende: SQL> select * from intro_test; ID ---------- NAVN -------------------------------------------------------------------------------- 1 jens Hvilket ikke er særligt pænt, idet bredden på kolonne navn er 200. Det er muligt at ændre bredden, således at output bliver pænere: SQL> column navn format a10; SQL> select * from intro_test; ID NAVN ---------- ---------- 1 jens Hjælp til SQL*Plus Hjælp kan bla. findes her: http://www.isl.ruc.dk/oradoc