Filehost.ro - gazduire fisiere
Master IT
Bine ati venit.Pe acest forum veti gasii tot ce va intereseaza din domeniul IT.Jocuri,filme,muzica,hackuri,tutoriale,tutoriale c++,tutoriale html,tutoriale java script,tutoriale mysql si multe altele.Va asteptam cu mare drag.WWW.MASTERIT.3XFORUM.RO WWW.MASTERIT.3XFORUM.RO WWW.MASTERIT.3XFORUM.RO
Nou pe simpatie:
bruneta_mara
Femeie
24 ani
Ialomita
cauta Barbat
27 - 64 ani
Master ITReguliInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
Master IT / Tutoriale MYSQL /

Cum sa creezi o tabela dintr-un set de rezultate

Pagini: 1  
#1
spyroot
Administrator
Din: Brasov
Postari: 76
Iti voi arata in acest tutorial ce sa faci atunci cand rulezi o interogare care iti returneaza un set de rezultate si vrei ca acest set de rezultate sa se salveze intr-o alta tabela care insa nu exista.

Poti fie crea mai intai tabela si apoi s-o populezi cu rezultatele din interogarea ta sau o poti crea in acelasi timp cu interogarea care iti returneaza setul de rezultate.

Daca tabela nu exista o poti crea cu o instructiune CREATE TABLE si apoi sa folosesti o instructiune INSERT ... SELECT pentru a copia setul de rezultate in ea.

A doua posibilitate este sa utilizezi o instructiune CREATE TABLE ... SELECT care va crea tabela de destinatie direct din setul de rezultate returnat de catre instructiunea SELECT.

De exemplu pentru a crea tabela tbl_destinatie si de a copia in ea continutul tabelei tbl_sursa faci in felul urmator:

Code:

CREATE TABLE tbl_destinatie SELECT * FROM tbl_sursa;

MySQL creeaza tabela cu coloanele exacte din tabela sursa, cu acelasi tip si numar si nume. Daca adaugi o clauza WHERE poti copia doar anumite inregistrari si daca vrei ca tabela sa fie goala, foloseste clauza WHERE care este intotdeauna false.

Code:

CREATE TABLE tbl_destinatie SELECT * FROM tbl_sursa WHERE 0;

Daca vrei sa copiezi doar anumite coloane, numeste-le in instructiunea SELECT. De exemplu, daca tabela sursa contine campurile a, b, c, d si e si vrei sa copiezi doar campurile c si e, faci in felul urmator:

Code:

CREATE TABLE tbl_destinatie SELECT c, e FROM tbl_sursa

Pentru a crea tabela cu o alta ordine a campurilor si pornind de la structura urmatoare a tabelei sursa: a, b, c, d, e, faci in felul urmator:

Code:

CREATE TABLE tbl_destinatie SELECT c, e, d, a, b FROM tbl_sursa;

Daca vrei sa adaugi o coloana noua pe langa cele returnate de setul de rezultate, adaugi coloana/coloanele noi in instuctiunea CREATE TABLE, astfel:

Code:

CREATE TABLE tbl_destinatie
 (
     id INT NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (id)
 )
 SELECT a, b, c FROM tbl_sursa;

Tabela noua va contine campurile id, a, b, c in aceasta ordine. Id va avea o valoare prestabilita si restul valorile din tabela sursa.

Daca vei folosi in instructiunea SELECT o expresie, este bine sa folosesti un alias pentru ea pentru a nu se crea confuzii in denumire. Iata un exemplu:

Code:

CREATE TABLE tbl_destinatie
 SELECT numar, SUM(pret * cantitate) AS cost
 FROM tbl_sursa
 GROUP BY numar;

De fapt, din versiunea 4.0 aliasul este obligatoriu nu doar optional.


_______________________________________
Cand esti baiat bun lumea tot de prost te ia.

 
   
Pagini: 1  
Mergi la