V naslednjem primeru bom s pomočjo stavka CREATE DATABASE ustvarili novo bazo podatkov.
CREATE DATABASEbazapodatkov
Naslednji stavek nam pokaže, kako izbrisati bazo podatkov.
DROP DATABASEbazapodatkov
Stavek CREATE TABLE se uporablja za izdelavo nove tabele v bazi podatkov.
CREATE TABLEtest (id int(4),ime varchar(255),priimek varchar(255),age int(4),
Stavek DROP TABLE se uporablja za izbris tabele. V primeru bomo izbrisali tabelo "test", ki smo jo naredili.
DROP TABLEtest
Stavek ALTER TABLE se uporablja za dodajanje, brisanje ali spreminjanje stolpcev v obstoječi tabeli. V
naslednjem primeru bomo stolpec dodali.
ALTER TABLEstranke ADDemail varchar(255)
Naslednji primer prikazuje, kako izbrisati stolpec.
ALTER TABLEstranke DROP COLUMN
Če želimo spremeniti vrsto podatkov stolpca v tabeli, uporabimo MODIFY COLUMN. Prvo bomo ponovno dodali stolpec
email s podatki varchar, in nato te podatke spremenili v text.
ALTER TABLEstranke MODIFY COLUMN
Omejitve (ang. Constraints) se uporablja za določanje pravil za podatke v tabeli. Mogoče ga je uporabiti, ko je tabela
ustvarjena s stavkom CREATE TABLE ali potem, ko je tabela ustvarjena s stavkom ALTER TABLE. Omejitve se
uporabljajo za omejevanje vrste podatkov, ki jih laho vpišemo v posamezno vrstico. Omejitve, ki se običajno
uporabljajo so:
OMEJITEV | OPIS |
---|---|
NOT NULL | polje ne sme biti prazno |
UNIQUE | zagotavlja, da so vse vrednosti v stolpcu različne |
PRIMARY KEY | identificira vsako vrstico v tabeli |
FOREIGN KEY | preprećuje dejanja, ki bi uničila povezave med tabelami |
CHECK | zagotavlja da vrednost v vrstici izpolnjuje določen pogoj |
DEFAULT | nastavi privzeto vrednost za stolpec, če ni podana nobena vrednost |
CREATE INDEX | uporablja se za hitro ustvarjanje in pridobivanje podatkov iz baze |
Ustvarimo tabelo z omejitvami.
CREATE TABLEtest (id int(4)PRIMARY KEY , -- identificira vsako vrstico v tabeliime varchar(200)NOT NULL , -- polje ne sme biti praznopriimek varchar(200)UNIQUE , -- vrednosti v stolpcu so različnenaslov text(300)DEFAULT 'neznano' -- če pustimo vrednost prazno se nam vpiše ta vrednost )
Stavek CREATE INDEX se uporablja za ustvarjanje indeksov v tabelah. Indeksi se uporabljajo za hitrejše
pridobivanje podatkov iz baze kot sicer. Indeksa ne vidimo, uporablja se le za pospešitev iskanja. Posodabljanje
tabele z indeksi traja več časa kot posodabljanje tabele brez.
CREATE INDEXidx_imeONstranke (ime)
ALTER TABLEstranke DROP INDEXidx_ime
AUTO-INCREMENT omogoča samodejno ustvarjanje edinstvene številke, ko se v tabelo vstavi nov zapis. Pogosto je
to polje primarnega ključa, ki bi ga želeli samodejno ustvariti vsakič, ko je vstavljen nov zapis. Naslednji stavek
definira stolpec
CREATE TABLEdemo (id int(4)PRIMARY KEY ,ime varchar(255)NOT NULL ,priimek varchar(255)NOT NULL ,
MySQL uporablja besedo AUTO-INCREMENT za izvedbo funkcije samodejnega povečanja, privzeta vrednost je 1. Če pa
želimo, da se AUTO-INCREMENT začne z drugo številko, pa si oglejmo v primeru.
ALTER TABLEdemo AUTO_INCREMENT =5
Preverimo, če je res.
INSERT INTOdemo (ime ,priimek ,VALUES('Prva', 'Oseba', 'prva@oseba.si')
Najtežji del pri delu z datumi je zagotoviti, da se oblika datume, ki ga poskušamo vstaviti, ujema z obliko datumskega stolpca v bazi podatkov. Dokler naši podatki vsebujejo samo del datuma, bodo naše poizvedbe delovale po pričakovanjih, če pa je vključen časovni pas, postane bolj zapleteno. MySQL ima naslednje vrste podatkov za shranjevanje datuma ali časa v bazi podatkov.
VREDNOST | FORMAT |
---|---|
DATE | YYYY-MM-DD |
DATETIME | YYYY_MM_DD HH:MI:SS |
TIMESTAMP | YYYY-MM-DD HH:MI:SS |
YEAR | YYYY ali YY |
SELECT*FROMstranke WHEREreg_date ='2022-03-05'
Rezultata nismo dobili, ker poizvedba išče samo datumske zapise, brez časovnega sela, mi imamo v tabeli vključen tudi čas.