ďťż
 
select * - =?ISO-8859-2?Q?kolejno=B6=E6_p=F3l?= ďťż
 
select * - =?ISO-8859-2?Q?kolejno=B6=E6_p=F3l?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

select * - =?ISO-8859-2?Q?kolejno=B6=E6_p=F3l?=



ps - 18-10-2007 00:03
select * - =?ISO-8859-2?Q?kolejno=B6=E6_p=F3l?=
  Witam!
Trywialne może, ale ... pytanko jest następujące:

zakładam sobie tabelę, create table t (int a, int b, costam...);
wybieram dane z tabeli : select * from t;

I teraz - czy jest gdzieś jakiś standard opisujący kolejność zwracanych
pól w wyniku? Bo zwykle dostaję oczywiście w takiej kolejności, w jakiej
powstały przy zakładaniu tabeli, ale nie chcę polegać na tym jako na
'założeniu'.
Reasumując - czy select * from tabela w wyniku zwróci zawsze dane (pola)
w tej kolejności, w jakiej były utworzone, i jeśli tak, to gdzie jest
jakiś opis 'takiego' standardu?

Aha - w tej chwili jest to MS SQL, ale pytam ogólnie. I nie interesują
mnie inne rozwiązania problemu, bo takowe znam.

Z góry dziękuję za odpowiedzi :)





andrew - 18-10-2007 00:03
=?iso-8859-2?Q?Re:_select_*_-_kolejno=B6=E6_p=F3l?=
  Użytkownik "ps" <pebees@gazeta.pl> napisał w wiadomości
news:ff4ctu$hgr$1@inews.gazeta.pl...
> Witam!
> Trywialne może, ale ... pytanko jest następujące:
>
> zakładam sobie tabelę, create table t (int a, int b, costam...);
> wybieram dane z tabeli : select * from t;
>
> I teraz - czy jest gdzieś jakiś standard opisujący kolejność zwracanych
> pól w wyniku? Bo zwykle dostaję oczywiście w takiej kolejności, w jakiej
> powstały przy zakładaniu tabeli, ale nie chcę polegać na tym jako na
> 'założeniu'.
> Reasumując - czy select * from tabela w wyniku zwróci zawsze dane (pola) w
> tej kolejności, w jakiej były utworzone, i jeśli tak, to gdzie jest jakiś
> opis 'takiego' standardu?
>
> Aha - w tej chwili jest to MS SQL, ale pytam ogólnie. I nie interesują
> mnie inne rozwiązania problemu, bo takowe znam.
>
> Z góry dziękuję za odpowiedzi :)

Generalnie robienie selectów * z poziomu kodu programów jest złą praktyką, a
tym bardziej odwoływanie się do zwracanych pół poprzez ich pozycję.
Zawsze wypisuj pola, np: "select id, cena, opis from" to unikniesz głupich
bugów.

BTW: w modelu relacyjnym kolejność pól nie ma znaczenia, dlatego nikt ci nie
zagwarantuje, że "zawsze i na każdej bazie" będzie tak samo.

Andrew




Marcin - 18-10-2007 00:03

  ps wrote:
> Witam!
> Trywialne może, ale ... pytanko jest następujące:
>
> zakładam sobie tabelę, create table t (int a, int b, costam...);
> wybieram dane z tabeli : select * from t;
>
> I teraz - czy jest gdzieś jakiś standard opisujący kolejność zwracanych
> pól w wyniku? Bo zwykle dostaję oczywiście w takiej kolejności, w jakiej
> powstały przy zakładaniu tabeli, ale nie chcę polegać na tym jako na
> 'założeniu'.
> Reasumując - czy select * from tabela w wyniku zwróci zawsze dane (pola)
> w tej kolejności, w jakiej były utworzone, i jeśli tak, to gdzie jest
> jakiś opis 'takiego' standardu?
>
> Aha - w tej chwili jest to MS SQL, ale pytam ogólnie. I nie interesują
> mnie inne rozwiązania problemu, bo takowe znam.
>
> Z góry dziękuję za odpowiedzi :)

Nie wiem, czy standard SQL-92 to opisuje
http://www.contrib.andrew.cmu.edu/~s...ql/sql1992.txt

nawet gdyby, to i tak poleganie na kolejności pól w SELECT *
może się źle skończyć ;)

M.




