<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FSelectProste</id>
	<title>/SelectProste - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FSelectProste"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/SelectProste&amp;action=history"/>
	<updated>2026-04-18T15:55:22Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=/SelectProste&amp;diff=2023&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;= TI:WTBD/SelectProste =  Zapytanie (czasami zwane kwerendą) jest instrukcją zwracającą wynik. Wynikiem w SQL jest zawsze zbiór wynikowy — tabela o określone...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/SelectProste&amp;diff=2023&amp;oldid=prev"/>
		<updated>2015-05-23T14:42:50Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;= &lt;a href=&quot;/edu/index.php/TI:WTBD&quot; title=&quot;TI:WTBD&quot;&gt;TI:WTBD&lt;/a&gt;/SelectProste =  Zapytanie (czasami zwane kwerendą) jest instrukcją zwracającą wynik. Wynikiem w SQL jest zawsze zbiór wynikowy — tabela o określone...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= [[TI:WTBD]]/SelectProste =&lt;br /&gt;
&lt;br /&gt;
Zapytanie (czasami zwane kwerendą) jest instrukcją zwracającą wynik. Wynikiem w SQL jest zawsze zbiór wynikowy — tabela o określonej przez postać zapytania liczbie (i dziedzinach) kolumn, natomiast liczba (i zawartość) jej wierszy zależy od aktualnej zawartości tabel źródłowych. Zbiór wynikowy nie całkiem jest relacją w sensie teorii relacyjnej: nie charakteryzuje się kluczem głównym, może mieć powtórzenia wierszy, i nie ma co udawać, że jego wiersze nie są przekazywane w określonym porządku — istnieje zresztą klauzula ORDER BY, pozwalająca narzucić kryterium sortowania.&lt;br /&gt;
&lt;br /&gt;
Zapytanie zaczyna się od słowa SELECT, po nim następuje definicja kolumn wyniku, a dalej — szereg opcjonalnych klauzul (FROM czasami jest traktowana jako obowiązkowa, ale większość systemów dopuszcza domyślny FROM, mimo że jest to rzadko przydatne). Kolejność klauzul jest istotna, nie mogą one być przestawiane.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SELECT -- zapytania proste&lt;br /&gt;
:SELECT 2+1;&lt;br /&gt;
::najprostszy SELECT nie czerpie z żadnej tabeli, tylko dokonuje ewaluacji wyrażenia zbudowanego ze stałych ew. wywołań funkcji. Oczywiście jest to mało przydatne. UWAGA: Oracle (np.) nie dopuszcza tej postaci -- tzn. klauzulę FROM traktuje jako obowiązkową.&lt;br /&gt;
:SELECT ''kol1, kol2, ...'' FROM ''tabela'';&lt;br /&gt;
::to co wcześniej określaliśmy jako ''rzutowanie'';&lt;br /&gt;
:SELECT ''wyr1, wyr2, ...'' FROM ''tabela'';&lt;br /&gt;
::wyrażenia mogą być zbudowane ze stałych, operatorów, wywołań funkcji, oraz ''nazw kolumn odpytywanej tabeli''&lt;br /&gt;
:SELECT ''wyr1, wyr2, ...'' FROM ''tabela'' WHERE ''warunek'';&lt;br /&gt;
::''warunek'' wyznacza podzbiór wierszy, dla którego zostaną obliczone wyrażenia tworzące kolumny zbioru wynikowego&lt;br /&gt;
:SELECT ''wyr1, wyr2, ...'' FROM ''tabela'' WHERE ''warunek''&lt;br /&gt;
:ORDER BY ''klucz_sortowania1, ...'' [ASC|DESC];&lt;br /&gt;
::''klucz_sortowania'' jest wyrażeniem utworzonym tak, jak kolumny zbioru wynikowego, jego wartości decydują o porządku zwracania wierszy wyniku. W wielu systemach możliwe jest też użycie numeru kolumny zbioru wynikowego;&lt;br /&gt;
:SELECT ''wyr1, wyr2, ...'' FROM ''tabela'' WHERE ''warunek''&lt;br /&gt;
:ORDER BY ''klucz_sortowania1, ...'' [ASC|DESC]&lt;br /&gt;
:LIMIT [''offset'',] ''limit'';&lt;br /&gt;
::oznacza pominięcie pierwszych ''offset'' wierszy wyniku i zwrócenie maksymalnie ''limit'' kolejnych wierszy. Nb. Oracle tego nie rozumie. Można tę klauzulę napisać też inaczej:&lt;br /&gt;
:LIMIT ''limit'' OFFSET ''offset''&lt;br /&gt;
::Specjalne wyrażenie &amp;quot;*&amp;quot; zastosowane jako lista kolumn wyniku oznacza ''wszystkie kolumny tabel źródłowej'':&lt;br /&gt;
:SELECT * FROM ''tabela'' [WHERE ''warunek''];&lt;br /&gt;
::Można również napisać ''tabela.''*, co się przydaje zwłaszcza w zapytaniach wielotabelowych (p. dalej). Nota bene do zasad dobrej praktyki należy '''nie'''używanie zapytań postaci SELECT * ... w kodzie produkcyjnym -- ich sens się zmieni, jeżeli zmieni się zestaw kolumn w tabeli źródłowej, co wbrew pozorom nie jest rzadkie w ewolucji aplikacji. Jawne wymienianie wszystkich kolumn potrzebnych w zapytaniu pozwala, by zmiany takie nie unieważniały zapytań korzystających tylko z takiego podzbioru kolumn, który ''nie'' uległ zmianie.&lt;br /&gt;
::Można też zastosować inne wyrażenie specjalne, liczące ile wierszy zawiera wynik:&lt;br /&gt;
:SELECT COUNT(*) FROM ''tabela'' [WHERE ''warunek''];&lt;br /&gt;
::To jest przykład ''funkcji agregującej'', o których dokładniej będzie dalej.&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>