Instrukcja do poleceń SQL

background image

Laboratorium

Informatyka II: Bazy danych

- 1 -

1. Tworzenie i usuwanie tabeli

CREATE TABLE klient
(
klient_id serial NOT NULL,
imie character varying(16) NOT NULL,
nazwisko character varying(32) NOT NULL,
CONSTRAINT klient_pk PRIMARY KEY (klient_id)
);


CREATE TABLE zamowienie
(
zamowienie_id serial NOT NULL,
klient_id integer NOT NULL,
data date NOT NULL,
kwota numeric(9,2) NOT NULL,
CONSTRAINT zamowienie_pk PRIMARY KEY (zamowienie_id)
);


DROP TABLE klient;

2. Modyfikacja tabeli

CREATE TABLE klient
(
klient_id serial NOT NULL,
imie character varying(16) NOT NULL
);

2.1. Dodanie kolumny

ALTER TABLE klient ADD COLUMN kod char(5);

2.2. Zmiana nazwy kolumny

ALTER TABLE klient RENAME COLUMN kod TO kod_pocztowy;

2.3. Zmiana typu kolumny

ALTER TABLE klient ALTER COLUMN kod_pocztowy TYPE char(6);

background image

Laboratorium

Informatyka II: Bazy danych

- 2 -

2.4. Ustawienie wartości domyślnej kolumny

ALTER TABLE klient ALTER COLUMN kod_pocztowy SET DEFAULT '00000';

2.5. Usunięcie wartości domyślnej dla kolumny

ALTER TABLE klient ALTER COLUMN kod_pocztowy DROP DEFAULT;

2.6. Dodanie klucza głównego tabeli

ALTER TABLE klient ADD CONSTRAINT klient_pk PRIMARY KEY (klient_id);

2.7. Dodanie klucza obcego tabeli

ALTER TABLE zamowienie ADD CONSTRAINT klient_fk FOREIGN KEY (klient_id) REFERENCES
klient(klient_id);

wówczas tabela zamowienie będzie miała definicję

CREATE TABLE zamowienie
(
zamowienie_id serial NOT NULL,
klient_id integer NOT NULL,
data date NOT NULL,
kwota numeric(9,2) NOT NULL,
CONSTRAINT zamowienie_pk PRIMARY KEY (zamowienie_id),
CONSTRAINT klient_fk FOREIGN KEY (klient_id) REFERENCES klient(klient_id)
);



2.8. Usunięcie klucza obcego

ALTER TABLE zamowienie DROP CONSTRAINT klient_fk;

2.9. Usunięcie klucza głównego

ALTER TABLE zamowienie DROP CONSTRAINT zamowienie_pk;

2.10. Usunięcie kolumny

background image

Laboratorium

Informatyka II: Bazy danych

- 3 -

ALTER TABLE zamowienie DROP COLUMN kwota;

3. Wprowadzanie danych do tabel

3.1. Wprowadzanie danych dla pojedynczego rekordu

INSERT INTO klient (klient_id, imie, kod_pocztowy) VALUES (DEFAULT, 'Jan', '21-122');

3.2. Wprowadzanie danych dla kilku rekordów

INSERT INTO klient (klient_id, imie, kod_pocztowy) VALUES
(DEFAULT, 'Piotr', '12345'),
(DEFAULT, 'Ewa', '12345'),
(DEFAULT, 'Jakub', '11111');

3.3. Wprowadzanie danych dla kilku rekordów i wybranych kolumn

INSERT INTO klient (imie, kod_pocztowy) VALUES
('Jan', '21122'),
('Olga', '67098'),
('Maja', '55002');

3.4. Usuwanie wybranych rekordów

DELETE FROM klient WHERE imie='Piotr';

3.5. Usunięcie wszystkich rekordów z tabeli

DELETE FROM klient;


4. Pobieranie danych z tabel

CREATE TABLE osoba
(
osoba_id SERIAL,
imie VARCHAR(20),
nazwisko VARCHAR(35),

background image

Laboratorium

Informatyka II: Bazy danych

- 4 -

rok_urodz SMALLINT,
miejsce_urodz VARCHAR (35),
CONSTRAINT osoba_pk PRIMARY KEY (osoba_id)
);

INSERT INTO osoba (imie, nazwisko, rok_urodz, miejsce_urodz) VALUES
('Adam', 'Kowalski', 1964, 'Bydgoszcz'),
('Adam', 'Nowak', 1972, 'Szczecin'),
('Andrzej', 'Kowalski', 1986, 'Nidzica'),
('Arkadiusz', 'Malinowski', 1986, 'Wrocław'),
('Andrzej', 'Malinowski', 1989, 'Wrocław'),
('Krzysztof', 'Nowicki', 1986, 'Bydgoszcz'),
('Kacper', 'Adamczyk', 1971, 'Wrocław'),
('Kamil', 'Andrzejczak', 1971, 'Szczecin'),
('Krzysztof', 'Kowalski', 1984, 'Cieszyn'),
('Kamil', 'Borowski', 1975, 'Kudowa Zdrój'),
('Piotr', 'Nowicki', 1977, 'Szczecin');

