DATABASHANTERING för programmerare

January 8, 2018 | Author: Anonymous | Category: Engineering & Technology, Datavetenskap, Databases
Share Embed Donate


Short Description

Download DATABASHANTERING för programmerare...

Description

DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim [email protected] www.hakimdata.se

Repetition 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

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? 2

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

3

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

4

SQL (Structured Query Language )

SQL

DDL

DML

5

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

6

Visa en lista på databaser SHOW DATABASES;

7

Öppna databas USE personal;

8

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

9

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

10

Visa information om tabellen DESCRIBE avdelning;

11

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;

12

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

13

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; 14

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; 15

Visa alla tabeller SHOW TABLES;

16

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

17

Ta bort databaser och tabeller  DROP DATABASE [IF EXISTS] personal;  DROP TABLE [IF EXISTS] uppdrag;

18

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

19

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

20

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);

21

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

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);

23

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);

24

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

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 26

Ö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.

27

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF