1 / 27

DATABASHANTERING för programmerare

DATABASHANTERING för programmerare. Lektion 3 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se. Repetition. Vad är en RDBMS? Vad är en primärnyckel? Vad är en främmande nyckel ? Vad menas med begreppet databasschema. Ge exempel? Nämn några viktiga principer för databasdesign?

kesler
Download Presentation

DATABASHANTERING för programmerare

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. DATABASHANTERINGför programmerare Lektion 3 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se

  2. Repetition • Vad är en RDBMS? • Vad är en primärnyckel? • Vad är en främmande nyckel ? • Vad menas med begreppet databasschema. Ge exempel? • Nämn några viktiga principer för databasdesign? • Vad menas med begreppet redundans? • Vilka tre olika typer av anomalier kan uppkomma i data? • Vad är ett NULL värde? • Beskriv kort normaliseringsprocessen? • 1NF innebär odelbara attributvärden. Förklara med ett exempel?

  3. Idag Implementation av databas • Skapa och välja en databas • Skapa tabeller • Kolumntyper och datatyper i MySQL • Ta bort tabeller och databaser • Infoga, ta bort och uppdatera data • Övningar

  4. Exempel personal (personalID, namn, befattning, avdelningID) avdelning (avdelningID, namn) personalKunskap (personalID, kunskap) klient (klientID, namn, adress, kontaktperson, kontaktnummer) uppdrag (klientID, personalID, uppdragDatum, timmar)

  5. SQL (Structured Query Language )

  6. Skapa en databas • Starta MySQL-monitorn • CREATE DATABAS personal;

  7. Visa en lista på databaser SHOW DATABASES;

  8. Öppna databas USE personal;

  9. Skapa tabeller CREATE TABLE tabellnamn ( tabelldefinition ) [type = tabelltyp];

  10. Exempel: Skapa tabellen avdelning CREATE TABLE avdelning ( avdelningID int not null auto_increment primary key, namn varchar(30) ) type = InnoDB;

  11. Visa information om tabellen DESCRIBE avdelning;

  12. Tabellen personal create table personal ( personalID int not null auto_increment primary key, namn varchar(80), befattning varchar(15), avdelningID int not null references avdelning(avdelningID) ) type=InnoDB;

  13. Tabellen personalKunskap create table personalKunskap( personalID int not null references personal(personalID), kunskap varchar(15) not null, primary key (personalID, kunskap) ) type=InnoDB;

  14. Tabellen klient create table klient ( klientID int not null auto_increment primary key, namn varchar(40), adress varchar(100), kontaktPerson varchar(80), kontaktNummer char(12) ) type=InnoDB;

  15. Tabellen uppdrag create table uppdrag ( klientID int not null references klient(klientID), personalID int not null references personal(personalID), uppdragDatum date not null, timmar float, primary key (klientID, personalID, uppdragDatum) ) type=InnoDB;

  16. Visa alla tabeller SHOW TABLES;

  17. Kolumntyper och datatyper i MySQL • Numeriska typer http://dev.mysql.com/doc/mysql/en/numeric-types.html • Sträng- och texttyper http://dev.mysql.com/doc/mysql/en/string-types.html • Typer för datum och tid http://dev.mysql.com/doc/mysql/en/date-and-time-types.html

  18. Ta bort databaser och tabeller • DROP DATABASE [IF EXISTS] personal; • DROP TABLE [IF EXISTS] uppdrag;

  19. Ändra befintliga tabellstruktur • ALTER TABLE Exempel: ALTER TABLE personal; ADD INDEX namn (namn);

  20. Infoga data i databasen (INSERT) insert into avdelning values (42, 'Ekonomi'), (128, 'Forskning och utveckling'), (NULL, 'Personalresurser'), (NULL, 'Marknad');

  21. insert into personal values (7513,'Nina Larsson','Programmerare',128), (9842, 'Bengt Svensson', 'DBA', 42), (6651, 'Arne Persson', 'Programmerare', 128), (9006, 'Camilla Blom', 'Systemadministratör', 128);

  22. insert into personal_kunskap values (7513, 'C'), (7513, 'Perl'), (7513, 'Java'), (9842, 'DB2'), (6651, 'VB'), (6651, 'Java'), (9006, 'NT'), (9006, 'Linux');

  23. insert into kund values (NULL, 'Telco AB', 'Kungsgatan 3 Stockholm', 'Fredrik Palm', '95551234'), (NULL, 'E-Banken', 'Sturegatan 11 Stockholm', 'Jan Ek', '95559876'); insert into uppdrag values (1, 7513, '2003-01-20', 8.5);

  24. Ersätta data (REPLACE) • REPLACE-satsen fungerar precis som INSERT, men skriver över rader i händelse av en nyckelkollision. Exempel: replace into uppdrag values (1, 7513, '2003-01-20', 9.5);

  25. Ta bort data (DELETE) delete from avdelning; OBS! Tar bort alla rader i tabellen. Begränsa med WHERE delete from avdelning where namn=’Marknad’;

  26. VTC - Getting Started • Gå till adressen:http://www.vtc.com/products/mysql.htm • Lyssna på SQL Basics - Finding Your Way About - Creating a Database - Creating a Table • Column Types-String • Column Types-Numeric

  27. Övningar efter rasten • Svara på frågorna på sid. 79-80 • Skapa order databasen på sid. 80 • Skapa en uppsättning INSERT-satser för att infoga data i tabellerna i din orderdatabas.

More Related