17/19.09. (potrebno za lekciju) Kreiranje baze podataka i tabela uz osvrt na tipove podataka
Podsetite se:
U bazama podataka, tipovi podataka definišu vrstu podataka koji mogu da se postave i sačuvaju u određenom polju ili koloni tabele.
Osnovni tipovi podataka
-
- Numerički tipovi
Ovi tipovi podataka koriste se za upis brojeva. Na primer:- INT: Koristi se za celobrojne vrednosti (npr. -1, 0, 25).
- Decimal: Koriste se za brojeve sa decimalnom tačkom, kao što su cene, procenti i slični podaci sa decimalama.
- Tekstualni tipovi
Ovi tipovi podataka koji se koriste za upis teksta, kao što su imena, adrese ili opisi. Na primer:
- CHAR: Fiksna dužina teksta, npr. 10 karaktera.
- VARCHAR: Promenljiva (varijabilna) dužina teksta - npr. može da se upiše od 1 do 255 karaktera.
- TEXT: Za vrlo duge tekstualne vrednosti.
-
Datum i vreme
Tipovi podataka koji se koriste za čuvanje informacija o datumiu i vremenu. Na primer:-
DATE: Samo za datum (npr. 2023-10-01).
-
TIME: Samo za vreme (npr. 14:30:00).
-
DATETIME: Za datum i vreme zajedno (npr. 2023-10-01 14:30:00).
-
-
Logički tipovi
Ovi tipovi podataka koriste se za čuvanje logičkih vrednosti, tj. vrednosti koje mogu biti samo istinite ili neistinite (true/false, 0/1). -
Binarni tipovi
Ovi tipovi koriste se za čuvanje podataka kao što su slike, video fajlovi ili druge vrste binarnih datoteka.
- Numerički tipovi
Različiti DBMS i razlike u tipovima podataka
Iako svi sistemi za upravljanje bazama podataka (DBMS) koriste osnovne tipove podataka, svaki DBMS ima specifične varijante i implementacije tih tipova, a neke od njih mogu da se razlikovuju detaljima. Konkretno, MS SQL Server, MySQL i Microsoft Access koriste slične, ali ne potpuno identične tipove podataka. U nastavku je napravljen pregled osnovnih tipova podataka, uz poređenje između ova tri sistema:
1. Numerički tipovi podataka
| Tip | Opis | MS SQL Server | MySQL | MS Access |
|---|---|---|---|---|
| Celi brojevi (integer) | Brojevi bez decimala | TINYINT, SMALLINT, INT, BIGINT |
TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT |
Byte, Integer, Long Integer |
| Decimalni brojevi | Brojevi sa decimalama | DECIMAL(p,s), NUMERIC(p,s), FLOAT, REAL |
DECIMAL(p,s), FLOAT, DOUBLE |
Single, Double, Decimal |
Napomena:
DECIMAL(p,s)iINT– ovo ćemo najčešće koristiti na časovima, bez obzira da li se koristi MS SQL Server ili MySQL !
| Tip | Opis | MS SQL Server | MySQL | MS Access |
|---|---|---|---|---|
| Datum i vreme | Kombinacija datuma i vremena | DATETIME, SMALLDATETIME, DATE, TIME, DATETIME2 |
DATETIME, TIMESTAMP, DATE, TIME |
Date/Time, Date/Time Extended |
| Samo datum ili samo vreme | DATE, TIME |
DATE, TIME |
Date(), Time() kao funkcije |
| Tip | Opis | MS SQL Server | MySQL | MS Access |
|---|---|---|---|---|
| Fiksna dužina teksta | CHAR |
CHAR |
Text (do
255
znakova) |
|
| Promenljiva dužina teksta | VARCHAR |
VARCHAR |
Text |
|
| Veliki tekst (duži od 255) | TEXT |
TEXT, MEDIUMTEXT, LONGTEXT |
Memo (sada: Long
Text) |
|
| Unicode podrška | Za višejezične sisteme | NCHAR, NVARCHAR |
CHAR, VARCHAR sa utf8 ili utf8mb4 |
Nema direktno – koristi Unicode kodove |
| Tip | Opis | MS SQL Server | MySQL | MS Access |
|---|---|---|---|---|
| Boolean / logička vrednost | TRUE / FALSE |
BIT (0 ili 1) |
BOOLEAN (interno TINYINT(1)) |
Yes/No |
5. Binarni podaci (npr. slike, datoteke)
| Tip | Opis | MS SQL Server | MySQL | MS Access |
|---|---|---|---|---|
| Binarni podaci | Za čuvanje datoteka, slika | BINARY, VARBINARY, IMAGE (zastarelo) |
BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB |
OLE
Object |
| Tip | Opis | MS SQL Server | MySQL | MS Access |
|---|---|---|---|---|
| Automatsko povećanje vrednosti | Primarni ključevi | IDENTITY |
AUTO_INCREMENT |
AutoNumber |
Baza podataka: (1.grupa) TestBaza (2.grupa)
Proba
Kreiraćemo tri tabele koje će pokriti što širi spektar tipova podataka:

Zadatak 1: Kreirati bazu podataka i tabele u njoj (kao na slici). Svaku od tabela popuniti sa 2-3 reda podataka.
SQL Upiti za MS SQL Server:
...
Kreiranje tabela
-- Tabela: Korisnici
CREATE TABLE Korisnici (
KorisnikID INT IDENTITY PRIMARY KEY,
Ime VARCHAR(100),
DatumRegistracije DATE,
Aktivan BIT
);
-- Tabela: Proizvodi
CREATE TABLE Proizvodi (
ProizvodID INT IDENTITY PRIMARY KEY,
Naziv VARCHAR(100),
Cena DECIMAL(10, 2),
);
-- Tabela: Narudzbine
CREATE TABLE Narudzbine (
NarudzbinaID INT IDENTITY PRIMARY KEY,
KorisnikID INT,
UkupnaCena DECIMAL(10, 2),
Poslato BIT
);
Popunjavanje podataka
-- Popunjavanje tabele Korisnici
INSERT INTO Korisnici (Ime, DatumRegistracije, Aktivan)
VALUES
('Jovan Jovanović', '2023-05-01', 1),
('Ana Anić', '2023-06-10', 0),
('Marko Marković', '2023-07-21', 1);
-- Popunjavanje tabele Proizvodi
INSERT INTO Proizvodi (Naziv, Cena)
VALUES
('Laptop', 1500.00),
('Telefon', 700.50);
-- Popunjavanje tabele Narudzbine
INSERT INTO Narudzbine (KorisnikID, UkupnaCena, Poslato)
VALUES
(1, 2200.50, 1),
(2, 700.50, 0),
(3, 1500.00, 1);
...
...