260 likes | 395 Views
SQL 1. DDL og DML. De vigtigste SQL-sætninger. Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en tabeI alter table: tilføjer, sletter eller ændre en tabels kolonne
E N D
SQL 1 DDL og DML
De vigtigste SQL-sætninger • Data Definition Language (DDL) • create table: opretter en ny tabel • create unique index: tilføjer et index til en tabel • drop table : sletter en tabeI • alter table: tilføjer, sletter eller ændre en tabels kolonne • Data Manipulation Language (DML) • select: udtrækker, kombinerer og beregner data • insert into ... values (...): indsætter en række • delete from: fjerner rækker fra en tabel • update: ændre en række i en tabel
Oprette database • En database består af en samling af tabeller. • CREATE DATABASE databasenavn; • Eks: CREATE DATABASE Forening; • Flere databaser på samme server, så skal kunne skifte mellem databaser. • USE databasenavn; • Eks: USE Forening;
Oprette tabeller • Generel syntaks: • CREATE TABLE tabelnavn ( attributnavn attributtype [PRIMARY KEY] [AUTO_INCREMENT] [ NOT NULL], attributnavn attributtype [DEFAULT værdi], ….. );
Oprette tabeller eksempel 1 • CREATE TABLE postby( postnr SMALLINT UNSIGNED NOT NULL PRIMARY KEY, bynavn VARCHAR(30) NOT NULL )ENGINE=INNODB;
Oprette tabeller eksempel 2 • CREATE TABLE medlem( medlemsnr INT PRIMARY KEY AUTO_INCREMENT, navn VARCHAR(40) NOT NULL, vejnavn VARCHAR(30), husnr VARCHAR(5), postnr SMALLINT UNSIGNED, FOREIGN KEY (postnr) REFERENCES postby(postnr) ) ENGINE=INNODB;
Ændring af tabeller • Tilføj kolonne ALTER TABLE medlem ADD COLUMN telefonnr VARCHAR(8); • Slet kolonne ALTER TABLE medlem DROP COLUMN telefonnr; • Ændre kolonne ALTER TABLE medlem MODIFY COLUMN telefonnr INT;
Vise tabelbeskrivelse og Slette tabeller • Vise tabelbeskrivelse DESCRIBE medlem; • Slet tabeller DROP TABLE IF EXISTS medlem; DROP TABLE IF EXISTS postby;
Indsætte data i tabeller • Generel syntaks INSERT INTO tabelnavn( kolonne 1, kolonne 2, …. VALUES( værdi til kolonne 1, værdi til kolonne 2, …. );
Indsætte data eksempel INSERT INTO postby( postnr, bynavn VALUES( 4500, ’Køge’ );
Opdatere data • Generel syntaks UPDATE tabelnavn SET kolonne 1 = værdi, kolonne 2 = værdi, ….. WHERE betingelse;
Opdatere tabel eksempel UPDATE postby SET bynavn = ’KOEGE’ WHERE postnr = 4500; • Update kan ændre • Et enkelt felt i en række • Flere felter i en række • Et eller flere felter i mange rækker • Et eller flere felter i alle rækker
Slette data • Generel syntaks DELETE FROM tabelnavn WHERE betingelse; • Delete kan slette • En række • Flere rækker • Alle rækker
Slette eksempel DELETE FROM medlem WHERE medlemsnr = 5;
Udtræk af data • Generel syntaks SELECT attributter FROM tabelnavne WHERE betingelser;
Udtræk eksempler • Udtrækker medlemsnr og navn på alle medlemmer SELECT medlemsnr, navn FROM medlem; • Udtrækker alle attributter på alle medlemmer SELECT * FROM medlem;
Udtræk eksempler • Udtrækker alle atrributter for medlemmer i Køge SELECT * FROM medlem WHERE postnr = 4500;
Absolut adressering og alias • Absolut adressering SELECT medlem.medlemsnr, medlem.navn FROM medlem; • Alias SELECT m.medlemsnr, m.navn FROM medlem AS m;
Sortering af data • Postnummer tabel i alfabetisk orden SELECT * FROM postby ORDER BY bynavn; • Postnummer tabel i faldende alfabetisk orden SELECT * FROM postby ORDER BY bynavn DESC;
Intervalbaserede sammenligninger • Udtrækker byer med postnumre mellem 4000 og 5000 SELECT * FROM postby WHERE postnr BETWEEN 4000 and 5000; • Kan også laves med: WHERE postnr >= 4000 AND postnr <=5000;
Listebaserede sammenligninger • Udtrækker byer på bestemte postnumre SELECT * FROM postby WHERE postnr in (4100,4200, 4300); • Kan også laves med: WHERE postnr=4100 OR postnr=4200 OR postnr=4300;
Parenteser ved kombination af AND og OR • Udtræk musik CD fra forlag 1 eller 10 der koster mere en 100 kr SELECT * FROM musikCD WHERE (forlagid =1 OR forlagid=10) AND pris >100;
Søgning på dele af ord • Søg alle medlemmer der hedder Thomas til fornavn og bor i Nordjylland SELECT * FROM medlem WHERE navn LIKE ’Thomas%’ and postnr >9000;
Opgaver til næste gang • Opret Lilleby Kommune biblioteks database i MySQL • Opret 11 lånere (brug telefonlisten til holdet) • Opret udlånsmateriale (brug litteraturlisten til dette hold) • Opret 4 eksemplarer af hvert materiale • Udtræk alle oplysninger om alle lånere • Udtræk en låner liste i alfabetisk orden. • Udtræk de lånere som bor i postdistrikt 2610 og 2800 • Udtræk de lånere bogstavet o i deres navn • Udtræk de lånere der bor i postdistrikt mellem 3000 og 4000. link til en installationvejledning til Mysql: http://www.g2k.dk/MySQL/installation/ Opgave 1 til 4 kan med fordel skrives i Notepad og gemmes som et script, sådan at det er nemt at genoprette database igen.