Bazele de date MySQl sunt formate din unul sau mai multe tabele. Fiecare tabel reprezintă o colecție de înregistrări, structurate pe una sau mai multe coloane. Orice bază de date proaspăt creată este vidă – nu conține nici un tabel.
Afișarea tabelelor care fac parte din baza de date selectată se face prin intermediul comenzii SHOW TABLES;
.
Crearea tabelor
Tabele se crează prin intermediul comenzii CREATE TABLE
. Sintaxa comenzii este complexă, și va fi parțial descrisă în continuare.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [nume_bd.]nume_tabel [(definiție_creare1, definiție_creare2,...)]
unde:
nume_tabel
reprezintă numele tabelului care va fi creatnume_db
reprezintă numele bazei de date din care va face parte noul tabel. Dacă nu este precizat, tabelul va face parte din baza de date curent selectată.- clauza opțională
TEMPORARY
duce la crearea unui tabel temporar, care va exista până la terminarea sesiunii de lucru sau până la ștergerea sa explicită. - prezența clauzei opționale
IF NOT EXIST
nu va produce o eroare, în cazul în care există deja un tabel cu același nume. definiție_creare
reprezintă definiția unei coloane a tabelului, și trebuie să apară pentru fiecare coloană. Sintaxa ei (parțială) este următoarea:nume_coloana tip_coloana [NOT NULL | NULL] [DEFAULT valoare_implicită] [AUTO_INCREMENT] [[PRIMARY] KEY]
nume_coloana
reprezintă numele dorit pentru coloană.tip_coloana
reprezintă tipul de coloană MySQL al coloanei curente – se va preciza atât numărul de cifre și numărul de zecimale, dacă este cazul. ClauzeleNOT NULL
,DEFAULT
etc au semnificațiile descrise în acest articol.
Pentru sintaxa completă a comenzii CREATE TABLE
, consultați documentația MySQL.
IMPORTANT: Pentru a folosi spații în nume de coloane, tabele sau baze de date, sau pentru a folosi pentru numele acestora cuvinte rezervate MySQL, acestea vor fi delimitate prin caractere apostrof întors (`
) – tasta de sub ESCAPE.
Următorul exemplu creează tabelul elevi
, structura tabelului este evidentă din comandă.
mysql> use tempdb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> create table elevi( -> id int not null auto_increment primary key, -> nume varchar(50) not null, -> prenume varchar(50) not null, -> nota_romana float not null, -> nota_matematica float not null, -> media float not null -> ); Query OK, 0 rows affected (0.00 sec)
Afișarea tabelelor dintr-o bază de date
Pentru a afișa tabele componente ale unei baze de date se folosește comanda SHOW TABLES
mysql> show tables; +------------------+ | Tables_in_tempdb | +------------------+ | elevi | | test_time | +------------------+ 2 rows in set (0.00 sec)
Afișarea structuri unui tabel
Se face prin intermediul comenzii DESCRIBE
, ca în exemplul următor:
mysql> describe elevi; +-----------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | nume | varchar(50) | NO | | NULL | | | prenume | varchar(50) | NO | | NULL | | | nota_romana | float | NO | | NULL | | | nota_matematica | float | NO | | NULL | | | media | float | NO | | NULL | | +-----------------+-------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec)
Ștergerea unui tabel
Se face prin intermediul comenzii DROP TABLE
mysql> drop table elevi; Query OK, 0 rows affected (0.00 sec) mysql> show tables; +------------------+ | Tables_in_tempdb | +------------------+ | test_time | +------------------+ 1 row in set (0.00 sec)