[ Pobierz całość w formacie PDF ]
.Zwróæmy uwagê na opcjonalne atrybuty, czyli nazwy kolumn.Je¿eli chcemy wpisaædane do wszystkich kolumn w tabeli, to po prostu pomijamy nazwy kolumn, podaj¹ctylko ich wartoœci.Odradzamy jednak stosowanie takiej skróconej postaci wkodzie produkcyjnym, w którym nale¿y podawaæ jawnie nazwy kolumn.Jest tobezpieczniejsze, poniewa¿ pozwala unikn¹æ pomy³ek przy zmianie kolejnoœcikolumn w tabeli albo wstawiania wartoœci do kolumn typu SERIAL.Je¿eli dane niezostan¹ podane, to przy wprowadzaniu w tabeli zostan¹ umieszczone wartoœciNULL.Podany ni¿ej zapis sesji ilustruje proces wprowadzania danych.U¿yto tutajkrótkich nazw, aby zaoszczêdziæ miejsce na stronie.W rzeczywistym kodzie mo¿nai nale¿y stosowaæ nazwy znacz¹ce.Dbname=# CREATE TABLE tb (Dbname(# b bool,Dbname(# cn char(5),Dbname(# d date,Dbname(# f float,Dbname(# i integer,Dbname(# n numeric(5, 3),Dbname(# t time,Dbname(# v varchar(32),Dbname(# v0 varcharDbname(# );CREATEDbname=# \d tb;Table = "tb"+---------------------------+----------------------------------+----------+| Attribute | Type | Modifier |+---------------------------+----------------------------------+----------+| b | boolean | || cn | char(5) | || d | date | || f | float | || i | integer | || n | numeric(5,3) | || t | time | || v | varchar(32) | || v0 | varchar() | |+---------------------------+----------------------------------+----------+DBname=# INSERT INTO tb (b, cn, d, f, I, n, t, v, v0) VALUES ('y', 'CH', 'June12000', '12.3', '45', '3.45', '15:32', 'It\'s', 'Hello world, how are youtoday?');INSERT 20412 1Dbname=# SELECT * FROM tb;b|cn | d| f| i| n|t |v |v0-+-----+----------+----+--+-----+--------+-----+-------------------------------y|CH |2000-06-01|12.3|45|3.450|15:32:00|It's |Hello world, how are you today?(1 row)Jak mo¿na zauwa¿yæ, nie ma zbyt wiele wyjaœnieñ do polecenia INSERT.Trzebapamiêtaæ o poprzedzeniu apostrofu wstawianego do tabeli znakiem „\” istosowaniu raczej pe³nego literowego opisu daty zamiast numerów miesiêcy i dni,które ró¿nie mog¹ byæ interpretowane przez u¿ytkowników.U¿yliœmy wiêc nazwymiesi¹ca „June”, zaœ PostgreSQL przechowuje i wyœwietla tê nazwê jako numer 6.Pobieranie danych z pojedynczej tabeliPoniewa¿ mamy ju¿ dane w tabelach, to mo¿emy próbowaæ pobraæ je stamt¹d.Jestto g³Ã³wne zadanie SQL koncentruj¹ce siê wokó³ polecenia SELECT.Dla naszychcelów wykorzystamy jedynie niewielk¹ czêœæ sk³adni polecenia SELECT.U¿ytkownicy zainteresowani szerszym opisem powinni w tym momencie skorzystaæ zmateria³Ã³w Ÿród³owych.Podstawowa sk³adnia polecenia SELECT jest nastêpuj¹ca:SELECT [DISTINCT] expr1,.,exprNFROM table_listWHERE qualifier[ORDER BY attr1 [ASC|DESC],.,attrN];Ta wyj¹tkowo prosta sk³adnia umo¿liwia osi¹gniêcie prawie wszystkiego, czego¿¹damy podczas pobierania danych.Pola expr pozwalaj¹ na wybór ¿¹danych kolumn,u¿ycie w tym miejscu znaku „*” oznacza pobranie wszystkich kolumn.Wyra¿eniequalifier umo¿liwia pobranie podzbioru wierszy, zaœ s³owo kluczowe ORDERpozwala uporz¹dkowaæ pobrane dane.Mówi¹c mniej formalnie, wyra¿enie exprumo¿liwia zaprojektowanie podzbioru kolumn, a deklaracja WHERE s³u¿y dodefiniowania podzbioru wierszy.Jest to sk³adnia bardzo prosta i poka¿emy terazkilka przyk³adów pobierania danych z pojedynczej tabeli.Najpierw wprowadzimydo tej tabeli trochê danych, tak aby uzyska³a ona nastêpuj¹c¹ postaæ:Dbname=# SELECT * FROM children;childno|fname |age-------+------+---1|Andrew| 102|Jenny | 143|Alex | 114|Adrian| 55|Allen | 4(5 rows)Najpierw wybierzmy numer dziecka i jego wiek:Dbname=# SELECT childno, age FROM children;childno|age-------+---1|102|143|114| 55| 4(5 rows)Mo¿emy tak¿e wprowadziæ porz¹dkowanie danych wed³ug wieku:Dbname=# SELECT childno, age FROM children ORDER BY age;childno|age-------+---5| 44| 51| 103| 112| 14(5 rows)Utwórzmy teraz podzbiór uporz¹dkowany alfabetycznie w porz¹dku malej¹cym:Dbname=# SELECT fname, age FROM children WHERE age
[ Pobierz całość w formacie PDF ]