8371 afișări Candale Silviu (silviu) 16.01.2019 www.pbinfo.ro
Etichete: nicio etichetă

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 creat
  • nume_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. Clauzele NOT 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)

8371 afișări Candale Silviu (silviu) 16.01.2019 www.pbinfo.ro