1 / 18

SQL – Oracle Relationsdatabase

SQL – Oracle Relationsdatabase. Lektion 3 7. Semester. Hvad du ikke må! . Vær præcis! meget præcis! Udvis disciplin når du skriver SQL Tro ikke på at ”den” selv laver fejl Lær de mest almindelige kommandoer Det er en rigtig god idé at sætte koden pænt op – det letter senere fejlsøgning.

coy
Download Presentation

SQL – Oracle Relationsdatabase

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL – OracleRelationsdatabase Lektion 3 7. Semester

  2. Hvad du ikke må!  • Vær præcis! meget præcis! • Udvis disciplin når du skriver SQL • Tro ikke på at ”den” selv laver fejl • Lær de mest almindelige kommandoer • Det er en rigtig god idé at sætte koden pænt op – det letter senere fejlsøgning. • Søg råd ved Bent www.b2m.dk

  3. Hvad forstås med disciplin? • Denne skrifttype er lig kode • STORE BOGSTAVER er lig Oracle kommandoer • <tekst> betyder at tekst inkl. større-end og mindre-end tegn skal erstattes med den faktiske tekst/værdi. • [tekst] betyder at tekst er valgfri og kan udelades. De firkantede parenteser skal aldrig skrives i koden. • {tekst1|tekst2} betyder at en af teksterne adskilt af de lodrette streger skal vælges. De krøllede parenteser skal aldrig skrives i koden.

  4. En god ide at skifte • Inden PL/SQL tages i brug er det som regel en rigtig god idé at skifte til dansk opsætning ALTER SESSION SET NLS_DATE_LANGUAGE = Danish NLS_DATE_FORMAT = 'DD.MM.YYYY' NLS_NUMERIC_CHARACTERS = '.,';

  5. Datatyper • Tekst • Tal • Dato/tid • Binære filer • Lyd • Billeder • Dokumenter • Boolsk type (Boolean) • Sand, falsk eller null (tom) • Findes ikke i Oracle (i stedet kan en almindelig tekstkolonne med disse værdier anvendes)

  6. Oprettelse af tabel • CREATE TABLE <tabelnavn> (<kolonnenavn> <DATATYPE> [DEFAULT <værdi>] [<CONSTRAINTS>]); CREATE TABLE kunder ( kunde_id NUMBER(10), kunde VARCHAR2(20), adresse VARCHAR2(50), postnr NUMBER(4) DEFAULT 9000 ); tabelnavn Kolonne-navn maks. længde datatype standardværdi

  7. Hvad virker • Tabel og kolonnenavne skal: • begynde med et bogstav • bestå af mellem 1 og 30 karakterer • lovlige karakterer: A-Z, 0-9, _, $, # • undgå æ, ø eller å • være entydige / unikke • Ikke to tabeller af samme navn • Ikke to kolonner af samme navn i én tabel • ikke være et reserveret ord, fx kommandoer (SELECT, TABLE, BY m.fl.) • Der skal normalt ikke tage ikke hensyn til STORE og små bogstaver • Hvis navnene skrives i dobbelt anførselstegn, kan næsten alle reglerne dog brydes!!!

  8. Ændring af tabel • ALTER TABLE • ADD - tilføje kolonne / constraint • MODIFY - ændre kolonne / constraint • DROP - slette en kolonne / constraint • RENAME - omdøbe kolonne / constraint • ENABLE/DISABLE - deaktivere/aktivere constraint

  9. ALTER TABLE Tilføj ekstra kolonner • ALTER TABLE kunder ADD ( tlf NUMBER(8), email VARCHAR2(30) ); • ALTER TABLE kunder MODIFY ( tlf VARCHAR2(15) NOT NULL, email VARCHAR2(50) ); • ALTER TABLE kunder DROP (tlf, email); • ALTER TABLE kunder RENAME COLUMN tlf TO telefon; Ændre på feltegen-skaber Slet en kolonne Navne ændring af kolonne

  10. Datatyper • CHAR(maks. længde) • Fast karakterfelt med plads til maks. 2000 tegn • VARCHAR2(maks. længde) • Variabelt karakterfelt med plads til maks. 4000 tegn • NUMBER[(præcision[,skala])] • Tal, hvor præcision er antal tilladte cifre, mens skala er antal decimaler ud af det samlede antal cifre. • DATE • Datofelt med præcision ned til 1 sekund • TIMESTAMP • Datofelt med præcision ned til brøkdele af sekunder

  11. Beskrive & slette tabeller m.m. • Beskrive én tabel • DESCRIBE <tabelnavn>; • DESC <tabelnavn>; • Vis alle tabeller • SELECT * FROM user_tables; • Vis poster i tabel • SELECT * FROM kunder; • Omdøbe tabel • RENAME <tabelnavn> TO < nyt tabelnavn>; • Slette tabel • DROP TABLE <tabelnavn>;

  12. Primær nøgle • En primærnøgle anvendes til unikt at identificerer hver række i en tabel • Den kan bestå af flere kolonner (en sammensat primærnøgle) • Krav til en primærnøgle: • Der kan kun være én for hver tabel • Alle data i primærnøglen skal være unikke • Der må ikke forekomme tomme (null) felter • Yderligere bør data være forholdsvis ”stabile” • Der kan være flere kandidatnøgler, der opfylder ovenstående krav, til en primærnøgle.

  13. Fremmednøgle • Fremmednøgler sikrer integriteten mellem tabeller • Krav til en fremmednøgle: • Fremmednøglen skal referere til en primær eller unik nøgle. • En fremmednøgle-værdi skal enten kunne findes i reference-tabellen eller være NULL. • En kolonnen med en fremmednøgle skal være samme datatype som kolonnen med den primære eller unikke nøgle i reference-tabellen. • En fremmednøgle kan referere til den tabel, som den selv er placeret i. (Rekursivt hierarki)

  14. Ændre egenskaber – constraint • ALTER TABLE kunder ADD CONSTRAINT email_cc CHECK (email LIKE '%@%'); • ALTER TABLE kunder MODIFY CONSTRAINT email_cc {ENABLE|DISABLE}; • ALTER TABLE kunder DROP CONSTRAINT email_cc; • ALTER TABLE kunder RENAME CONSTRAINT email_cc TO email_check; • ALTER TABLE kunder {ENABLE|DISABLE} CONSTRAINT email_cc; Samme resultat

  15. Semantisk integritet - ? • CHECK Constraints er fleksible betingelser, man selv definerer, som data skal opfylde. CREATE TABLE kunder ( kunde_id NUMBER (10) PRIMARY KEY, kunde VARCHAR2(20) UNIQUE, adresse VARCHAR2(50) NOT NULL, postnr NUMBER (4) REFERENCES postnumre (postnr)[CONSTRAINT postnr_laengde_cc] CHECK (LENGTH(postnr) = 4) );

  16. Hvad postkassen slugte • Vis alle constraints • SELECT * FROM user_cons_columns NATURAL JOIN user_constraints; • Tømning af ”Papirkurv” • Hvis der optræder navne lignende følgende i ovenstående forespørgsler • BIN$EO/cSFBIQqOsWWy9uhmgFQ==$0 • så tøm Oracles papirkurv med denne kommando • PURGE RECYCLEBIN;

  17. Indsætte data i tabeller • INSERT INSERT INTO <tabelnavn> [(<kolonner>)] VALUES (<værdier>); INSERT INTO kunder VALUES (115,'Føtex', null, '13-08-2006'); INSERT INTO kunder (id, kunde) VALUES (116, 'Netto');

  18. Nok for i dag 

More Related