CREATE TABLE towar
(
towar_id serial NOT NULL,
nazwa character varying(35),
cena numeric(9,2),
CONSTRAINT "towar_PK" PRIMARY KEY (towar_id)
);
INSERT INTO towar (towar_id, nazwa, cena) VALUES
(DEFAULT, 'towar 1', 100.99),
(DEFAULT, 'towar 2', 50.00),
(DEFAULT, 'towar 3', 1029.00);

background image

Laboratorium

Informatyka II: Bazy danych

- 5 -


CREATE TABLE zamowienie
(
zamowienie_id serial,
osoba_id integer,
towar_id integer,
data date,
ilosc_szt smallint,
CONSTRAINT zamowienie_PK PRIMARY KEY (zamowienie_id),
CONSTRAINT zamowienie_osoba_FK FOREIGN KEY (osoba_id) REFERENCES osoba(osoba_id),
CONSTRAINT zamowienie_towar_FK FOREIGN KEY (towar_id) REFERENCES towar(towar_id)
);
INSERT INTO zamowienie (zamowienie_id, osoba_id, towar_id, data, ilosc_szt) VALUES
(DEFAULT,1,1, '2009-10-10',1),
(DEFAULT,2,1,'2009-10-10', 2),
(DEFAULT,2,2, '2009-11-10',5),
(DEFAULT,2,2, '2009-11-09',5),
(DEFAULT,2,3, '2009-10-10',2), (DEFAULT,5,3, '2009-01-10',3),
(DEFAULT,5,3, '2009-08-10',1), (DEFAULT, 6,1, '2009-05-10',1), (DEFAULT,3,1, '2009-10-10',1),
(DEFAULT,1,1, '2009-10-10',1);



Składnia polecenia SELECT
SELECT kolumna1, kolumna2, ..., kolumnaN
FROM nazwa_tabeli
[WHERE warunek]
[ORDER BY kolumna1, kolumna2, ..., kolumnaN [ASC|DESC]];

background image

Laboratorium

Informatyka II: Bazy danych

- 6 -

4.1. Wyświetlenie całej zawartości tabeli

SELECT * FROM osoba;

4.2. Wyświetlenie całej zawartości tabeli posortowanej wg wybranych kolumn

SELECT * FROM osoba ORDER BY nazwisko, imie;








4.3. Wyświetlenie określonych kolumn tabeli posortowanej wg wybranych kolumn

SELECT imie,nazwisko FROM osoba ORDER BY nazwisko;

background image

Laboratorium

Informatyka II: Bazy danych

- 7 -

SELECT nazwisko,imie FROM osoba ORDER BY nazwisko;

4.4. Wyświetlenie określonych kolumn tabeli wraz ze zmianą nazw wyświetlanych kolumn

SELECT imie AS "Imię",nazwisko AS "Nazwisko", rok_urodz AS "Rok urodzenia",
miejsce_urodz AS "Miejsce urodzenia" FROM osoba ORDER BY nazwisko;


background image

Laboratorium

Informatyka II: Bazy danych

- 8 -

4.5. Wyświetlenie wybranych rekordów tabeli spełniających warunek równości

SELECT * FROM osoba WHERE nazwisko='Kowalski';

4.6. Wyświetlenie wybranych rekordów tabeli spełniających warunek większości

SELECT * FROM osoba WHERE rok_urodz > 1985;

4.7. Wyświetlenie wybranych rekordów tabeli spełniających dwa warunki

SELECT * FROM osoba WHERE osoba_id >= 3 AND osoba_id <= 6;



4.8. Wyświetlenie wybranych rekordów tabeli spełniających warunek „BETWEEN”

SELECT * FROM osoba WHERE osoba_id BETWEEN 1 AND 6;

4.9. Wyświetlenie wybranych rekordów tabeli spełniających warunek „IN”

SELECT * FROM osoba WHERE osoba_id IN (3,5,7);

background image

Laboratorium

Informatyka II: Bazy danych

- 9 -

4.10. Wyświetlenie wybranych rekordów tabeli spełniających warunek „NOT IN”

SELECT * FROM osoba WHERE osoba_id NOT IN (3,5,7);
Powyższe polecenie jest równoważne:
SELECT * FROM osoba WHERE osoba_id <>3 AND osoba_id<>5 AND osoba_id<>7;

