«

»

Gru 05

Wydrukuj to Wpis

Praca kontrolna nr 1 & 2 na temat sql

praca-kontrolna-nr-1-na-temat-sql

W tym poradniku pokazałem jak tworzyć tabele w sql. Tabele można tworzyć i modyfikować przez pisanie kwerend definiujących dane w widoku SQL.

Opis zadania:

1. Zaloguj się do serwera PostgreSQL jako użytkownik postgres w systemie Windows i Linux).

1
psql –U postgres

2. Utwórz nową bazę o nazwie klasa i uaktywnij ją.

1
2
CREATE DATABASE klasa;
\c klasa

3. Utwórz tabelę uczniowie:

Nazwa pola Typ Ograniczenia
numer Liczba całkowita Klucz główny
imie Tekst 20 Obowiązkowe
nazwisko Tekst 50 Obowiązkowe
klasa znak Obowiązkowe
1
2
3
4
5
6
CREATE TABLE uczniowie(
   numer INT PRIMARY KEY NOT NULL,
   imie VARCHAR(20) NOT NULL,
   nazwisko VARCHAR(50) NOT NULL,
   klasa CHAR(2) NOT NULL
);

4. Utwórz tabelę oceny:

Nazwa pola Typ Ograniczenia
id Liczba całkowita Klucz główny
numer Liczba całkowita Powiązanie z atrybutem numer w tabeli uczniowie
przedmiot Tekst 20 Obowiązkowe
ocena Liczba całkowita Obowiązkowe
1
2
3
4
5
6
CREATE TABLE oceny(
   id INT PRIMARY KEY NOT NULL,
   numer INT REFERENCES uczniowie (numer),
   przedmiot VARCHAR(20) NOT NULL,
   ocena INT NOT NULL
);

5. Wypełnij tabelę uczniowie

8AlicjaCybullaII9ZenonWolskiII10BozenaZawadzkaII

numer imie nazwisko klasa
1 Adam Cygan I
2 Ewa Czajka I
3 Piotr Kowalski I
4 Pawel Nowak II
5 Alicja Nowak II
6 Beata Kawka II
7 Adam Dzik II
1
2
3
4
5
6
7
8
9
10
11
INSERT INTO uczniowie (numer, imie, nazwisko, klasa) VALUES
   (1, 'Adam', 'Cygan', 'I'),
   (2, 'Ewa', 'Czajka', 'I'),
   (3, 'Piotr', 'Kowalski', 'I'),
   (4, 'Pawel', 'Nowak', 'I'),
   (5, 'Alicja', 'Nowak', 'I'),
   (6, 'Beata', 'Kawka', 'I'),
   (7, 'Adam', 'Dzik', 'II'),
   (8, 'Alicja', 'Cybulla', 'II'),
   (9, 'Zenon', 'Wolski', 'II'),
   (10, 'Bozena', 'Zawadzka', 'II');

5. Wypełnij tabelę oceny.

id numer przedmiot ocena
1 1 matematyka 3
2 2 matematyka 4
3 3 matematyka 5
4 1 fizyka 3
5 3  fizyka 4
6  5  matematyka 5
7  6  fizyka 3
8  7  fizyka 4
9  9  matematyka 5
10 9  fizyka 4
11  10  matematyka 3
1
2
3
4
5
6
7
8
9
10
11
12
INSERT INTO oceny (id, numer, przedmiot, ocena) VALUES
   (1, 1, 'matematyka', 3),
   (2, 2, 'matematyka', 4),
   (3, 3, 'matematyka', 5),
   (4, 1, 'fizyka', 3),
   (5, 3, 'fizyka', 4),
   (6, 5, 'matematyka', 5),
   (7, 6, 'fizyka', 3),
   (8, 7, 'fizyka', 4),
   (9, 9, 'matematyka', 5),
   (10, 9, 'fizyka', 4),
   (11, 10, 'matematyka', 3);

6. Wyświetl wszystkie tabele w bazie klasa

1
\d

7. Wyświetl opis tabel uczniowie i oceny.

1
2
\d uczniowie
\d oceny

8. Wyświetl tabelę uczniowie.

1
SELECT * FROM uczniowie;

9. Wyświetl tabelę oceny.

1
SELECT * FROM oceny;

Praca kontrolna nr 2
1. Zaloguj się do serwera PostgreSQL jako użytkownik postgres.

1
psql –U postgres

2. Uaktywnij bazę klasa utworzoną w pracy kontrolnej nr 1.

1
\c klasa

3. Wyświetl wszystkie tabele w bazie klasa.

1
\d

4. Wyświetl opis tabel uczniowie.

1
\d uczniowie

5. Wyświetl opis tabel oceny.

1
\d oceny

6. Wyświetl zawartość tabeli uczniowie.

1
SELECT * FROM uczniowie;

7. Wyświetl zawartość tabeli klasa.

1
SELECT * FROM oceny;

8. Utwórz kwerendę zawierającą wszystkie rekordy tabeli uczniowie uczniów klasy I uporządkowane alfabetycznie.

1
SELECT * FROM uczniowie WHERE klasa = 'I' ORDER BY imie ASC;

9. Utwórz kwerendę pokazującą uczniów, którzy mają ocenę 5 z matematyki. Pogrupuj według klas.

1
2
3
SELECT u.imie, u.nazwisko, u.klasa, o.przedmiot, o.ocena 
FROM uczniowie AS u JOIN oceny AS o ON u.numer = o.id
WHERE  o.ocena = 5

10. Utwórz kwerendę pokazującą średnią ocenę z matematyki wszystkich uczniów.

1
2
3
SELECT avg(ocena) AS ŚredniaOcena
FROM oceny
WHERE  przedmiot = 'matematyka';

11. Utwórz kwerendę pokazującą średnią ocenę z matematyki uczniów z klasy I.

1
2
3
SELECT avg(ocena)
FROM oceny, uczniowie
WHERE  przedmiot = 'matematyka' AND klasa = 'I';

12. Utwórz kwerendę pokazującą imię, nazwisko i klasę uczniów, którzy z matematyki otrzymali ocenę 4 lub 5.

1
2
3
SELECT u.imie, u.nazwisko, u.klasa 
FROM uczniowie AS u JOIN oceny AS o ON u.numer = o.id
WHERE  o.ocena >= 4;

13. Utwórz kwerendę pokazującą imię, nazwisko i klasę uczniów, którzy nie mają oceny z fizyki.

1
2
3
SELECT u.imie, u.nazwisko, u.klasa 
FROM uczniowie AS u JOIN oceny AS o ON u.numer = o.id
WHERE  o.ocena IS NULL;

14. Utwórz kwerendę pokazującą imię, nazwisko i klasę uczniów, którzy mają oceny z matematyki i fizyki.

1
2
3
4
SELECT u.imie, u.nazwisko, u.klasa
FROM uczniowie AS u JOIN oceny AS o ON u.numer = o.id
WHERE o.przedmiot IN ('matematyka','fizyka') 
AND o.ocena IS NOT NULL;

15. Utwórz kwerendę pokazującą ilu uczniów nie ma oceny z fizyki.

1
2
3
4
SELECT COUNT(u.imie)
FROM uczniowie AS u JOIN oceny AS o ON u.numer = o.id
WHERE o.przedmiot = 'fizyka'
AND o.ocena IS NULL;

Permalink do tego artykułu: http://tmall.com.pl/praca-kontrolna-nr-12-na-temat-sql/

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć tych znaczników i atrybutów HTMLa: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>