login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > MySQL


Gegevens:
Geschreven door:
Maarten
Moeilijkheidsgraad:
Gemakkelijk
Hits:
10783
Punten:
Aantal punten:
 (3.71)
Aantal stemmen:
7
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (16)
 


Tutorial:

Gereserveerde woorden

Een veel voorkomend probleem bij MySQL-queries is dat een bepaald woord gereserveerd is. Dit houdt in dat het woord in kwestie reeds een bepaalde betekenis heeft voor MySQL.

Indien een dergelijk woord gereserveerd is, dien je het tussen "backticks" te plaatsen (`).
De enige uitzondering hierop is een woord dat volgt op een punt, omdat het dan geen gereserveerd woord in zijn geheel kan zijn. Een voorbeeld hiervan is mijnveld.select. Dit kan perfect gebruikt worden zonder backticks, omdat in gereserveerde woorden geen punt kan voorkomen, waaruit de slimme computer de conclusie trekt dat het om een tabelnaam of kolomnaam gaat.

Het is toegestaan om namen van functies te gebruiken om tabellen of kolommen aan te duiden. Een voorbeeld hiervan is SUM, dit kan perfect als tabelnaam gebruikt worden, indien je een spatie tussen de veldnaam en het volgende haakje plaatst.
Bij een functie wordt altijd de constructie FUNCTIE(blaat) gebruikt, waarbij de haakjes tegen de functie geplaatst worden.
De volgende query kan dus perfect:
INSERT INTO SUM (sommetje,oplossing) VALUES ('1+1',2)
Indien je hier geen spatie zou plaatsen, krijg je SUM(sommetje,oplossing), wat totaal onlogisch is in een INSERT-query.

Indien de SQL modus IGNORE_SPACE is ingeschakeld, kan een functie aangeroepen worden met een spatie tussen de functie en het volgende haakje. Hiervoor worden functienamen behandeld als gereserveerde woorden. In dit geval moeten tabelnamen of kolomnamen dus wel tussen backticks geplaatst worden om aan te duiden dat het over een tabel of kolom gaat.


Gereserveerde woorden: een overzicht
Hieronder volgt een overzicht van alle gereserveerde woorden in MySQL 5.0. Het is aangeraden om deze woorden simpelweg niet te gaan gebruiken als kolomnaam, maar een passend alternatief te gaan gebruiken (ipv. TIME zou je bijvoorbeeld POSTING_TIME of iets dergelijks kunnen gebruiken).

ADD ALL ALTER ANALYZE AND
AS ASC ASENSITIVE BEFORE BETWEEN
BETWEEN BIGINT BIGINT BINARY BINARY
BLOB BOTH BY CALL CASCADE
CASE CHANGE CHAR CHARACTER CHECK
COLLATE COLUMN CONDITION CONNECTION CONSTRAINT
CONTINUE CONVERT CREATE CROSS CURRENT_DATE
CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE
DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND
DEC DECIMAL DECLARE DEFAULT DELAYED
DELETE DESC DESCRIBE DETERMINISTIC DISTINCT
DISTINCTROW DIV DOUBLE DROP DUAL
EACH ELSE ELSEIF ENCLOSED ESCAPED
EXISTS EXIT EXPLAIN FALSE FETCH
FLOAT FLOAT4 FLOAT8 FOR FORCE
FOREIGN FROM FULLTEXT GRANT GROUP
HAVING HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND
IF IGNORE IN INDEX INFILE
INNER INOUT INSENSITIVE INSERT INT
INT4 INT8 INTEGER INTERVAL INTO
IS ITERATE JOIN KEY KEYS
KILL LEADING LEAVE LEFT LIKE
LIMIT LINES LOAD LOCALTIME LOCALTIMESTAMP
LOCK LONG LONGBLOB LONGTEXT LOOP
LOW_PRIORITY MATCH MEDIUMBLOB MEDIUMINT MEDIUMTEXT
MIDDLEINT MINUTE_MICROSECOND MINUTE_SECOND MOD MODIFIES
NATURAL NOT NO_WRITE_TO_BINLOG NULL NUMERIC
ON OPTIMIZE OPTION OPTIONALLY OR
ORDER OUT OUTER OUTFILE PRECISION
PREFERENCES PRIMARY PROCEDURE PURGE RAIDO
READ READS REAL REGEXP RELEASE
RENAME REPEAT REPLACE REQUIRE RESTRICT
RETURN REVOKE RIGHT RLIKE SCHEMA
SCHEMAS SECOND_MICROSECOND SELECT SENSITIVE SEPARATOR
SET SHOW SMALLINT SONAME SPATIAL
SPECIFIC SQL SQLEXCEPTION SQLSTATE SQLWARNING
SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT SSL STARTING
STRAIGHT_JOIN TABLE TERMINATED THEN TINYBLOB
TINYINT TINYTEXT TO TRAILING TRIGGER
TRUE UNDO UNION UNIQUE UNLOCK
UNSIGNED UPDATE UPGRADE USAGE USE
USING UTC_DATE UTC_TIME UTC_TIMESTAMP VALUES
VARBINARY VARCHAR VARCHARACTER VARYING WHEN
WHERE WHILE WITH WRITE X509
XOR YEAR_MONTH ZEROFILL

Sinds MySQL 5 zijn de volgende woorden gereserveerd:
ASENSITIVE CALL CONDITION CONNECTION CONTINUE
CURSOR DECLARE DETERMINISTIC EACH ELSEIF
EXIT FETCH GOTO INOUT INSENSITIVE
ITERATE LABEL LEAVE LOOP MODIFIES
OUT READS RELEASE REPEAT RETURN
SCHEMA SCHEMAS SENSITIVE SPECIFIC SQL
SQLEXCEPTION SQLSTATE SQLWARNING TRIGGER UNDO
UPGRADE WHILE



« Vorige tutorial : Fulltext Search Volgende tutorial : Complexe tabellen (koppelingen) »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.017s