E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale MySQL

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

BAZE DE DATE  /  MySQL  /  Bazele MySQL (3)

II. Bazele MySQL - Crearea tabelelor

29.05.2008
II. Bazele MySQL - Crearea tabelelor

Crearea bazei de date, crearea unui tabel, incarcarea datelor in tabel, extragerea datelor din tabel.

Total vizualizari: 17525 17525 afisari   |   Comentarii  1   |   Rating   |   (6 voturi)   |   Timp necesar: 1h 1h   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  MySQL.com  
Autor:  E-learn.ro
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 2 »
comenteaza printeaza

Odata ce stii sa introduci comenzi, esti capabil sa accesezi o baza de date.

Sa presupunem ca ai mai multe animale de casa la domiciliu (sau in menajerie) si ai vrea sa tii o evidenta a diverselor tipuri de informatii despre acestea. Poti face acest lucru creand tabele pentru a-ti pastra datele si pentru a le incarca cu informatia dorita. In plus, poti raspunde la diferite intrebari despre animalele tale extragand date din tabele. Aceasta sectiune iti arata cum sa:

• Creezi o baza de date
• Creezi un tabel
• Incarci date in tabel
• Extragi date din tabel, in diverse moduri
• Folosesti tabele multiple

Baza de date pentru menajerie este una simpla (in mod deliberat), insa nu sunt greu de gasit situatii reale in care un tip similar de baza de date poate fi folosit. De exemplu, o baza de date cum este aceasta poate fi utilizata de catre un fermier in scopul de a tine evidenta inventarului viu, sau de catre un veterinar pentru a tine evidenta fiselor pacientilor. Se poate obtine o distributie a menajeriei cuprinzand cateva dintre interogarile si datele-esantion folosite in sectiunile ce urmeaza, de pe site-ul Web MySQL. Aceasta este disponibila atat in fisier comprimat tar, cat si in format Zip la http://dev.mysql.com/doc/. Foloseste instructiunea SHOW pentru a afla care sunt bazele de date existente in mod curent pe server:

mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
| test     |
| tmp      |
+----------+

Baza de date mysql descrie autentificarea de acces a utilizatorului. Baza de date test este de obicei alocata ca spatiu de lucru destinat utilizatorilor, pentru a face probe. Lista cu baze de date, afisata de catre instructiune, poate arata altfel pe computerul tau; SHOW DATABASES nu returneaza baze de date pentru care nu ai autentificare, daca nu ai autentificarea SHOW DATABASES. In cazul in care baza de date test exista, incearca sa o accesezi:

mysql> USE test
Database changed

Nota bene: USE, ca si QUIT, nu necesita punct si virgula. (Poti incheia astfel de instructiuni cu punct si virgula, daca doresti; nu va dauna demersului in nici un fel.) Instructiunea USE mai este deosebita intr-ul fel: trebuie sa fie introdusa pe un singur rand.

Poti folosi baza de date test (daca ai acces la ea) pentru a aplica urmatoarele exemple, insa orice creezi in aceasta baza de date poate fi inlaturat de oricine altcineva care are de asemenea acces. De aceea, ar trebui probabil sa ii ceri administratorului tau MySQL permisiunea de a folosi propria ta baza de date. Sa presupunem ca vrei sa numesti aceasta baza de date menagerie. Administratorul va trebui sa execute urmatoarea comanda:

mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';

unde your_mysql_name reprezinta numele de utilizator care ti-a fost alocat, iar your_client_host este host-ul de la care te conectezi la server.

Crearea si selectarea unei baze de date

Daca administratorul iti creeaza baza de date in momentul in care iti configureaza autentificarea, poti incepe sa o folosesti. Altfel, este nevoie sa o creezi chiar tu:

mysql> CREATE DATABASE menagerie;

In Unix, numele bazelor de date sunt case sensitive (au capacitatea de a face diferenta intre litere mici si majuscule), spre deosebire de cuvintele-cheie SQL, asa ca trebuie intotdeauna sa apelezi baza de date ca menagerie, si nu ca Menagerie, MENAGERIE, sau vreo alta varianta. Acelasi lucru este valabil si pentru numele tabelelor. (in Windows, aceasta restrictie nu se aplica, desi trebuie sa te referi la baze de date si la tabele folosind acelasi tip de caracter pe parcursul unei anumite interogari. Totusi, din diverse motive, noi consideram si recomandam ca atare folosirea aceluiasi tip de caracter ce a fost utilizat la crearea bazei de date drept cea mai buna practica.)

Nota Bene
Daca ti se returneaza o eroare precum ERROR 1044 (42000): Access denied for user 'monty'@'localhost' to database 'menagerie' atunci cand incerci sa creezi o baza de date, contul tau de utilizator nu dispune de autentificarile necesare pentru a permite acest lucru.

Crearea unei baze de date nu o si selecteaza automat in vederea utilizarii; va trebui ca tu sa faci acest lucru in mod explicit. Pentru a selecta menagerie ca baza de date curenta, foloseste aceasta comanda:

mysql> USE menagerie;
Database changed

Baza ta de date trebuie creata o singura data, insa va trebui sa o selectezi in vederea utilizarii de fiecare data cand incepi o sesiune mysql. Poti face acest lucru emitand o instructiune USE dupa cum se precizeaza in exemplu. Ca alternativa, poti selecta baza de date pe randul de comanda atunci cand invoci mysql. Este nevoie doar sa ii specifici numele dupa orice parametru de conexiune pe care probabil trebuie sa il furnizezi. De exemplu:

shell> mysql -h host -u user -p menagerie
Enter password: ********

