Initial commit, ov1-4
This commit is contained in:
160
ov2/bok-script-mysql.txt
Normal file
160
ov2/bok-script-mysql.txt
Normal file
@@ -0,0 +1,160 @@
|
||||
/*
|
||||
** bok-script-mysql.txt
|
||||
/*
|
||||
** DROP TABLE-setninger som sletter gamle tabeller
|
||||
*/
|
||||
|
||||
DROP TABLE IF EXISTS bok_forfatter;
|
||||
DROP TABLE IF EXISTS forfatter;
|
||||
DROP TABLE IF EXISTS bok;
|
||||
DROP TABLE IF EXISTS forlag;
|
||||
DROP TABLE IF EXISTS konsulent;
|
||||
|
||||
/*
|
||||
** Oppretter tabeller med entitetsintegritet
|
||||
*/
|
||||
CREATE TABLE forlag
|
||||
(
|
||||
forlag_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
forlag_navn VARCHAR(30),
|
||||
adresse VARCHAR(30),
|
||||
telefon CHAR(15),
|
||||
PRIMARY KEY(forlag_id)
|
||||
)ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE bok
|
||||
(
|
||||
bok_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
tittel VARCHAR(30),
|
||||
utgitt_aar INT,
|
||||
forlag_id INT UNSIGNED,
|
||||
PRIMARY KEY(bok_id)
|
||||
)ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE forfatter
|
||||
(
|
||||
forfatter_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
fornavn VARCHAR(20),
|
||||
etternavn VARCHAR(30),
|
||||
fode_aar INT,
|
||||
dod_aar INT,
|
||||
nasjonalitet VARCHAR(20),
|
||||
PRIMARY KEY(forfatter_id)
|
||||
)ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE bok_forfatter
|
||||
(
|
||||
bok_id INT UNSIGNED NOT NULL,
|
||||
forfatter_id INT UNSIGNED NOT NULL,
|
||||
PRIMARY KEY(bok_id, forfatter_id)
|
||||
)ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE konsulent
|
||||
(
|
||||
kons_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
fornavn VARCHAR(20),
|
||||
etternavn VARCHAR(30),
|
||||
epost VARCHAR(30),
|
||||
PRIMARY KEY(kons_id)
|
||||
)ENGINE=INNODB;
|
||||
|
||||
/*
|
||||
** Legger på referanseintegritet (fremmednøkler)
|
||||
*/
|
||||
ALTER TABLE bok
|
||||
ADD FOREIGN KEY(forlag_id)REFERENCES forlag(forlag_id);
|
||||
|
||||
ALTER TABLE bok_forfatter
|
||||
ADD FOREIGN KEY(bok_id)REFERENCES bok(bok_id);
|
||||
|
||||
ALTER TABLE bok_forfatter
|
||||
ADD FOREIGN KEY(forfatter_id)REFERENCES forfatter(forfatter_id);
|
||||
|
||||
|
||||
/*
|
||||
** Legger inn gyldige data i tabellene
|
||||
*/
|
||||
INSERT INTO forlag VALUES(NULL,'Tapir','Trondheim','73590000');
|
||||
INSERT INTO forlag VALUES(NULL, 'Gyldendal','Oslo','22220000');
|
||||
INSERT INTO forlag VALUES(NULL, 'Cappelen','Oslo','22200000');
|
||||
INSERT INTO forlag VALUES(NULL, 'Universitetsforlaget','Oslo','23230000');
|
||||
INSERT INTO forlag VALUES(NULL, 'Aschehaug','Oslo','22000000');
|
||||
INSERT INTO forlag VALUES(NULL, 'Oktober','Oslo','22002200');
|
||||
INSERT INTO forlag VALUES(NULL, 'Tiden','Oslo','22232223');
|
||||
INSERT INTO forlag VALUES(NULL, 'Harper Collins','USA',NULL);
|
||||
|
||||
INSERT INTO bok VALUES(NULL,'Tåpenes',1995,7);
|
||||
INSERT INTO bok VALUES(NULL,'Rebecca',1981,3);
|
||||
INSERT INTO bok VALUES(NULL,'Gutter er gutter',1995,5);
|
||||
INSERT INTO bok VALUES(NULL,'Microserfs',1991,8);
|
||||
INSERT INTO bok VALUES(NULL,'Generation X',1995,8);
|
||||
INSERT INTO bok VALUES(NULL,'Klosterkrønike',1982,3);
|
||||
INSERT INTO bok VALUES(NULL,'Universet',1988,3);
|
||||
INSERT INTO bok VALUES(NULL,'Nålen',1978,3);
|
||||
INSERT INTO bok VALUES(NULL,'Markens grøde',1917,2);
|
||||
INSERT INTO bok VALUES(NULL,'Victoria',1898,2);
|
||||
INSERT INTO bok VALUES(NULL,'Sult',1890,2);
|
||||
INSERT INTO bok VALUES(NULL,'Benoni',1908,2);
|
||||
INSERT INTO bok VALUES(NULL,'Rosa',1908,2);
|
||||
INSERT INTO bok VALUES(NULL,'Et skritt',1997,2);
|
||||
INSERT INTO bok VALUES(NULL,'Den femte',1996,2);
|
||||
INSERT INTO bok VALUES(NULL,'Villspor',1995,2);
|
||||
INSERT INTO bok VALUES(NULL,'Silkeridderen',1994,2);
|
||||
INSERT INTO bok VALUES(NULL,'Den hvite hingsten',1992,2);
|
||||
INSERT INTO bok VALUES(NULL,'Hunder',1992,2);
|
||||
INSERT INTO bok VALUES(NULL,'Bridget Jones',1995,5);
|
||||
INSERT INTO bok VALUES(NULL,'Se terapeuten',1998,3);
|
||||
INSERT INTO bok VALUES(NULL,'Sa mor',1996,3);
|
||||
INSERT INTO bok VALUES(NULL,'Jubel',1995,3);
|
||||
INSERT INTO bok VALUES(NULL,'Tatt av kvinnen',1993,3);
|
||||
INSERT INTO bok VALUES(NULL,'Supernaiv',1996,3);
|
||||
|
||||
INSERT INTO forfatter VALUES(NULL, 'John','Tool',1937, 1969, 'USA');
|
||||
INSERT INTO forfatter VALUES(NULL,'Ken','Follet',NULL, NULL, 'Britisk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Stephen','Hawking',NULL, NULL, 'Britisk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Jose','Saramago',1942, NULL, 'Portugisisk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Douglas','Coupland',1961, NULL, 'Canadisk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Nick','Hornby',1857, NULL, 'Britisk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Knut','Hamsund',1859, 1952, 'Norsk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Henning','Mankell',1948, NULL, 'Svensk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Helen','Fielding',NULL, NULL, 'Britisk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Hal','Sirowitz',NULL, NULL, 'USA');
|
||||
INSERT INTO forfatter VALUES(NULL,'Lars S.','Christensen',NULL, NULL, 'Norsk');
|
||||
INSERT INTO forfatter VALUES(NULL,'Erlend','Loe',NULL, NULL, 'Norsk');
|
||||
|
||||
INSERT INTO bok_forfatter VALUES(1, 1);
|
||||
INSERT INTO bok_forfatter VALUES(2, 2);
|
||||
INSERT INTO bok_forfatter VALUES(3, 6);
|
||||
INSERT INTO bok_forfatter VALUES(4, 5);
|
||||
INSERT INTO bok_forfatter VALUES(5, 5);
|
||||
INSERT INTO bok_forfatter VALUES(6, 4);
|
||||
INSERT INTO bok_forfatter VALUES(7, 3);
|
||||
INSERT INTO bok_forfatter VALUES(8, 2);
|
||||
INSERT INTO bok_forfatter VALUES(9, 7);
|
||||
INSERT INTO bok_forfatter VALUES(10, 7);
|
||||
INSERT INTO bok_forfatter VALUES(11, 7);
|
||||
INSERT INTO bok_forfatter VALUES(12, 1);
|
||||
INSERT INTO bok_forfatter VALUES(13, 1);
|
||||
INSERT INTO bok_forfatter VALUES(14, 8);
|
||||
INSERT INTO bok_forfatter VALUES(15, 8);
|
||||
INSERT INTO bok_forfatter VALUES(16, 8);
|
||||
INSERT INTO bok_forfatter VALUES(17, 8);
|
||||
INSERT INTO bok_forfatter VALUES(18, 8);
|
||||
INSERT INTO bok_forfatter VALUES(19, 8);
|
||||
INSERT INTO bok_forfatter VALUES(20, 9);
|
||||
INSERT INTO bok_forfatter VALUES(21, 10);
|
||||
INSERT INTO bok_forfatter VALUES(22, 10);
|
||||
INSERT INTO bok_forfatter VALUES(23, 11);
|
||||
INSERT INTO bok_forfatter VALUES(24, 12);
|
||||
INSERT INTO bok_forfatter VALUES(25, 12);
|
||||
|
||||
INSERT INTO konsulent VALUES(NULL, 'Anne', 'Hansen', 'anne.hansen@xxx.com');
|
||||
INSERT INTO konsulent VALUES(NULL, 'Bjørn', 'Jensen', 'bjornj@yyy.com');
|
||||
INSERT INTO konsulent VALUES(NULL,'Anne', 'Ås', 'anne.as@zzz.com');
|
||||
|
||||
/*
|
||||
** Avslutter transaksjonen og lagrer tabellene og data fysisk i databasen
|
||||
*/
|
||||
|
||||
COMMIT;
|
||||
|
||||
27
ov2/db_setup.txt
Normal file
27
ov2/db_setup.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
❯ mysql -u root -p [12:32:35]
|
||||
Enter password:
|
||||
Welcome to the MariaDB monitor. Commands end with ; or \g.
|
||||
Your MariaDB connection id is 15
|
||||
Server version: 10.9.2-MariaDB Arch Linux
|
||||
|
||||
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
|
||||
|
||||
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
||||
|
||||
MariaDB [(none)]> CREATE USER 'idatt2103'@'localhost' IDENTIFIED BY 'idatt2103';
|
||||
Query OK, 0 rows affected (0.051 sec)
|
||||
|
||||
MariaDB [(none)]> CREATE DATABASE oving2;
|
||||
Query OK, 1 row affected (0.001 sec)
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON oving2.* TO 'idatt2103'@'localhost';
|
||||
Query OK, 0 rows affected (0.011 sec)
|
||||
|
||||
MariaDB [(none)]> FLUSH PRIVILEGES;
|
||||
Query OK, 0 rows affected (0.001 sec)
|
||||
|
||||
MariaDB [(none)]> quit
|
||||
Bye
|
||||
>>> elapsed time 4m51s
|
||||
|
||||
|
||||
BIN
ov2/idat_db_ov2_relmod2.docx.pdf
Normal file
BIN
ov2/idat_db_ov2_relmod2.docx.pdf
Normal file
Binary file not shown.
254
ov2/losning.md
Normal file
254
ov2/losning.md
Normal file
@@ -0,0 +1,254 @@
|
||||
---
|
||||
geometry: margin=10mm
|
||||
author: Felix Albrigtsen
|
||||
...
|
||||
|
||||
## Oppgave 1
|
||||
### a) Lag en SQL-spørring som utfører operasjonene seleksjon og projeksjon på tabellen Bok.
|
||||
Seleksjon:
|
||||
`SELECT * FROM bok WHERE bok.tittel = 'Victorie'`
|
||||
|
||||
|
||||
|
||||
Begge:
|
||||
`SELECT tittel,utgitt_aar FROM bok;`
|
||||
|
||||
Eksempel-resultat:
|
||||
```
|
||||
MariaDB [oving2]> SELECT tittel,utgitt_aar FROM bok;
|
||||
+--------------------+------------+
|
||||
| tittel | utgitt_aar |
|
||||
+--------------------+------------+
|
||||
| Tåpenes | 1995 |
|
||||
| Rebecca | 1981 |
|
||||
| Gutter er gutter | 1995 |
|
||||
| Microserfs | 1991 |
|
||||
| Generation X | 1995 |
|
||||
...
|
||||
```
|
||||
|
||||
### b) Lag en SQL-spørring som utfører operasjonen produkt på tabellene Forlag og Bok. Beskriv resultatet med egne ord.
|
||||
|
||||
`SELECT * FROM forlag,bok;`
|
||||
|
||||
Eksempel-resultat:
|
||||
```
|
||||
MariaDB [oving2]> SELECT * FROM forlag,bok;
|
||||
+-----------+----------------+-----------+----------+--------+---------+------------+-----------+
|
||||
| forlag_id | forlag_navn | adresse | telefon | bok_id | tittel | utgitt_aar | forlag_id |
|
||||
+-----------+----------------+-----------+----------+--------+---------+------------+-----------+
|
||||
| 1 | Tapir | Trondheim | 73590000 | 1 | Tåpenes | 1995 | 7 |
|
||||
| 2 | Gyldendal | Oslo | 22220000 | 1 | Tåpenes | 1995 | 7 |
|
||||
| 3 | Cappelen | Oslo | 22200000 | 1 | Tåpenes | 1995 | 7 |
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
Her ser vi et produkt av forlag og bok, som et kryssprodukt. Resultatet er alle kombinasjoner/permutasjoner som er mulig. Som vi ser i tabellutdraget over gir ikke dette eksempelet så mye mening siden det viser alle bøker med alle forlag. Denne tabellen blir både lengre og bredere enn tabellene var til å begynne med, siden det må vise mange kombinasjoner med mange felter.
|
||||
|
||||
Om vi derimot bruker WHERE-selektorer, kan vi hente ut nyttig data med produktet.
|
||||
|
||||
### c) Lag SQL-spørringer som utfører operasjonene likhetsforening (equijoin) og naturlig forening(natural join) på tabellene Forlag og Bok. Hva forteller resultatet?
|
||||
|
||||
Spesifisert equijoin:
|
||||
`SELECT * FROM forlag JOIN bok ON forlag.forlag_id = bok.forlag_id;`
|
||||
```
|
||||
MariaDB [oving2]> SELECT * FROM forlag JOIN bok ON forlag.forlag_id = bok.forlag_id;
|
||||
+-----------+---------------+---------+----------+--------+------------------+------------+----------+
|
||||
| forlag_id | forlag_navn | adresse | telefon | bok_id | tittel | utgitt_aar |forlag_id |
|
||||
+-----------+---------------+---------+----------+--------+------------------+------------+----------+
|
||||
| 7 | Tiden | Oslo | 22232223 | 1 | Tåpenes | 1995 | 7 |
|
||||
| 3 | Cappelen | Oslo | 22200000 | 2 | Rebecca | 1981 | 3 |
|
||||
| 5 | Aschehaug | Oslo | 22000000 | 3 | Gutter er gutter | 1995 | 5 |
|
||||
| 8 | Harper Collins| USA | NULL | 4 | Microserfs | 1991 | 8 |
|
||||
| 8 | Harper Collins| USA | NULL | 5 | Generation X | 1995 | 8 |
|
||||
...
|
||||
```
|
||||
|
||||
Naturlig forening:
|
||||
`SELECT * FROM forlag NATURAL JOIN bok;`
|
||||
```
|
||||
+-----------+----------------+---------+----------+--------+--------------------+------------+
|
||||
| forlag_id | forlag_navn | adresse | telefon | bok_id | tittel | utgitt_aar |
|
||||
+-----------+----------------+---------+----------+--------+--------------------+------------+
|
||||
| 7 | Tiden | Oslo | 22232223 | 1 | Tåpenes | 1995 |
|
||||
| 3 | Cappelen | Oslo | 22200000 | 2 | Rebecca | 1981 |
|
||||
| 5 | Aschehaug | Oslo | 22000000 | 3 | Gutter er gutter | 1995 |
|
||||
| 8 | Harper Collins | USA | NULL | 4 | Microserfs | 1991 |
|
||||
| 8 | Harper Collins | USA | NULL | 5 | Generation X | 1995 |
|
||||
|
||||
```
|
||||
|
||||
De to tabellene er like, med unntak av at NATURAL JOIN ikke tar med begge tilfeller av `forlag_id`, da disse to er like. NATURAL JOIN bruker navnet på feltene for å avgjøre likheten.
|
||||
|
||||
Alle våre bøker har en forlag_id(ingen er NULL), altså kommer alle med. Dersom vi hadde tomme felter i dette feltet ville de ikke blitt med i disse foreningene.
|
||||
|
||||
|
||||
|
||||
|
||||
## d) Finn eksempler på attributter eller kombinasjoner av attributter som er unionkompatible. Hvilke relasjonsoperasjoner krever at operandene er unionkompatible? Sett opp SQL-spørringer som utfører disse operasjonene, et eksempel på hver. Beskriv med egne ord hva spørringene gir deg svaret på.
|
||||
|
||||
|
||||
Skjemaene i de to tabellene må være tilsvarende i lengde og datatyper. For å kombinere de to må kolonenne ordnes i samme rekkefølge.
|
||||
|
||||
|
||||
Her slår vi sammen to varchar-attributter med union.
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT nasjonalitet FROM forfatter UNION SELECT adresse FROM forlag;
|
||||
+--------------+
|
||||
| nasjonalitet |
|
||||
+--------------+
|
||||
| USA |
|
||||
| Britisk |
|
||||
| Portugisisk |
|
||||
| Canadisk |
|
||||
| Norsk |
|
||||
| Svensk |
|
||||
| Trondheim |
|
||||
| Oslo |
|
||||
+--------------+
|
||||
8 rows in set (0.001 sec)
|
||||
```
|
||||
Resultatet viser oss alle nasjonaliteter og alle adresser som hører til henholdsvis en forfatter eller forlag.
|
||||
|
||||
|
||||
Her slår vi sammen det samme atributtet(forlag_navn) fra forlag med adresse Trondheim og fra forlag uten telefonnummer.
|
||||
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT forlag_navn FROM forlag WHERE telefon IS NULL UNION SELECT forlag_navn FROM forlag WHERE adresse = 'Trondheim';
|
||||
+----------------+
|
||||
| forlag_navn |
|
||||
+----------------+
|
||||
| Harper Collins |
|
||||
| Tapir |
|
||||
+----------------+
|
||||
2 rows in set (0.001 sec)
|
||||
```
|
||||
|
||||
|
||||
|
||||
# Oppgave 2
|
||||
## a) Bruk SQL til å finne navnene til alle forlagene. Hvilken eller hvilke operasjoner fra relasjonsalgebraen brukte du?
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT forlag_navn FROM forlag;
|
||||
+----------------------+
|
||||
| forlag_navn |
|
||||
+----------------------+
|
||||
| Tapir |
|
||||
| Gyldendal |
|
||||
| Cappelen |
|
||||
| Universitetsforlaget |
|
||||
| Aschehaug |
|
||||
| Oktober |
|
||||
| Tiden |
|
||||
| Harper Collins |
|
||||
+----------------------+
|
||||
8 rows in set (0.001 sec)
|
||||
```
|
||||
Brukt seleksjon.
|
||||
|
||||
## b) Bruk SQL til å finne eventuelle forlag (forlag_id er nok) som ikke har gitt ut bøker. Hvilken eller hvilke operasjoner fra relasjonsalgebraen brukte du?
|
||||
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT forlag_id FROM forlag WHERE forlag_id NOT IN (SELECT forlag_id FROM bok);
|
||||
+-----------+
|
||||
| forlag_id |
|
||||
+-----------+
|
||||
| 1 |
|
||||
| 4 |
|
||||
| 6 |
|
||||
+-----------+
|
||||
3 rows in set (0.014 sec)
|
||||
```
|
||||
|
||||
Brukt seleksjon og projeksjon.
|
||||
|
||||
## c) Bruk SQL til å finne forfattere som er født i 1948. Hvilken eller hvilke operasjoner fra relasjonsalgebraen brukte du?
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT * FROM forfatter WHERE fode_aar = 1948;
|
||||
+--------------+---------+-----------+----------+---------+--------------+
|
||||
| forfatter_id | fornavn | etternavn | fode_aar | dod_aar | nasjonalitet |
|
||||
+--------------+---------+-----------+----------+---------+--------------+
|
||||
| 8 | Henning | Mankell | 1948 | NULL | Svensk |
|
||||
+--------------+---------+-----------+----------+---------+--------------+
|
||||
1 row in set (0.001 sec)
|
||||
|
||||
```
|
||||
Brukt seleksjon
|
||||
|
||||
## d) Bruk SQL til å finne navn og adresse til forlaget som har gitt ut boka 'Generation X'. Hvilken eller hvilke operasjoner fra relasjonsalgebraen brukte du?
|
||||
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT forlag_navn,adresse FROM forlag NATURAL JOIN bok WHERE tittel = "Generation X";
|
||||
+----------------+---------+
|
||||
| forlag_navn | adresse |
|
||||
+----------------+---------+
|
||||
| Harper Collins | USA |
|
||||
+----------------+---------+
|
||||
1 row in set (0.001 sec)
|
||||
```
|
||||
|
||||
Brukt seleksjon og naturlig forening.
|
||||
|
||||
## e) Bruk SQL til å finne titlene på bøkene som Hamsun har skrevet. Hvilken eller hvilke operasjoner fra relasjonsalgebraen brukte du?
|
||||
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT b.tittel FROM bok b,bok_forfatter bf,forfatter f WHERE bf.forfatter_id = f.forfatter_id AND f.etternavn = 'Hamsund' AND bf.bok_id = b.bok_id;
|
||||
+----------------+
|
||||
| tittel |
|
||||
+----------------+
|
||||
| Markens grøde |
|
||||
| Victoria |
|
||||
| Sult |
|
||||
+----------------+
|
||||
3 rows in set (0.001 sec)
|
||||
```
|
||||
|
||||
Brukt seleksjon og projeksjon
|
||||
|
||||
## f) Bruk SQL til å finne informasjon om bøker og forlagene som har utgitt dem. Én linje i oversikten skal inneholde bokas tittel og utgivelsesår, samt forlagets navn, adresse og telefonnummer. Forlag som ikke har gitt ut noen bøker skal også med i listen. Hvilken eller hvilke operasjoner fra relasjonsalgebraen brukte du?
|
||||
|
||||
Formatting:
|
||||
SELECT b.tittel,b.utgitt_aar,f.forlag_navn,f.adresse FROM bok b,forlag f;
|
||||
|
||||
Selection:
|
||||
SELECT * FROM forlag f LEFT JOIN bok b ON b.forlag_id = f.forlag_id;
|
||||
|
||||
|
||||
```sql
|
||||
MariaDB [oving2]> SELECT b.tittel,b.utgitt_aar,f.forlag_navn,f.adresse,f.telefon FROM forlag f LEFT JOIN bok b ON b.forlag_id = f.forlag_id;
|
||||
+--------------------+------------+----------------------+-----------+----------+
|
||||
| tittel | utgitt_aar | forlag_navn | adresse | telefon |
|
||||
+--------------------+------------+----------------------+-----------+----------+
|
||||
| Tåpenes | 1995 | Tiden | Oslo | 22232223 |
|
||||
| Rebecca | 1981 | Cappelen | Oslo | 22200000 |
|
||||
| Gutter er gutter | 1995 | Aschehaug | Oslo | 22000000 |
|
||||
| Microserfs | 1991 | Harper Collins | USA | NULL |
|
||||
| Generation X | 1995 | Harper Collins | USA | NULL |
|
||||
| Klosterkrønike | 1982 | Cappelen | Oslo | 22200000 |
|
||||
| Universet | 1988 | Cappelen | Oslo | 22200000 |
|
||||
| Nålen | 1978 | Cappelen | Oslo | 22200000 |
|
||||
| Markens grøde | 1917 | Gyldendal | Oslo | 22220000 |
|
||||
| Victoria | 1898 | Gyldendal | Oslo | 22220000 |
|
||||
| Sult | 1890 | Gyldendal | Oslo | 22220000 |
|
||||
| Benoni | 1908 | Gyldendal | Oslo | 22220000 |
|
||||
| Rosa | 1908 | Gyldendal | Oslo | 22220000 |
|
||||
| Et skritt | 1997 | Gyldendal | Oslo | 22220000 |
|
||||
| Den femte | 1996 | Gyldendal | Oslo | 22220000 |
|
||||
| Villspor | 1995 | Gyldendal | Oslo | 22220000 |
|
||||
| Silkeridderen | 1994 | Gyldendal | Oslo | 22220000 |
|
||||
| Den hvite hingsten | 1992 | Gyldendal | Oslo | 22220000 |
|
||||
| Hunder | 1992 | Gyldendal | Oslo | 22220000 |
|
||||
| Bridget Jones | 1995 | Aschehaug | Oslo | 22000000 |
|
||||
| Se terapeuten | 1998 | Cappelen | Oslo | 22200000 |
|
||||
| Sa mor | 1996 | Cappelen | Oslo | 22200000 |
|
||||
| Jubel | 1995 | Cappelen | Oslo | 22200000 |
|
||||
| Tatt av kvinnen | 1993 | Cappelen | Oslo | 22200000 |
|
||||
| Supernaiv | 1996 | Cappelen | Oslo | 22200000 |
|
||||
| NULL | NULL | Tapir | Trondheim | 73590000 |
|
||||
| NULL | NULL | Universitetsforlaget | Oslo | 23230000 |
|
||||
| NULL | NULL | Oktober | Oslo | 22002200 |
|
||||
+--------------------+------------+----------------------+-----------+----------+
|
||||
```
|
||||
|
||||
Brukt: seleksjon, produkt, outer join
|
||||
BIN
ov2/oving2.pdf
Normal file
BIN
ov2/oving2.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user