ps - 18-10-2007 00:03

  andrew pisze:
(..)
>
> Generalnie robienie selectów * z poziomu kodu programów jest złą
> praktyką, a tym bardziej odwoływanie się do zwracanych pół poprzez ich
> pozycję.
> Zawsze wypisuj pola, np: "select id, cena, opis from" to unikniesz
> głupich bugów.

To wiem. Gorzej, gdy muszę wyssać kilkadziesiąt pól... :D

> BTW: w modelu relacyjnym kolejność pól nie ma znaczenia, dlatego nikt ci
> nie zagwarantuje, że "zawsze i na każdej bazie" będzie tak samo.
>

Ok, przyjąłem, dzięki za odpowiedź.





ps - 18-10-2007 00:03

  Marcin pisze:
(..)
> Nie wiem, czy standard SQL-92 to opisuje
> http://www.contrib.andrew.cmu.edu/~s...ql/sql1992.txt

Nie znalazłem tam nic o tym. Może za bardzo 'na szybko' szukałem :)

>
> nawet gdyby, to i tak poleganie na kolejności pól w SELECT *
> może się źle skończyć ;)

Czyli nikt nie opisuje kolejności pól przy takim wywołaniu. Ok,
rozumiem, dzięki za odpowiedź.




Andrzej Dąbrowski - 18-10-2007 00:03

  > Użytkownik "ps" <pebees@gazeta.pl> napisał w wiadomości
> news:ff4ctu$hgr$1@inews.gazeta.pl...
> Reasumując - czy select * from tabela w wyniku zwróci zawsze dane (pola) w
> tej kolejności, w jakiej były utworzone, i jeśli tak, to gdzie jest jakiś
> opis 'takiego' standardu?
>
Nie powienieneś używać * bo jeśli kiedyś ktoś zmodyfikuje tabelę, doda pole
to kolejność może się rozjechać. Mozna co prawda po * wołać pola po nazwie,
ale najsensowniej jest jawnie użyć ich nazw w zapytaniu. Nie ma żadnej
gwarancji kolejności zwróconych pól dla * - wyszstko zależy od wizji
programisty, tak jak nie ma pewności do do kolejnosci zwracanych rekordów
jeśli nie ma klauzuli ORDER BY.
Andrzej Dąbrowski




Pietrina - 19-10-2007 00:00
=?iso-8859-2?B?UmU6IHNlbGVjdCAqIC0ga29sZWpub7bmIHDzbA==?=
  On 17 Paź, 13:36, "Andrzej Dąbrowski" <andr...@sims.pl> wrote:
> > Użytkownik "ps" <peb...@gazeta.pl> napisał w wiadomości
> >news:ff4ctu$hgr$1@inews.gazeta.pl...
> > Reasumując - czy select * from tabela w wyniku zwróci zawsze dane (pola) w
> > tej kolejności, w jakiej były utworzone, i jeśli tak, to gdzie jest jakiś
> > opis 'takiego' standardu?
>
> Nie powienieneś używać * bo jeśli kiedyś ktoś zmodyfikuje tabelę, doda pole
> to kolejność może się rozjechać. Mozna co prawda po * wołaćpola po nazwie,
> ale najsensowniej jest jawnie użyć ich nazw w zapytaniu. Nie ma żadnej
> gwarancji kolejności zwróconych pól dla * - wyszstko zależy od wizji
> programisty, tak jak nie ma pewności do do kolejnosci zwracanych rekordów
> jeśli nie ma klauzuli ORDER BY.
> Andrzej Dąbrowski

Jest jednak wytłumaczone w kilku przypadkach używanie: select * from t
Pierwszym przypadkiem może być stworzenie narzędzia umożliwiającego
przeglądanie bazy danych. Tutaj pewnie dobrze by się sprawdziło, jeśli
dane byłyby pokazywane w takiej samej kolejności.

Po drugie, można utworzyć beana z tabelą, który jako parametry
przyjmuje, zapytanie sql, oraz nazwy tabel które ma wybrać do
wyświetlenia.

Z takimi przynajmniej przypadkami zetknąłem się.

Pozdrawiam,
Pietrina
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 =?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?= =?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?= [MS SQL 2005] =?windows-1250?Q?Ilo=9C=E6_wiersz=F3w_w_zbiorze_wynikowym?= =?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com