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_tabelreprezintă numele tabelului care va fi creatnume_dbreprezintă 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ă
TEMPORARYduce 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 EXISTnu va produce o eroare, în cazul în care există deja un tabel cu același nume. definiție_crearereprezintă 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_coloanareprezintă numele dorit pentru coloană.tip_coloanareprezintă 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,DEFAULTetc 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)