4.11. Wyświetlenie wybranych rekordów tabeli spełniających warunek „LIKE”

SELECT * FROM osoba WHERE imie LIKE 'Ka%';

4.12. Wyświetlenie wybranych rekordów tabeli spełniających kilka warunków

SELECT * FROM osoba WHERE imie LIKE 'A%' AND rok_urodz>1970 AND miejsce_urodz IN
('Wrocław', 'Szczecin');

4.13. Selektywne wyświetlanie rekordów oraz kolumn „SELECT DISTINCT”

SELECT DISTINCT nazwisko FROM osoba ORDER BY nazwisko;

background image

Laboratorium

Informatyka II: Bazy danych

- 10 -

4.14. Selektywne wyświetlenie określonej liczby kolejnych pierwszych rekordów tabeli „LIMIT”

SELECT * FROM osoba ORDER BY rok_urodz DESC LIMIT 3;

4.15. Selektywne wyświetlenie określonej liczby kolejnych pierwszych rekordów tabeli „LIMIT” oraz

„OFFSET”

SELECT * FROM osoba ORDER BY osoba_id LIMIT 3 OFFSET 3;




4.16. Wyświetlanie połączonych danych z 2 tabel

SELECT zamowienie_id, imie, nazwisko, data
FROM osoba, zamowienie
WHERE zamowienie.osoba_id=osoba.osoba_id;

background image

Laboratorium

Informatyka II: Bazy danych

- 11 -

co jest równorzędne z poleceniem

SELECT zamowienie_id, imie, nazwisko, data
FROM zamowienie INNER JOIN osoba
ON zamowienie.osoba_id=osoba.osoba_id;

4.17. Wyświetlanie połączonych danych z 3 tabel

SELECT zamowienie_id AS "nr zamówienia", data, imie, nazwisko, nazwa, cena AS "cena
jednostkowa", ilosc_szt AS "ilość sztuk"
FROM osoba, zamowienie, towar
WHERE zamowienie.osoba_id=osoba.osoba_id AND zamowienie.towar_id=towar.towar_id
ORDER BY data DESC;

5. Widoki

5.1. Tworzenie widoku o nazwie zamowienie_osoba1

CREATE VIEW zamowienie_osoba1
AS SELECT * FROM zamowienie WHERE osoba_id=1;

5.2. Pobieranie danych z widoku zamowienie_osoba1

SELECT * FROM zamowienie_osoba1;

background image

Laboratorium

Informatyka II: Bazy danych

- 12 -

5.3. Usuwanie widoku zamowienie_osoba1

DROP VIEW zamowienie_osoba1;

5.4. Widoki przechowują dynamicznie dane o rekordach w tabeli

5.4.1. Dodaj nowy rekord do tabeli z zamówieniem osoby o id = 1
5.4.2. Pobierz dane z widoku zamowienie_osoba1

6. Agregacja danych

6.1. Obliczenie ilości rekordów w tabeli zamówienieI:


SELECT COUNT (*) FROM zamowienie;

6.1.1. Obliczenie ilości rekordów w tabeli zamówienie i przedstawienie ich z odpowiednim

nagłówkiem:


SELECT COUNT (*) AS "liczba zamówień" FROM zamowienie;

6.2. Obliczenie ilości rekordów tabeli zamówienie spełniających warunek:


SELECT COUNT (*) AS "liczba zamówień powyżej 2" FROM zamowienie
WHERE ilosc_szt>2;

6.3. Obliczenie wartości średniej z kolumny wartość:


SELECT AVG (wartosc) AS "Średnia wartość zamówienia" FROM zamowienie;

background image

Laboratorium

Informatyka II: Bazy danych

- 13 -

6.4. Obliczenie wartości minimalnej kolumny wartość:

SELECT MIN (wartosc) AS "Minimalna wartość zamówienia" FROM zamowienie;

6.5. Obliczenie wartości maksymalnej kolumny wartość:


SELECT MAX (wartosc) AS "Maksymalna wartość zamówienia" FROM zamowienie;

6.6. Obliczenie sumy wartości umieszczonych w kolumnie wartość:

SELECT SUM (wartosc) AS "Sumaryczna wartość zamówień" FROM zamowienie;

6.7. Zestawienie wartości średniej, minimalnej, maksymalnej, oraz sumy wartości zleceń wg kolumny

wartość z tabeli zamowienie (statystyka wszystkich zamówień)

SELECT AVG (wartosc) AS " Średnia wartość zamówienia ",
MIN (wartosc) AS " Minimalna wartość zamówienia ",
MAX (wartosc) AS " Maksymalna wartość zamówienia ",
SUM (wartosc) AS "Sumaryczna wartość zamówień"
FROM zamowienie;





