Ce face CREATE TABLE
CREATE TABLE definește un tabel: numele fiecărei coloane, tipul de date și regulile ei. Tipuri uzuale: INT (număr întreg), DECIMAL(10,2) (bani), VARCHAR(n) (text scurt), TEXT (text lung), DATE, DATETIME.
Reguli frecvente: NOT NULL (valoarea este obligatorie), DEFAULT (valoarea implicită), UNIQUE (fără valori repetate), PRIMARY KEY (identificatorul unic al rândului) și AUTO_INCREMENT (număr crescut automat).
Cu IF NOT EXISTS, comanda nu dă eroare dacă tabelul există deja.
Exemple
Exemplul 1: Un tabel de articole
CREATE TABLE IF NOT EXISTS articole (
id INT AUTO_INCREMENT PRIMARY KEY,
titlu VARCHAR(200) NOT NULL,
slug VARCHAR(200) NOT NULL UNIQUE,
vizualizari INT NOT NULL DEFAULT 0,
publicat DATE
);
INSERT INTO articole (titlu, slug, publicat)
VALUES ('Ghid MySQL', 'ghid-mysql', '2026-10-19');
SELECT * FROM articole;
Rezultat
+----+------------+------------+-------------+------------+
| id | titlu | slug | vizualizari | publicat |
+----+------------+------------+-------------+------------+
| 1 | Ghid MySQL | ghid-mysql | 0 | 2026-10-19 |
+----+------------+------------+-------------+------------+
Exemplul 2: Opțiunile specifice MySQL
ENGINE=InnoDB alege motorul de stocare (implicit în MySQL modern), iar CHARSET setul de caractere al tabelului.
CREATE TABLE produse (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nume VARCHAR(100) NOT NULL,
pret DECIMAL(10,2) NOT NULL,
creat DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DESCRIBE produse;
Rezultat în MySQL
+-------+---------------+------+-----+-------------------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+-------------------+-------------------+
| id | int unsigned | NO | PRI | NULL | auto_increment |
| nume | varchar(100) | NO | | NULL | |
| pret | decimal(10,2) | NO | | NULL | |
| creat | datetime | YES | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+-------+---------------+------+-----+-------------------+-------------------+
Greșeli frecvente
- Folosești
FLOATpentru prețuri. Numerele zecimale binare au mici erori de rotunjire. Pentru bani foloseșteDECIMAL(10,2). - Pui virgulă după ultima coloană, înainte de
). Primești eroare de sintaxă. - Folosești ca nume de coloană un cuvânt rezervat (
order,key,desc). Alege alt nume sau pune-l între backtick-uri.
Comenzi înrudite
ALTER TABLE: Modifică structura unui tabel existent: adaugă, șterge, redenumește sau schimbă coloane.CREATE INDEX: Creează un index, care face căutările după o coloană mult mai rapide.FOREIGN KEY: Leagă o coloană de cheia primară din alt tabel și împiedică datele fără pereche.SHOW TABLES / DESCRIBE: Arată tabelele dintr-o bază de date și structura unui tabel.