Ia aminte ca, in comanda pe care tocmai am prezentat-o, menagerie nu este parola ta. Daca doresti sa furnizezi parola pe linia de comanda dupa optiunea -p , trebuie sa faci acest lucru fara a lasa vreun spatiu liber sa intervina intre ele (de exemplu, ca in, -pmypassword, si nu ca in -p mypassword). Cu toate acestea, nu este recomandat sa iti introduci parola pe acelasi rand cu comanda, pentru ca procedand astfel o vei expune riscului de furt din partea celorlalti utilizatori logati la computerul tau.

Crearea bazei de date este partea usoara, insa la momentul acesta ea este goala, dupa cum iti spune si SHOW TABLES:

mysql> SHOW TABLES;
Empty set (0.00 sec)

Partea mai dificila este sa decizi care este structura corespunzatoare bazei tale de date: de ce tabele ai nevoie si cate coloane trebuie sa cuprinda fiecare.

Doresti un tabel care sa contina o inregistrare pentru fiecare dintre animalele tale. Acesta se poate numi tabelul pet, si ar trebui sa contina, ca un minimum necesar, numele fiecarui animal. Intrucat numele in sine nu este forte util, tabelul trebuie sa mai contina si alte informatii: de exemplu, daca sunt mai multe persoane in familia ta care detin animale, ai putea alege sa specifici care este stapanul fiecarui animal. De asemenea, ai putea dori sa inregistrezi anumite informatii descriptive, cum ar fi specia sau sexul.

Cum ramane cu varsta? Acest aspect poate fi de interes, insa nu este indicat sa fie stocat intr-o baza de date. Varsta se schimba pe masura ce trece timpul, ceea ce inseamna ca ar trebui sa actualizezi des inregistrarile. De aceea este mai bine sa stochezi o valoare fixa, cum ar fi data nasterii. Apoi, oricand vei avea nevoie de varsta, o vei putea calcula ca diferenta intre data curenta si data nasterii. MySQL dispune de functii pentru aritmetica datelor, asa ca nu vei intampina dificultati. Stocarea datei nastere in locul varstei mai are si alte avantaje:

• Poti folosi baza de date pentru sarcini cum ar fi generarea de alerte pentru zilele de nastere care se apropie. (In cazul in care un asemenea tip de interogare ti se pare cam superfluu, gandeste-te ca este aceeasi intrebare pe care ai adresa-o in contextul unei baze de date apartinand unei companii pentru a identifica acei clienti carora trebuie sa le trimiti felicitari aniversare in decursul saptamanii sau lunii curente, in vederea obtinerii unei amprente personale, cu sprijinul computerului.)
• Poti calcula varsta prin raportare si la alte date, diferite de cea curenta. De exemplu, daca stochezi data decesului in baza de date, vei putea calcula cu usurinta cati ani avea un animal cand a murit.

Probabil iti vor veni in minte si alte tipuri de informatii care ar putea fi utile in tabelul pet, insa cele identificate pana acum sunt suficiente: nume, stapan, specie, sex, nastere si deces.

Foloseste o instructiune CREATE TABLE pentru a crea tabelul tau:

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
    -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

VARCHAR este o alegere potrivita pentru coloanele name, owner, si species intrucat valorile din coloane variaza din punct de vedere al lungimii. Lungimile acestor siruri de definire a coloanelor nu trebuie sa fie neaparat aceleasi, si de asemenea nu este absolut necesar sa fie 20. In mod normal poti alege orice lungime de la 1 la 65535, in functie de care vi se pare mai adecvata.

Nota Bene
Inainte de MySQL 5.0.3, limita superioara era 255. Daca faci o alegere neinspirata, iar mai tarziu constati ca aveai nevoie de un camp mai mare, MySQL iti pune la dispozitie instructiunea ALTER TABLE cu ajutorul careia poti modifica structura unui tabel.

Se poate alege din mai multe tipuri de valori pentru a reprezenta sexul in inregistrarile referitoare la animale, cum ar fi 'm' si 'f', sau poate 'male'si 'female', insa cel mai simplu este sa folosesti caracterele 'm' si 'f'. Folosirea tipului de date DATE pentru coloanele birth si death constituie evident o alegere adecvata. Odata ce ai creat un tabel, comanda SHOW TABLES ar trebui sa iti afiseze urmatoarele date:

mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| pet                 |
+---------------------+

Pentru a verifica daca tabelul s-a creat asa cum te asteptai, foloseste o instructiune DESCRIBE:

mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | YES  |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | YES  |     | NULL    |       |
| sex     | char(1)     | YES  |     | NULL    |       |
| birth   | date        | YES  |     | NULL    |       |
| death   | date        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

Poti folosi oricand DESCRIBE ,de exemplu, daca uiti numele coloanelor din tabelul tau, sau ce tipuri le corespund acestora.

Pagina:
1 2 »
comenteaza printeaza
Alte tutoriale MySQL:
Noteaza acest tutorial
Rating tutorial
 
(6 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (1) spune-ti parerea
speeder , Joi, 05 Februarie 2009
#1

foarte bun tutorial...multzumesc ptr urkrea lui

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5060
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5015
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4855
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4835
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
4630
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Sony Vegas Java Gimp MySQL PHP Outlook Javascript Word SWF Illustrator HTML Powerpoint Vista Action Script XHTML Swift 3D Ruby on Rails Flash StyleSheet Lightroom Bridge SEO Dreamweaver AJAX Fotografie Fireworks Verilog Python JSON COREL DRAW Excel RoR XML Photoshop PSD CSS
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software