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: 16877 16877 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

Tabelul pet tine evidenta animalelor de companie pe care le ai. Daca vrei sa inregistrezi si alte informatii despre ele, cum ar fi, evenimente importante ca mersul la veterinar sau nasterea puilor, ai nevoie de un nou tabel. El va trebui sa contina:

  • Numele animalului pentru a sti care eveniment revine fiecarui animal
  • O data pentru a sti cand a avut loc evenimentul
  • O rubrica in care sa se descrie evenimentul
  • O rubrica cu tipul evenimentului, daca vrei sa imparti evenimentele in categorii

Luand in considerare cele de mai sus, functia CREATE TABLE pentru tabelul event va arata astfel:

mysql> CREATE TABLE event (name VARCHAR(20), date DATE,
    type VARCHAR(15), remark VARCHAR(255));

Pentru tabelul pet e mai usor sa inregistrezi datele initiale prin crearea unui fisier cu text delimitat care sa contina urmatoarele informatii:

 
nume           data            tipul                    remarca
Fluffy        1995-05-15        pui                         4 pui de pisica, 3 femele, 1 mascul
Buffy        1993-06-23        pui                         5 pui de catel, 2 femele, 3 masculi
Buffy        1994-06-19        pui                        3 pui de catel, 3 femele
Chirpy        1999-03-21        veterinar               pintenii trebuiau indreptati
Slim        1997-08-03        veterinar               coasta rupta
Bowser         1991-10-12        cotet 
Fang        1991-10-12        cotet     
Fang        1998-08-28        zi de nastere           i-am dat o noua jucarie de rontait
Claws        1998-03-17        zi de nastere           i-am dat o noua zgarda anti-purici
Whistler     1998-12-09        ziua de nastere         prima zi de nastere

Inregistreaza datele astfel:

mysql> LOAD DATA LOCAL INFILE 'event.txt' INTO TABLE event;

In functie de lucrurile pe care le-ai invatat in timpul crearii tabelului pet, ar trebui sa stii sa recuperezi datele din tabelul event; principiile sunt aceleasi. Dar cand nu va mai putea raspunde tabelul event intrebarilor pe care e posibil sa le ai?

Sa presupunem ca vrei sa afli varsta la care fiecare animal a avut pui; poti calcula varsta folosind 2 date. Data puiului mamei se gaseste in tabelul event, dar pentru a-i calcula varsta la acea data, ai nevoie de ziua ei de nastere, care e inregistrata in tabelul pet.
Asta inseamna ca cererea ta implica ambele tabele:

mysql> SELECT pet.name,
  -> (YEAR(date)-YEAR(birth)) - (RIGHT(date,5)<RIGHT(birth,5)) AS age,
    -> remark
  -> FROM pet INNER JOIN event
  ->   ON pet.name = event.name
  -> WHERE event.type = 'litter';
  +--------+------+-----------------------------+
  | name   | age  | remark                      |
  +--------+------+-----------------------------+
  | Fluffy |    2 | 4 kittens, 3 female, 1 male |
  | Buffy  |    4 | 5 puppies, 2 female, 3 male |
  | Buffy  |    5 | 3 puppies, 3 female         |
  +--------+------+-----------------------------+

Exista anumite lucruri care trebuiesc luate in evidenta in legatura cu aceasta cerere:

  • Clauza FROM uneste 2 tabele deoarece cererea ta trebuie sa extraga informatii din ambele.
  • Cand se combina informatii din tabele multiple, trebuie sa specifici modul in care inregistrarile dintr-un tabel pot fi egalate cu cele din celalalt tabel. Acest lucru va fi usor pentru ca ambele au o coloana de tip nume. Cererea foloseste o clauza ON pentru a potrivi datele din ambele tabele pe baza valorilor name.
    Cererea foloseste un INNER JOIN pentru a combina tabelele. O functie INNER JOIN permite randurilor din fiecare tabel sa apara in rezultat, daca si numai daca, ambele tabele indeplinesc conditiile specificate in clauza ON. In acest exemplu, clauza ON specifica urmatorul lucru- coloana name din tabelul pet trebuie sa corespunda cu coloana name din tabelul event. Daca un nume apare doar intr-un tabel, randul nu va aparea in rezultat, deoarece conditia din clauza ON nu a fost indeplinita.
  • Intrucat coloana name apare in ambele tabele, trebuie sa fii clar in legatura cu tabelul la care te referi cand vorbesti de coloana. Acest lucru se face prin adaugarea la numele coloanei numele tabelului.

Nu e nevoie sa ai 2 tabele diferite pentru a efectua o unire. Uneori, e util sa unesti un tabel cu el insusi, daca vrei sa compari date ditr-un tabel cu alte date din acelasi tabel. De exemplu, pentru a gasi cupluri pentru imperecheat printre animalele tale, poti uni tabelul pet cu el insusi pentru a produce perechi candidate femela-mascul din speciile respective.

mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
    -> FROM pet AS p1 INNER JOIN pet AS p2
    ->   ON p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm';
+--------+------+--------+------+---------+
| nume   | sex  | nume  | sex  | specie |
+--------+------+--------+------+---------+
| Fluffy | f    | ghiare  | m    | pisica   |
| Buffy  | f    |colt   | m    | caine     |
| Buffy  | f    | Bowser | m    | caine     |
+--------+------+--------+------+---------+

In aceasta cerere, se specifica aliasuri pentru numele tabelului pentru a se referi la coloane si a mentine corect cu ce instanta din tabel fiecare referinta a coloanei este asociata.

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
4170
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4075
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4055
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
3870
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Powerpoint Javascript Dreamweaver Action Script AJAX Word Gimp Fireworks Lightroom Bridge Flash Python Outlook HTML Vista StyleSheet SEO JSON Fotografie XHTML Verilog COREL DRAW Excel Photoshop RoR SWF Swift 3D Illustrator CSS Sony Vegas XML Ruby on Rails PSD PHP MySQL Java
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