<?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-10-27T23:17:02Z</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 &amp;#039;&amp;#039;kol1, kol2, ...&amp;#039;&amp;#039; FROM &amp;#039;&amp;#039;tabela&amp;#039;&amp;#039;;&lt;br /&gt;
::to co wcześniej określaliśmy jako &amp;#039;&amp;#039;rzutowanie&amp;#039;&amp;#039;;&lt;br /&gt;
:SELECT &amp;#039;&amp;#039;wyr1, wyr2, ...&amp;#039;&amp;#039; FROM &amp;#039;&amp;#039;tabela&amp;#039;&amp;#039;;&lt;br /&gt;
::wyrażenia mogą być zbudowane ze stałych, operatorów, wywołań funkcji, oraz &amp;#039;&amp;#039;nazw kolumn odpytywanej tabeli&amp;#039;&amp;#039;&lt;br /&gt;
:SELECT &amp;#039;&amp;#039;wyr1, wyr2, ...&amp;#039;&amp;#039; FROM &amp;#039;&amp;#039;tabela&amp;#039;&amp;#039; WHERE &amp;#039;&amp;#039;warunek&amp;#039;&amp;#039;;&lt;br /&gt;
::&amp;#039;&amp;#039;warunek&amp;#039;&amp;#039; wyznacza podzbiór wierszy, dla którego zostaną obliczone wyrażenia tworzące kolumny zbioru wynikowego&lt;br /&gt;
:SELECT &amp;#039;&amp;#039;wyr1, wyr2, ...&amp;#039;&amp;#039; FROM &amp;#039;&amp;#039;tabela&amp;#039;&amp;#039; WHERE &amp;#039;&amp;#039;warunek&amp;#039;&amp;#039;&lt;br /&gt;
:ORDER BY &amp;#039;&amp;#039;klucz_sortowania1, ...&amp;#039;&amp;#039; [ASC|DESC];&lt;br /&gt;
::&amp;#039;&amp;#039;klucz_sortowania&amp;#039;&amp;#039; 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 &amp;#039;&amp;#039;wyr1, wyr2, ...&amp;#039;&amp;#039; FROM &amp;#039;&amp;#039;tabela&amp;#039;&amp;#039; WHERE &amp;#039;&amp;#039;warunek&amp;#039;&amp;#039;&lt;br /&gt;
:ORDER BY &amp;#039;&amp;#039;klucz_sortowania1, ...&amp;#039;&amp;#039; [ASC|DESC]&lt;br /&gt;
:LIMIT [&amp;#039;&amp;#039;offset&amp;#039;&amp;#039;,] &amp;#039;&amp;#039;limit&amp;#039;&amp;#039;;&lt;br /&gt;
::oznacza pominięcie pierwszych &amp;#039;&amp;#039;offset&amp;#039;&amp;#039; wierszy wyniku i zwrócenie maksymalnie &amp;#039;&amp;#039;limit&amp;#039;&amp;#039; kolejnych wierszy. Nb. Oracle tego nie rozumie. Można tę klauzulę napisać też inaczej:&lt;br /&gt;
:LIMIT &amp;#039;&amp;#039;limit&amp;#039;&amp;#039; OFFSET &amp;#039;&amp;#039;offset&amp;#039;&amp;#039;&lt;br /&gt;
::Specjalne wyrażenie &amp;quot;*&amp;quot; zastosowane jako lista kolumn wyniku oznacza &amp;#039;&amp;#039;wszystkie kolumny tabel źródłowej&amp;#039;&amp;#039;:&lt;br /&gt;
:SELECT * FROM &amp;#039;&amp;#039;tabela&amp;#039;&amp;#039; [WHERE &amp;#039;&amp;#039;warunek&amp;#039;&amp;#039;];&lt;br /&gt;
::Można również napisać &amp;#039;&amp;#039;tabela.&amp;#039;&amp;#039;*, co się przydaje zwłaszcza w zapytaniach wielotabelowych (p. dalej). Nota bene do zasad dobrej praktyki należy &amp;#039;&amp;#039;&amp;#039;nie&amp;#039;&amp;#039;&amp;#039;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 &amp;#039;&amp;#039;nie&amp;#039;&amp;#039; 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 &amp;#039;&amp;#039;tabela&amp;#039;&amp;#039; [WHERE &amp;#039;&amp;#039;warunek&amp;#039;&amp;#039;];&lt;br /&gt;
::To jest przykład &amp;#039;&amp;#039;funkcji agregującej&amp;#039;&amp;#039;, o których dokładniej będzie dalej.&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>