· 7 years ago · Feb 27, 2019, 12:14 PM
1IF NOT EXISTS (SELECT * FROM sys.databases WHERE NAME = 'TEC') /*tjekker om der er en database med navnent "TEC"*/
2 CREATE DATABASE TEC /*Opretter en database "TEC"*/
3 GO
4 USE TEC;
5 PRINT 'Database Oprettet.' /*Udskriver at vi har oprettet en ny database*/
6 IF NOT EXISTS (SELECT * FROM sysobjects WHERE NAME = 'Elev' AND xtype = 'U') /*tjekker om der er en table ved navn "Elev"*/
7 BEGIN
8 CREATE TABLE Elev( /*Her opretter vi en tabel mev navnet "Elev"*/
9 /*ElevID bliver sat some Integer (hel tel) den skal være sat, derfor har we "NOT NULL"
10 SQL SYNTAXS:
11 IDENTITY(1,1) bruger vi til AI (Auto Increment) med 1, dette betyder at den altid vi +1 når der kommer en ny række.
12 VARCHAR er for tekst som er under 255 tegn, ellers bliver den lavet om til en TEXT:
13 TINYTEXT - Maximum 255 karaktere
14 TEXT - maximum 65,535 karaktere
15 LONGTEXT - 4,294,967,295 karaktere
16 PRIMARY KEY - skal være unik, samt kan en tabel kun have 1 PRIMARY KEY, men den kan strække sig over flere "fields"
17 FOREIGN KEY - bruges til at linke to tabeler sammen og bruges til at refarer til en PRIMARY KEY fra en anden tabel
18 */
19 ElevID INT NOT NULL IDENTITY(1,1),
20 Fornavn VARCHAR(50),
21 Efternavn VARCHAR(30),
22 Adresse VARCHAR(100),
23 PostNr INT,
24 )
25 /*Indsætter data ind i tabelen "Elev"*/
26 INSERT INTO Elev(Fornavn, Efternavn, Adresse, PostNr) VALUES
27 ('Bo', 'Andersen', 'Gammel Byvej 12', 2300),
28 ('Frederikke', 'Hansen', 'Amager Boulevard 5', 2300),
29 ('Jens', 'Mikkelsen', 'Lily Brobergs Vej 17', 2500),
30 ('Phillip', 'Mortensen', 'Brunevang 90', 2610),
31 ('Kasper', 'Frederiksen', 'Bryggertorvet 32', 3650),
32 ('Milla', 'Jørgensen', 'Virum Torv 25', 2830),
33 ('Fie', 'Knudsen', 'Allen 85', 2770),
34 ('Henrik', 'Madsen', 'Lily Brobergs Vej 53', 2500);
35 ALTER TABLE Elev --Her vælger vi at ændre tabellen "Elev"
36 ADD CONSTRAINT Elev_pk PRIMARY KEY (ElevID), --Her tilføjer vi en "Constraint" som er navngivet "Elev_pk" og sætter "PRIMARY KEY" på kolonen "ElevID"
37 --Constraints bliver brugt til at tilføje en eller flere regler til en kolone, som i vores tilfælde er "PRIMARY KEY" og "FOREIGN KEY"
38 CONSTRAINT fk_ElevPostNr
39 FOREIGN KEY (PostNr) REFERENCES PostNrBy(PostNr);
40 END
41 PRINT 'Oprettet table "Elev".'
42 PRINT 'Indsat data i table "Elev"'
43 IF NOT EXISTS (SELECT * FROM sysobjects WHERE NAME = 'PostNrBy' AND xtype = 'U') /*tjekker om der er en table ved navn "PostNrBy"*/
44 BEGIN
45 CREATE TABLE PostNrBy( /*Her opretter vi en tabel mev navnet "PostNrBy"*/
46 PostNr INT NOT NULL,
47 ByNavn VARCHAR(50)
48 )
49 INSERT INTO PostNrBy(PostNr, ByNavn) VALUES
50 (2650, 'Hvidovre'),
51 (2300, 'København S'),
52 (2500, 'Valby'),
53 (2610, 'Rødovre'),
54 (3650, 'Ølstykke'),
55 (2830, 'Virum'),
56 (2770, 'Kastrup'),
57 (1824, 'Frederiksberg C'),
58 (2740, 'Skovlunde'),
59 (2750, 'Ballerup');
60 ALTER TABLE PostNrBy
61 ADD CONSTRAINT PostNrBy_pk PRIMARY KEY (PostNr);
62 END
63 PRINT 'Oprettet table "PostNrBy".'
64 PRINT 'Indsat data i table "PostNrBy"'
65 GO
66 IF NOT EXISTS (SELECT * FROM sysobjects WHERE NAME = 'Laerer' AND xtype = 'U') /*tjekker om der er en table ved navn "Laerer"*/
67 BEGIN
68 CREATE TABLE Laerer( /*Her opretter vi en tabel mev navnet "Laerer"*/
69 LaererID INT NOT NULL IDENTITY(1,1),
70 Fornavn VARCHAR(50),
71 Efternavn VARCHAR(30),
72 Adresse VARCHAR(100),
73 PostNr INT,
74 )
75 INSERT INTO Laerer(Fornavn, Efternavn, Adresse, PostNr) VALUES
76 ('Tom', 'It', 'Sankt Thomas Alle 3', 1824),
77 ('Lars', 'Henriksen', 'Nissedalen 76', 2740),
78 ('Mia', 'Hansen', 'Gammel Byvej 12', 2750);
79 ALTER TABLE Laerer
80 ADD CONSTRAINT Laerer_pk PRIMARY KEY (LaererID),
81 CONSTRAINT fk_LaererPostNr
82 FOREIGN KEY (PostNr) REFERENCES PostNrBy(PostNr),
83 CONSTRAINT fk_LaererID
84 FOREIGN KEY (LaererID) REFERENCES Klasse(KlasseID);
85 END
86 PRINT 'Oprettet table "Laerer".'
87 PRINT 'Indsat data i table "Laerer"'
88 GO
89 IF NOT EXISTS (SELECT * FROM sysobjects WHERE NAME = 'Klasse' AND xtype = 'U') /*tjekker om der er en table ved navn "Klasse"*/
90 BEGIN
91 CREATE TABLE Klasse( /*Her opretter vi en tabel mev navnet "Klasse"*/
92 KlasseID INT NOT NULL IDENTITY(1,1),
93 KlasseNavn VARCHAR(50)
94 )
95 INSERT INTO Klasse(KlasseNavn) VALUES
96 ('A210'),
97 ('E224'),
98 ('D307');
99 ALTER TABLE Klasse
100 ADD CONSTRAINT Klasse_pk PRIMARY KEY (KlasseID);
101 END
102 PRINT 'Oprettet table "Klasse".'
103 PRINT 'Indsat data i table "Klasse"'
104 GO
105
106 SELECT * FROM Elev;
107 SELECT * FROM PostNrBy;
108 SELECT * FROM Laerer;
109 SELECT * FROM Klasse;