7. Grupowanie danych i agregacja danych

background image

Laboratorium

Informatyka II: Bazy danych

- 14 -

7.1. Zestawienie wartości średnich zamówień wg klientów. Grupowanie wyników zapytania dla tabeli

zamowienie wg kolumny osoba_id

SELECT osoba_id AS "Identyfikator klienta" , AVG (wartosc) AS "Średnia wartość zamówienia"
FROM zamowienie
GROUP BY osoba_id;

7.2. Zestawienie wartości średnich zamówień wg klientów. Połączenie wyników zapytania dla dwóch

tabel zamowienie oraz osoba, w celu wyświetlenia imienia oraz nazwiska klienta w miejscu
identyfikatora . Grupowanie wyników zapytania dla tabel zamowienie
oraz osoba wg kolumny
imie, nazwisko
z tabeli osoba.


SELECT nazwisko, imie, AVG (wartosc) AS " Średnia wartość zamówienia"
FROM zamowienie INNER JOIN osoba
ON zamowienie.osoba_id=osoba.osoba_id
GROUP BY nazwisko, imie
ORDER BY AVG (wartosc) DESC;


7.3. Zestawienie wartości statystyki zamówień (wartości średnie, min., max, suma zamówień) wg

klientów. Połączenie wyników zapytania dla dwóch tabel zamowienie oraz osoba, w celu
wyświetlenia imienia oraz nazwiska klienta w miejscu identyfikatora . Grupowanie wyników
zapytania dla tabel zamowienie
oraz osoba wg kolumn imie, nazwisko z tabeli osoba.

SELECT nazwisko, imie, AVG (wartosc) AS " Średnia wartość zamówienia ",
MIN (wartosc) AS "Minimalna wartość zamówienia",
MAX (wartosc) AS "Maksymalna wartość zamówienia",
SUM (wartosc) AS "Sumaryczna wartość zamówienia"
FROM zamowienie INNER JOIN osoba
ON zamowienie.osoba_id=osoba.osoba_id
GROUP BY nazwisko, imie
ORDER BY AVG (wartosc) DESC;

background image

Laboratorium

Informatyka II: Bazy danych

- 15 -

7.4. Utworzenie widoku zawierającego wyniki zapytania z agregacją oraz grupowaniem danych na

podstawie zapytania z pkt 7.3


CREATE VIEW statystyka_zamowien
AS SELECT nazwisko, imie, AVG (wartosc) AS " Średnia wartość zamówienia ",
MIN (wartosc) AS "Minimalna wartość zamówienia",
MAX (wartosc) AS "Maksymalna wartość zamówienia",
SUM (wartosc) AS "Sumaryczna wartość zamówienia"
FROM zamowienie INNER JOIN osoba
ON zamowienie.osoba_id=osoba.osoba_id
GROUP BY nazwisko, imie
ORDER BY AVG (wartosc) DESC;

Wyświetlenie widoku statystyka_zamowien

SELECT * FROM statystyka_zamowien;

umożliwia prostsze zdefiniowanie polecenia do prezentacji wyników statystycznej analizy zamówień
których dane zostały zapisane w tabeli zamowienie.


Wyszukiwarka

Podobne podstrony:
Systemy operacyjne, so11, Fragment instrukcji do ćwiczenia "Shell polecenia, vi" (shell)
8 Zalacznik do polecenia pisemnego 2, Politechnika Lubelska, Elektrotechnika mgr EE, Semestr 2, Pomi
Instrukcja do zad proj 13 Uklad sterowania schodow ruchom
MSIB Instrukcja do Cw Lab krystalizacja
Instrukcja do MHDD
Instrukcja do cwiczenia 1
Instrukcja do programu WSPR
Instrukcja do ćw 18 Montaż i demontaż magazynu składowania MPS
Instrukcja do VirtualPneumoLab2
Instrukcje do ćwiczeń 2013
Instrukcja do ćw 06 Sterowanie pracą silnika indukcyjnego za pomocą falownika
Ćw.1 Wybrane reakcje chemiczne przebiegające w roztworach wodnych ćwiczenie 1, Chemia ogólna i żywno
instrukcje do
Instrukcja do zad proj 10 Podstawowe funkcje logiczne z z
Biofizyka instrukcja do cw nr 23
Biofizyka instrukcja do cw nr 0 Nieznany (2)
INSTRUKCJA do ćwiczenia pomiar temperatury obrabiarek v3 ver robocza
instrukcja 06, sem 3, Podstawy elektrotechniki i elektroniki, Laboratoria, instrukcje do cwiczen 201

więcej podobnych podstron