Presentation laddar. Vänta.

Presentation laddar. Vänta.

DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim

Liknande presentationer


En presentation över ämnet: "DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim"— Presentationens avskrift:

1 DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se

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

3 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 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 5 SQL (Structured Query Language ) SQL DDLDML

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

7 7 Visa en lista på databaser SHOW DATABASES;

8 8 Öppna databas USE personal;

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

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

11 11 Visa information om tabellen DESCRIBE avdelning;

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

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

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

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

16 16 Visa alla tabeller SHOW TABLES;

17 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 18 Ta bort databaser och tabeller  DROP DATABASE [IF EXISTS] personal;  DROP TABLE [IF EXISTS] uppdrag;

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

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

21 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 22 insert into personal_kunskap values (7513, 'C'), (7513, 'Perl'), (7513, 'Java'), (9842, 'DB2'), (6651, 'VB'), (6651, 'Java'), (9006, 'NT'), (9006, 'Linux');

23 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 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 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 26 VTC - Getting Started  Gå till adressen: http://www.vtc.com/products/mysql.htm 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 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.


Ladda ner ppt "DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim"

Liknande presentationer


Google-annonser