hu en sv en hu it hu en hu de hu ja hu hu hu hu hu hu hu hu hu ja hu hu hu hu en hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu en hu fr hu en hu en hu en hu kn hu hu hu hu hu hu hu hu cs hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu en hu cs en hu hu hu hu hu hu hu en hu cs et hu hu hu hu hu hu hu cs en hu hu hu hu hu hu hu cs hu hu hu hu es es es tr en hu hu hu hu hu hu hu hu hu fr hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu en hu it hu en hu de hu ja hu hu hu hu hu es es es tr en hu
Megszorítások, megkötések, kényszerfeltételek SQL adatbázis-kezelő rendszerben (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT) - WEBiskola
Weboldalszerkesztő (HTML, CSS, JS kódszerkesztő) HTML-színkód generátor (Hexadecimális, RGB, HSL színkód kereső)
Ebben az adatbázis leckében a megszorítások típusait és használatát fogjuk bemutatni.
Az SQL megszorítások célja elkerülni azt, hogy a felhasználó helytelen rekordokat vigyen fel az adatbázisba. A korlátozások az adatbázistábla oszlopaira, azaz mezőire vonatkozó szabályok.
Megkülönböztetünk oszlop- és táblaszintű megszorítást. Az oszlopszintű megszorítások csak egy oszlopra vonatkoznak, míg a táblaszintű korlátozások az egész táblára.
Ebben a leckében mi az oszlopokra vonatkozó megkötéseket fogjuk részletezni.
A megszorításokat a tábla létrehozásakor tudjuk definiálni. Meg kell adnunk az oszlop nevét, az adattípusát, majd magát a megszorítást. Lentebb bemutatjuk, hogy milyen megszorítások használhatóak.
CREATE TABLE tábla ( oszlop1 adattípus megszorítás, );
Megszorításokat nem csak létrehozni, de módosítani, törölni is lehet.
Lentebb láthatjátok a leggyakrabban használt SQL megszorításokat, kényszerfeltételeket egy rövid leírással. Lentebb ezen megkötések részletesebben is bemutatásra kerülnek.
az oszlop értéke nem lehet NULL (üres)
az oszlop összes értékének egyedinek kell lenni
a NOT NULL és a UNIQUE kombinációja, minden rekordnak egyértelműen beazonosíthatónak kell lennie
egyértelműen beazonosíthatónak kell lennie egy rekordnak egy másik táblában
az oszlop értékének meg kell felelnie a meghatározott feltételnek
egy alapértelmezett értéket állít be az oszlopnak, ha a felhasználó nem adott volna meg értéket
A NOT NULL megszorítás
Ha egy mezőre vonatkozólag NOT NULL megszorítást teszünk, akkor az a mező soha nem vehet fel NULL, azaz üres értéket. Tulajdonképpen ez kötelező a felhasználót, vagy az adatbáziskezelőt, hogy a rekordfelvitelkor kitöltse a mezőt, azaz határozzon meg értéket a számára.
Az oszlop neve és adattípusa után szimplán meg kell adni a “NOT NULL” megkötést.
CREATE TABLE tábla ( oszlop adattípus NOT NULL ); Code language: PHP (php)
Ebben a példában meghatároztuk, hogy a vezeték- és keresztnevet kötelező kitölteni, azaz nem lehet üresen hagyni.
CREATE TABLE vasarlok ( vezeteknev VARCHAR(30) NOT NULL, keresztnev VARCHAR(30) NOT NULL ); Code language: PHP (php)
Ha egy oszlopra UNIQUE megszorítást alkalmazunk, akkor azon mező értékeinek teljesen egyedieknek kell lenniük. Azaz minden sornak egyedi értékkel kell rendelkeznie arra az oszlopra vonatkozólag, amelyre alkalmazzuk a megszorítást.
UNIQUE szintaxis egy oszlopra vonatkozólag MySQL-ben
Az oszlop neve után következik az adattípus és a NOT NULL megkötés, majd vesszővel elválasztva adjuk meg az UNIQUE kulcsszó után azt az oszlopot, amelyikre vonatkozólag szeretnénk, hogy csak egyedi értékek forduljanak elő értékei között.
CREATE TABLE tábla ( oszlop adattípus NOT NULL, UNIQUE(oszlop) ); Code language: PHP (php)
UNIQUE szintaxis több oszlopra vonatkozólag
Az alábbi szintaxis egységes, hiszen a MySQL, az SQL Server, az Oracle Database és az MS Access adatbázis-kezelő rendszerben is megegyezik.
CREATE TABLE tábla ( oszlop1 adattípus NOT NULL, oszlop2 adattípus NOT NULL, CONSTRAINT név UNIQUE (oszlop1,oszlop2 ...) ); Code language: PHP (php)
Az alábbi példában azt a megszorítást hoztuk meg, hogy a személyazonosító igazolvány számának egyedinek kell lenni. Azaz, ha valaki olyan értéket próbál felvinni, amely már megtalálható a táblában, akkor a rendszer nem fogja engedélyezni.
CREATE TABLE vasarlok ( szemelyazonosito_igazolvany VARCHAR(9) NOT NULL, UNIQUE(szemelyazonosito_igazolvany) ); Code language: SQL (Structured Query Language) (sql)
A PRIMARY KEY kényszerfeltétel
A PRIMARY KEY megszorítást magyarul elsődleges kulcsnak nevezzük. Az elsődleges kulcs egy olyan érték, amely alapján minden rekord egyértelműen és összetéveszthetetlenül beazonosítható. Ebből kifolyólag az elsődleges kulcs egy teljesen egyedi érték, ez az érték nem tartalmazhat NULL-t.
>> Az elsődleges kulcsról itt olvashatsz bővebben. <<
Először definiálnunk kell egy mezőt, melyhez meg kell adnunk a típusát, illetve ki kell kötnünk, hogy az értéke nem lehet NULL. Majd a következő sorban a PRIMARY KEY utasítással megadjuk, hogy az előbb definiált mező lesz az elsődleges kulcs. Ne felejtsük el, hogy az egyes utasítások között vessző van, elég gyakori hiba, amely sok fejfájást okoz és nehéz észrevenni is.
Egyszerű elsődleges kulcs létrehozása MySQL-ben
CREATE TABLE tábla ( oszlop adattípus NOT NULL, PRIMARY KEY (oszlop) ); Code language: PHP (php)
Összetett kulcs esetében a szintaxis nem változik, csak abban a pontban, ahol megadjuk, hogy mely mező legyen az elsődleges kulcs. Korábban csak egyetlen egy oszlopot adtunk meg, egy összetett kulcs esetében viszont többet is megadunk.
Összetett elsődleges kulcs létrehozása MySQL-ben
CREATE TABLE tábla ( mező1 adattípus NOT NULL, mező2 adattípus, PRIMARY KEY (mező1, mező2) ); Code language: PHP (php)
Ebben a példában létrehozunk “vasarlok” táblát, amelynek a “vasarloID” névre keresztelt mező lesz az elsődleges kulcsa.
CREATE TABLE vasarlok ( vasarloID int NOT NULL, PRIMARY KEY (vasarloID) ); Code language: PHP (php)
A FOREIGN KEY korlátozás
Az idegen kulcsot magyarul szokás másodlagos kulcsnak is nevezni, míg angolul FOREIGN KEY-ként hivatkozunk rá. A másodlagos kulcs egy olyan oszlop vagy több oszlop, amely kapcsolatot biztosít két tábla adatai között. Az idegen kulcs egy olyan azonosító, amellyel egy másik tábla elsődleges kulcsára hivatkozhatunk. Leegyszerűsítve azt mondhatjuk, hogy az idegen kulcs egy másik tábla elsődleges kulcsa.
>> Az idegenkulcsról itt olvashatsz bővebben. <<
Először szükségünk lesz egy mezőre, amelyet másodlagos kulcsnak nevezünk ki a FOREIGN KEY utasítással. A FOREIGN KEY utasítás után található zárójelek közé jön a jelenlegi táblában definiált mező neve, amelyet idegen kulcsként akarunk kinevezni. Majd ezt követi a REFERENCES szó és a másik tábla, amellyel kapcsolatot akarunk kialakítani. Ezt követően a zárójelek közé a másik tábla elsődleges kulcsát kell megadni.
Idegen kulcs létrehozása MySQL-ben
CREATE TABLE tábla ( oszlop adattípus, FOREIGN KEY (oszlop) REFERENCES másikTábla(elsődlegesKulcs) );
A lenti példában létrehozunk egy “vasarlasok” táblát, amelyben a “vasarloID” lesz az idegen kulcs, amely a “vasarlok” tábla “vasarloID” elsődleges kulcsára mutat.
CREATE TABLE vasarlasok ( vasarloID int, FOREIGN KEY (vasarloID) REFERENCES vasarlok(vasarloID) );
A CHECK megszorítás alkalmazásával meghatározhatunk egy feltételt, amelynek teljesülnie kell a mezőre vonatkozólag. Egy rekord csak akkor adható hozzá a táblához, ha a CHECK megszorításban meghatározott feltételnek megfelel az értéke.
Először meg kell adni az oszlop nevét, majd adattípusát, ezt követi egy NOT NULL megkötés, illetve egy CHECK megszorítás a korlátozó feltétellel.
CREATE TABLE tábla ( oszlop adattípus NOT NULL, CHECK (feltétel) ); Code language: SQL (Structured Query Language) (sql)
A következő példában kikötöttük, hogy az életkor nem lehet üresen hagyva, illetve azt, hogy csak 18 év fölötti személyek rekordja vihető fel.
CREATE TABLE vasarlok ( eletkor INT NOT NULL, CHECK (eletkor>=18) ); Code language: SQL (Structured Query Language) (sql)
Ez a megkötés meghatároz a mezők számára egy alapértelmezett értéket. Ez az alapértelmezett érték akkor kerül felhasználásra, ha a felhasználó az új rekord felvitelekor nem határozott meg értéket a mező számára. Azaz ilyenkor az alapértelmezett érték kerül a táblázatba.
Először meg kell adni az oszlop nevét, adattípusát, majd a DEFAULT kulcsszót és az alapértelmezett értéket.
CREATE TABLE tábla ( oszlop adattípus DEFAULT érték ); Code language: SQL (Structured Query Language) (sql)
Az alábbi példában meghatároztuk, hogy ha valaki nem adja meg a nevét, akkor az adatbázisba alapértelmezetten egy “nem meghatározott” érték kerüljön be.
CREATE TABLE vasarlok ( nem VARCHAR(20) DEFAULT 'nem meghatározott' ); Code language: PHP (php)
Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!
Az adatbázis-kezelés alapjai (SQL alapok)
Tábla létrehozása SQL adatbázisban: CREATE TABLE utasítás példákkal
Tábla módosítása SQL adatbázisban: ALTER TABLE utasítás példákkal (ADD, DROP COLUMN, ALTER/MODIFY COLUMN)
Az SQL WHERE utasítás és az operátorok bemutatása példákkal (NOT, AND, OR, BETWEEN, LIKE, IN, EXISTS, ANY, ALL)
#adatbázis #MySQL #MySQL adatbázis-kezelés #MySQL alapok #MySQL ismeretek #MySQL leckék magyarul #sql #sql alapok #sql alapok kezdőknek #sql ismeretek #SQL leckék magyar nyelv #SQL magyarul #sql megszorítások #sql programozás #webfejlesztés #webprogramozás alapjai #webprogramozás alapok
Mi az az adatbázis-kezelés és SQL? – Adatbázis, relációs adatbázis, SQL fogalmak és példák
SQL szerver telepítése XAMPP segítségével: MySQL, phpMyAdmin és Apache
SQL nyelvi elemek csoportosítása: adatdefiníciós, adatlekérdező, adatmanipulációs, adatelérést vezérlő nyelv (DDL, DQL, DML, DCL utasítások)
Megszorítások, megkötések, kényszerfeltételek SQL adatbázis-kezelő rendszerben (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT)
Adatbázis létrehozása SQL-ben: CREATE DATABASE utasítás példákkal
Adatbázis törlése SQL-ben: DROP DATABASE utasítás példákkal
Tábla létrehozása SQL adatbázisban: CREATE TABLE utasítás példákkal
Tábla módosítása SQL adatbázisban: ALTER TABLE utasítás példákkal (ADD, DROP COLUMN, ALTER/MODIFY COLUMN)
Tábla törlése SQL adatbázisban: DROP TABLE és TRUNCATE TABLE utasítások példákkal
Rekord hozzáadása SQL adatbázis táblájához: INSERT INTO utasítás példákkal
Rekord törlése SQL adatbázis táblájából: DELETE utasítás példákkal
Rekord módosítása, frissítése SQL adatbázis táblájában: UPDATE utasítás példákkal
SQL SELECT és FROM záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Az SQL WHERE utasítás és az operátorok bemutatása példákkal (NOT, AND, OR, BETWEEN, LIKE, IN, EXISTS, ANY, ALL)
Az SQL ORDER BY záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Az SQL GROUP BY záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Elsődleges és idegen kulcs használata SQL-ben -PRIMARY KEY, FOREIGN KEY megszorítások bemutatása példákkal
SQL táblák összekapcsolása: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN (Adatbázis-lekérdezések utasításai példákkal)
Az adatbázis-kezelés alapjai (SQL alapok)
Az SQL HAVING záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Az SQL SELECT DISTINCT záradék használata (Adatbázis-lekérdezések utasításai példákkal)
SQL AUTO INCREMENT utasítás (Adatbázismező értékének automatikus növelése)
SQL álnév (alias) használata adatbázis-lekérdezés során
SQL aggregáló, összesítő függvények: MIN, MAX, COUNT, AVG, SUM
SQL LIMIT, SELECT TOP, FETCH FIRST, ROWNUM utasítások bemutatása példákkal
Index létrehozása SQL adatbázis-kezelőben (SQL CREATE és DROP INDEX utasítás)
Dátumok kezelése MySQL adatbázis-kezelőben (MySQL dátum és idő adattípusok)