Repository navigation
Expand file tree
/
Copy path03_SQL_DDL-commansds.sql
More file actions
66 lines (45 loc) · 2.26 KB
/
Copy path03_SQL_DDL-commansds.sql
File metadata and controls
66 lines (45 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
USE MyDatabase
/*task: Create a new table called persons with colums:
id, person_name, birth_date, and phone */
CREATE TABLE persons -- tworzy tabele persons w MyDatabase
(
id INT NOT NULL, -- tworzy kolumne id ustawia typ danych na INT i mowi ze rekordy musza byc NOT NULL
person_name VARCHAR(50) NOT NULL,
birth_date DATE,
phone VARCHAR(15) NOT NULL
CONSTRAINT pk_persons PRIMARY KEY (id)
)
/*
CONSTRAINT to poprostu ograniczenie ktore mozemy sobie nazwac, w tym przypadku to pk_persons
Przez to pozniej latwo mozna z nich zrezygnowac uzywajac takiej komendy:
ALTER TABLE persons DROP CONSTRAINT pk_persons;
Typy ograniczen:
PRIMARY KEY - kolumna musi byc unikalna i nie moze zawierac wartosci NULL
CONSTRAINT pk_persons PRIMARY KEY (id)
FOREIGN KEY - kolumna musi wskazywac na instniejacy rekord w innej tabeli
CONSTRAINT FK_Zamowienia_Klienci FOREIGN KEY (KlientID) REFERENCES Klienci(ID)
CHECK - warunek logiczney, ktore dane musza spelniac
CONSTRAINT CHK_Wiek CHECK (Wiek >= 18)
UNIQUE - wartosc w kolumnie musi byc unikalna, ale moze zawierac jeden NULL
CONSTRAINT UQ_Uzytkownicy_Email UNIQUE (Email)
Można wskazywac na wiecej niz 1 kolumne np.
CONSTRAINT PK_ZamowieniePozycja PRIMARY KEY (ZamowienieID, PozycjaID)
tutaj i ZamowienieID jak i PozycjaID musza byc unikalne i nie zawierac NULL'a
*/
-------------------------------------------------------------------------------------------------------------------------------
SELECT*
FROM dbo.persons
/* Jesli chcemy zobaczyc jak jaki skrypt tworzy nam nasza tabele (bo naprzyklad stracilismy Query)
to klikamy prawym na nasza tabele -> tabela skryptu jako -> UTWÓRZ -> Nowe okno edytora Power Query
NOTE: lepiej zawsze dawac swoj kod na github, to jest taka bardziej deska ratunku
*/
/*task: Add a new column called email to the persons table */
ALTER TABLE dbo.persons -- edytujemy tabele persons
ADD email VARCHAR(50) NOT NULL -- dodajemy kolumne email
--NOTE: nowe kolumny pojawiaja sie na koncu tabeli. jesli chcemy zeby nasza nowa kolumna
--byla pomiedzy starymi to musimy zrobic tabele od nowa.
/*task: Remove the column phone from the persons table */
ALTER TABLE dbo.persons
DROP COLUMN phone -- usuwamy kolumne phone
/*task: Delete the table persons from the database */
DROP TABLE dbo.persons -- usuwa tabele