Programy SQL z objaśnieniem  - przykłady 1

// rza1.sql

//  Wybierz wszystkie rekordy z tabeli pracowni

SELECT *

FROM pracowni;

 

// rzb1a.sql

// Zliczenie liczby rekordów (wierszy) w tabeli o nazwie "TEMAT".:

SELECT COUNT(*)
FROM TEMAT;

//  To zapytanie SQL wykorzystuje funkcję agregacyjną COUNT(*) do zliczenia liczby rekordów (wierszy) w tabeli o nazwie "TEMAT".:

// rzb2.sql

// Wybor minimalnej daty urodzenia z tabeli STUDENCI;

select MIN(DATA_UR)
from STUDENCI;

//

 

// rzg1.sql

/* zapytanie SQL  ma na celu zliczenie

liczby wystąpień każdej unikalnej oceny w tabeli "oceny",

a następnie posortowanie wyników malejąco według ocen

*/

select ocena, count(*)

from oceny

group by ocena

order by ocena desc;

/*
Objaśnienie:

SELECT ocena, COUNT(*): Wybiera kolumnę "ocena" oraz liczy liczbę wystąpień

każdej unikalnej oceny.

FROM oceny: Wskazuje tabelę, na której wykonuje się zapytanie,

w tym przypadku tabelę "oceny".

GROUP BY ocena: Grupuje wyniki według unikalnych ocen.

ORDER BY ocena DESC: Sortuje wyniki malejąco według ocen.

Wynik tego zapytania powinien przedstawiać unikalne oceny w tabeli "oceny"

wraz z liczbą ich wystąpień, posortowane malejąco według ocen

*/

//  rzd1.sql

/*

Zapytanie SQL  ma na celu wybranie nazwisk pracowników

(kolumna "nazwisko" z tabeli "pracowni")

oraz kwot dochodów (kolumna "kwota" z tabeli "dochody") dla tych pracowników,

którzy mają powiązane rekordy w obu tabelach.

*/

select p.nazwisko, d.kwota

from pracowni p, dochody d

where p.nrp=d.nrp

order by d.kwota desc;

/*

Objaśnienie:

SELECT p.nazwisko, d.kwota: Wybiera kolumny "nazwisko" z tabeli "pracowni"

i "kwota" z tabeli "dochody".

FROM pracowni p, dochody d: Określa, z których tabel pobierane są dane,

nadając im aliasy "p" i "d".

WHERE p.nrp = d.nrp: Warunek, który łączy te dwie tabele

na podstawie wspólnego klucza "nrp".

ORDER BY d.kwota DESC: Sortuje wyniki malejąco według kolumny

"kwota" z tabeli "dochody".

Wynik tego zapytania powinien zawierać nazwiska pracowników

oraz odpowiadające im kwoty dochodów, posortowane malejąco według kwot dochodów.

*/

// rza2.sql

/* ma na celu wybranie wszystkich kolumn z tabeli "pracowni",

gdzie nazwisko pracownika zaczyna się od litery 'A'

*/

select *

from pracowni

where nazwisko like 'A%';

/*

Objaśnienie:

SELECT *: Wybiera wszystkie kolumny z tabeli "pracowni".

FROM pracowni: Wskazuje tabelę, z której pobierane są dane,

w tym przypadku tabelę "pracowni".

WHERE nazwisko LIKE 'A%': Warunek, który wybiera tylko te wiersze,

gdzie kolumna "nazwisko" zaczyna się od litery 'A'.

Operator LIKE używany jest do porównań tekstowych, a '%',

w tym przypadku, oznacza dowolny ciąg znaków.

Wynik tego zapytania powinien zawierać wszystkie kolumny  z tabeli "pracowni" dla pracowników,

których nazwisko zaczyna się od litery 'A'.

*/

 

// rzf1a.sql

/* Ma na celu wybranie kwoty dochodu (a.kwota), nazwiska pracownika (c.nazwisko)

oraz nazwy tematu (f.nazwatemat) dla przypadków,

gdzie nazwisko pracownika to 'MISIURA' i nazwa tematu to 'DYSK'.

*/

-- Wybór kwoty dochodu, nazwiska pracownika i nazwy tematu

SELECT a.kwota, c.nazwisko, f.nazwatemat

FROM dochody a, pracowni c, temat f

WHERE c.nazwisko = 'MISIURA' AND f.nazwatemat = 'DYSK';

/*

Objaśnienie:

SELECT a.kwota, c.nazwisko, f.nazwatemat:

Wybiera odpowiednie kolumny z tabel dochody, pracowni i temat.

FROM dochody a, pracowni c, temat f:

Wskazuje, z których tabel pobierane są dane, nadając im aliasy a, c, i f.

WHERE c.nazwisko = 'MISIURA' AND f.nazwatemat = 'DYSK':

Warunek, który filtruje wiersze, aby wybrać tylko te,

gdzie nazwisko pracownika to 'MISIURA' i nazwa tematu to 'DYSK'.

Wynik tego zapytania powinien zawierać kwotę dochodu, nazwisko pracownika

i nazwę tematu

dla przypadków spełniających warunki określone w klauzuli WHERE

*/

// rza3.sql

/*

zapytanie SQL wydaje się być poprawne i ma na celu wybranie nazwiska studenta

(s.nazwisko), numeru studenta (s.student), oraz kierunku studiów (k.kierunek)

dla przypadków, gdzie kierunek studiów to 'INFORMATYKA'

i istnieje powiązanie między tabelami "KIER_STU" i "STUDENCI

*/

-- Wybór nazwiska studenta, numeru studenta i kierunku studiów

SELECT s.nazwisko, s.student, k.kierunek

FROM KIER_STU k, STUDENCI s

WHERE s.student = k.student AND k.kierunek = 'INFORMATYKA';

/*

Objaśnienie:

SELECT s.nazwisko, s.student, k.kierunek: Wybiera odpowiednie kolumny

z tabel "STUDENCI" i "KIER_STU".

FROM KIER_STU k, STUDENCI s: Wskazuje, z których tabel pobierane są dane,

nadając im aliasy k i s.

WHERE s.student = k.student AND k.kierunek = 'INFORMATYKA':

Warunek, który filtruje wiersze, aby wybrać tylko te,

gdzie numer studenta w tabeli "STUDENCI" jest równy numerowi studenta

w tabeli "KIER_STU" i kierunek studiów to 'INFORMATYKA'.

Wynik tego zapytania powinien zawierać nazwisko studenta,

numer studenta i kierunek studiów dla przypadków spełniających warunki

określone w klauzuli WHERE.

*/

// rzg2.sql

/*

To zapytanie SQL ma na celu wybranie nazwiska studenta (s.nazwisko),

numeru studenta (s.student), oraz średniej oceny (avg(ocena))

dla każdego studenta z tabeli "oceny" i "studenci".

Następnie wyniki są grupowane według numeru studenta i nazwiska,

a na końcu są sortowane alfabetycznie według nazwiska.

*/

-- Wybór nazwiska studenta, numeru studenta i średniej oceny

SELECT s.nazwisko, s.student, AVG(ocena) as srednia_ocena

FROM oceny o, studenci s

WHERE o.student = s.student

GROUP BY s.student, s.nazwisko

ORDER BY s.nazwisko;

/*

Objaśnienie:

SELECT s.nazwisko, s.student, AVG(ocena) as srednia_ocena:

Wybiera odpowiednie kolumny z tabel "STUDENCI" i "OCENY",

oraz oblicza średnią ocenę dla każdego studenta.

FROM OCENY o, STUDENCI s: Wskazuje, z których tabel pobierane są dane,

nadając im aliasy o i s.

WHERE o.student = s.student: Warunek, który łączy te dwie tabele

na podstawie wspólnego klucza "student".

GROUP BY s.student, s.nazwisko: Grupuje wyniki według numeru studenta

i nazwiska, co jest wymagane, ponieważ korzystamy z funkcji agregującej AVG().

ORDER BY s.nazwisko: Sortuje wyniki alfabetycznie według nazwiska studenta.

Wynik tego zapytania powinien zawierać nazwisko studenta, numer studenta

oraz średnią ocenę dla każdego studenta, posortowane alfabetycznie według nazwiska.

*/

 

// rze1.sql

/*

Twoje zapytanie SQL wydaje się być poprawne i ma na celu wybranie

nazwy tematu (t.nazwatemat),

nazwiska pracownika (p.nazwisko),

oraz numeru pracownika (p.nrp),

gdzie nazwisko pracownika to 'WILK'

i istnieją powiązania między tabelami "pracowni", "dochody" i "temat".

*/

 

-- Wybór nazwy tematu, nazwiska pracownika i numeru pracownika

SELECT t.nazwatemat, p.nazwisko, p.nrp

FROM temat t, dochody d, pracowni p

WHERE p.nrp = d.nrp AND d.nrt = t.nrt AND p.nazwisko = 'WILK';

 

/*

Objaśnienie:

SELECT t.nazwatemat, p.nazwisko, p.nrp:

Wybiera odpowiednie kolumny z tabel "TEMAT", "DOCHODY" i "PRACOWNI".

FROM TEMAT t, DOCHODY d, PRACOWNI p:

 Wskazuje, z których tabel pobierane są dane, nadając im aliasy t, d i p.

WHERE p.nrp = d.nrp AND d.nrt = t.nrt AND p.nazwisko = 'WILK':

Warunek, który łączy te trzy tabele na podstawie wspólnych kluczy

("nrp" między "PRACOWNI" i "DOCHODY", oraz "nrt" między "DOCHODY" i "TEMAT"),

a także dodaje warunek na nazwisko pracownika.

Wynik tego zapytania powinien zawierać

nazwę tematu, nazwisko pracownika i numer pracownika dla przypadków,

gdzie nazwisko pracownika to 'WILK'

oraz istnieją powiązania między tabelami "pracowni", "dochody" i "temat".

*/

// rzg3.sql

/*

zapytanie SQL  ma na celu wybranie nazwy tematu (t.nazwatemat),

numeru tematu (t.nrt), oraz sumy kwot dochodów (SUM(kwota))

dla każdego tematu z tabeli "temat" i "dochody".

Wyniki są grupowane według nazwy tematu i numeru tematu,

a na końcu są sortowane alfabetycznie według nazwy tematu.

*/

-- Wybór nazwy tematu, numeru tematu i sumy kwot dochodów

SELECT t.nazwatemat, t.nrt, SUM(kwota) as suma_kwot

FROM temat t, dochody d

WHERE t.nrt = d.nrt

GROUP BY t.nazwatemat, t.nrt

ORDER BY t.nazwatemat;

/*

Objaśnienie:

SELECT t.nazwatemat, t.nrt, SUM(kwota) as suma_kwot:

Wybiera odpowiednie kolumny z tabel "temat" i "dochody",

oraz oblicza sumę kwot dochodów dla każdego tematu.

FROM temat t, dochody d: Wskazuje, z których tabel pobierane są dane,

nadając im aliasy t i d.

WHERE t.nrt = d.nrt: Warunek, który łączy te dwie tabele

na podstawie wspólnego klucza "nrt".

GROUP BY t.nazwatemat, t.nrt: Grupuje wyniki według

nazwy tematu i numeru tematu,

co jest wymagane, ponieważ korzystamy z funkcji agregującej SUM().

ORDER BY t.nazwatemat: Sortuje wyniki alfabetycznie według nazwy tematu.

Wynik tego zapytania powinien zawierać

nazwę tematu, numer tematu oraz sumę kwot dochodów dla każdego tematu,

posortowane alfabetycznie według nazwy tematu

*/

// rzc1.sql

/*

Zapytanie SQL ma na celu wybranie nazwiska pracownika (nazwisko),

a także obliczenie premii (PREMIA),

która jest 25% sumy kwot dochodów (sum(kwota))

dla każdego pracownika  z tabeli "pracowni" i "dochody".

Wyniki są grupowane według numeru pracownika i nazwiska pracownika,

a na końcu są sortowane alfabetycznie według nazwiska pracownika

*/

-- Wybór nazwiska pracownika i premii (25% sumy kwot dochodów)

SELECT nazwisko AS NAZW_PRAC, SUM(kwota) * 0.25 AS PREMIA

FROM pracowni p, dochody d

WHERE p.nrp = d.nrp

GROUP BY p.nrp, p.nazwisko

ORDER BY p.nazwisko;

/*

Objaśnienie:

SELECT nazwisko AS NAZW_PRAC, SUM(kwota) * 0.25 AS PREMIA:

Wybiera odpowiednie kolumny z tabel "pracowni" i "dochody",

a także oblicza premię jako 25% sumy kwot dochodów dla każdego pracownika.

FROM pracowni p, dochody d:

Wskazuje, z których tabel pobierane są dane, nadając im aliasy p i d.

WHERE p.nrp = d.nrp: Warunek, który łączy te dwie tabele

na podstawie wspólnego klucza "nrp".

GROUP BY p.nrp, p.nazwisko:

Grupuje wyniki według numeru pracownika i nazwiska pracownika,

co jest wymagane, ponieważ korzystamy z funkcji agregującej SUM().

ORDER BY p.nazwisko: Sortuje wyniki alfabetycznie według nazwiska pracownika.

Wynik tego zapytania powinien zawierać nazwisko pracownika

i obliczoną premię (25% sumy kwot dochodów) dla każdego pracownika,

posortowane alfabetycznie według nazwiska pracownika

*/

 

//rzh2.sql

/*

Zapytanie SQL ma na celu wybranie kierunku studiów (k.kierunek)

oraz średniej oceny (avg(o.ocena)) dla przypadków,

gdzie średnia ocena studenta na danym kierunku studiów jest mniejsza niż 4.

Wyniki są grupowane według kierunku studiów,

a następnie wyniki są filtrowane przy użyciu klauzuli HAVING

i sortowane alfabetycznie według kierunku studiów

*/

-- Wybór kierunku studiów i średniej oceny, gdzie średnia ocena jest mniejsza niż 4

SELECT k.kierunek, AVG(o.ocena) as srednia_ocena

FROM kier_stu k, oceny o

WHERE k.student = o.student

GROUP BY k.kierunek

HAVING AVG(o.ocena) < 4

ORDER BY k.kierunek;

/*

Objaśnienie:

 

SELECT k.kierunek, AVG(o.ocena) as srednia_ocena:

Wybiera odpowiednie kolumny z tabel "kier_stu" i "oceny",

oraz oblicza średnią ocenę dla każdego kierunku studiów.

FROM kier_stu k, oceny o: Wskazuje, z których tabel pobierane są dane,

nadając im aliasy k i o.

WHERE k.student = o.student: Warunek, który łączy te dwie tabele

na podstawie wspólnego klucza "student".

GROUP BY k.kierunek: Grupuje wyniki według kierunku studiów,

co jest wymagane, ponieważ korzystamy z funkcji agregującej AVG().

HAVING AVG(o.ocena) < 4: Filtruje grupy, aby wybrać tylko te,

gdzie średnia ocena jest mniejsza niż 4.

ORDER BY k.kierunek: Sortuje wyniki alfabetycznie według kierunku studiów.

Wynik tego zapytania powinien zawierać kierunek studiów

oraz średnią ocenę dla kierunków, gdzie średnia ocena jest mniejsza niż

*/

// rzh1.sql

/*

zapytanie SQL wydaje się być poprawne i ma na celu wybranie nazwiska pracownika

(p.nazwisko), numeru pracownika (p.nrp),

oraz liczby przypisanych wykładów (count(w.nrp)) dla przypadków,

gdzie pracownik ma przypisane co najmniej 2 wykłady.

Wyniki są grupowane według numeru pracownika i nazwiska pracownika,

a następnie wyniki są filtrowane przy użyciu klauzuli HAVING

i sortowane alfabetycznie według nazwiska pracownika.

*/

 

-- Wybór nazwiska pracownika, numeru pracownika i liczby przypisanych wykładów

SELECT p.nazwisko, p.nrp, COUNT(w.nrp) as liczba_wykladow

FROM pracowni p, wykladow w

WHERE p.nrp = w.nrp

GROUP BY p.nrp, p.nazwisko

HAVING COUNT(w.nrp) >= 2

ORDER BY p.nazwisko;

 

/*

Objaśnienie:

 

SELECT p.nazwisko, p.nrp, COUNT(w.nrp) as liczba_wykladow:

Wybiera odpowiednie kolumny z tabel "pracowni" i "wykladow",

a także oblicza liczbę przypisanych wykładów dla każdego pracownika.

FROM pracowni p, wykladow w:

Wskazuje, z których tabel pobierane są dane, nadając im aliasy p i w.

WHERE p.nrp = w.nrp: Warunek, który łączy te dwie tabele

na podstawie wspólnego klucza "nrp".

GROUP BY p.nrp, p.nazwisko:

Grupuje wyniki według numeru pracownika i nazwiska pracownika,

co jest wymagane, ponieważ korzystamy z funkcji agregującej COUNT().

HAVING COUNT(w.nrp) >= 2: Filtruje grupy, aby wybrać tylko te,

gdzie liczba przypisanych wykładów jest co najmniej 2.

ORDER BY p.nazwisko: Sortuje wyniki alfabetycznie według nazwiska pracownika.

Wynik tego zapytania powinien zawierać

nazwisko pracownika, numer pracownika i liczbę przypisanych wykładów

dla pracowników, którzy mają przypisane co najmniej 2 wykłady.

*/

 

// rzh3.sql

/*

Zapytanie SQL  ma na celu wybranie nazwy zespołu (z.nazwazesp),

nazwy tematu (t.nazwatemat), oraz sumy kwot dochodów (sum(d.kwota))

dla przypadków, gdzie średnia kwota dochodów przypisanego do tematu j

est większa niż 5 000 000.

Wyniki są grupowane według nazwy zespołu i nazwy tematu,

a następnie wyniki są filtrowane przy użyciu klauzuli HAVING

i sortowane alfabetycznie według nazwy zespołu.

*/


-- Wybór nazwy zespołu, nazwy tematu i sumy kwot dochodów,

-- gdzie średnia kwota dochodów jest większa niż 5 000 000

SELECT z.nazwazesp, t.nazwatemat, SUM(d.kwota) as suma_kwot

FROM zespol z, dochody d, temat t, pracowni p

WHERE d.nrt = t.nrt AND p.nrp = d.nrp AND p.nrz = z.nrz

GROUP BY z.nazwazesp, t.nazwatemat

HAVING AVG(d.kwota) > 5000000

ORDER BY z.nazwazesp;

/*

Objaśnienie:

SELECT z.nazwazesp, t.nazwatemat, SUM(d.kwota) as suma_kwot:

Wybiera odpowiednie kolumny z tabel "zespol", "dochody", "temat" i "pracowni",

a także oblicza sumę kwot dochodów dla każdego zespołu i tematu.

FROM zespol z, dochody d, temat t, pracowni p:

Wskazuje, z których tabel pobierane są dane, nadając im aliasy z, d, t i p.

WHERE d.nrt = t.nrt AND p.nrp = d.nrp AND p.nrz = z.nrz:

Warunek, który łączy te cztery tabele na podstawie wspólnych kluczy

("nrt" między "DOCHODY" i "TEMAT", "nrp" między "DOCHODY" i "PRACOWNI", "nrz" między "PRACOWNI" i "ZESPOL").

GROUP BY z.nazwazesp, t.nazwatemat:

Grupuje wyniki według nazwy zespołu i nazwy tematu, co jest wymagane,

ponieważ korzystamy z funkcji agregującej SUM().

HAVING AVG(d.kwota) > 5000000: Filtruje grupy,

aby wybrać tylko te, gdzie średnia kwota dochodów jest większa niż 5 000 000.

ORDER BY z.nazwazesp: Sortuje wyniki alfabetycznie według nazwy zespołu.

Wynik tego zapytania powinien zawierać nazwę zespołu, nazwę tematu

oraz sumę kwot dochodów dla przypadków,

gdzie średnia kwota dochodów jest większa niż 5 000 000,

posortowane alfabetycznie według nazwy zespołu.

*/

// rzf1.sql

/*

Zapytanie SQL  ma na celu wybranie nazwy zespołu (z.nazwazesp),

nazwy tematu (t.nazwatemat), oraz sumy kwot dochodów (sum(d.kwota))

dla przypadków, gdzie średnia kwota dochodów przypisanego do tematu

jest większa niż 5 000 000.

Wyniki są grupowane według nazwy zespołu i nazwy tematu,

a następnie wyniki są filtrowane przy użyciu klauzuli HAVING

i sortowane alfabetycznie według nazwy zespołu

*/

-- Wybór nazwy zespołu, nazwy tematu i sumy kwot dochodów,

-- gdzie średnia kwota dochodów jest większa niż 5 000 000

SELECT z.nazwazesp, t.nazwatemat, SUM(d.kwota) as suma_kwot

FROM zespol z, dochody d, temat t, pracowni p

WHERE d.nrt = t.nrt AND p.nrp = d.nrp AND p.nrz = z.nrz

GROUP BY z.nazwazesp, t.nazwatemat

HAVING AVG(d.kwota) > 5000000

ORDER BY z.nazwazesp;

/*

Objaśnienie:

SELECT z.nazwazesp, t.nazwatemat, SUM(d.kwota) as suma_kwot:

Wybiera odpowiednie kolumny z tabel "zespol", "dochody", "temat" i "pracowni",

a także oblicza sumę kwot dochodów dla każdego zespołu i tematu.

FROM zespol z, dochody d, temat t, pracowni p:

Wskazuje, z których tabel pobierane są dane, nadając im aliasy z, d, t i p.

WHERE d.nrt = t.nrt AND p.nrp = d.nrp AND p.nrz = z.nrz:

Warunek, który łączy te cztery tabele na podstawie wspólnych kluczy

("nrt" między "DOCHODY" i "TEMAT", "nrp" między "DOCHODY" i "PRACOWNI", "nrz"

między "PRACOWNI" i "ZESPOL").

GROUP BY z.nazwazesp, t.nazwatemat: Grupuje wyniki według nazwy zespołu

i nazwy tematu, co jest wymagane, ponieważ korzystamy z funkcji agregującej SUM().

HAVING AVG(d.kwota) > 5000000: Filtruje grupy, aby wybrać tylko te,

gdzie średnia kwota dochodów jest większa niż 5 000 000.

ORDER BY z.nazwazesp: Sortuje wyniki alfabetycznie według nazwy zespołu.

Wynik tego zapytania powinien zawierać nazwę zespołu, nazwę tematu

oraz sumę kwot dochodów dla przypadków,

gdzie średnia kwota dochodów jest większa niż 5 000 000,

posortowane alfabetycznie według nazwy zespołu.

*/

 

// rz1.sql

connect baza1;

create table zesp2

(Nazwazesp char(15),

Nrz smallint not null,

Nrpkz smallint,

primary key (Nrz));

 

create unique index zesp2_Nrz on zesp2 (Nrz);

 

create table prac2

(Nrp smallint not null,

Kobieta char(1),

Data_ur timestamp not null,

Nazwisko char(15) not null,

Nrz smallint not null,

primary key (Nrp) );

create index prac2_Nrz on prac2 (Nrz);

create unique index prac2_Nrp on prac2 (Nrp);

 

insert into zesp2 select * from zespol;

insert into prac2 select * from pracowni;

 

select * from prac2;

 

select * from zesp2;

 

alter table zesp2

foreign key fk_prac2 (nrpkz) references prac2

on delete restrict;

 

alter table prac2

foreign key fk_zesp2 (nrz) references zesp2

on delete set null;

 

select * from prac2;

select * from zesp2;

 

insert into zesp2 values ('USM', 7, 33);

 

insert into zesp2 values ('USM2', 8, 1);

 

delete from prac2 where nrp=33;

 

grant connect to admin identified by admin;

 

connect baza1 admin/admin;

 

select * from zesp2;

 

connect baza1 sysadm/sysadm;

 

grant resource to admin;

 

select * from zesp2;

 

connect baza1 admin/admin;

 

select * from zesp2;

 

connect baza1 sysadm/sysadm;

 

grant dba to admin;

 

connect baza1 admin/admin;

select * from sysadm.zesp2;

 

use 1;

use 2;

use 3;

connect baza1 sysadm/sysadm;

select * from sysuserauth;

grant connect to prac identified by prac;

 

connect baza1 admin/admin;

grant connect to prac1 identified by prac1;

use 1;

grant connect to stud identified by stud;

 

connect baza1 admin/admin;

grant select on zesp2 to prac;

 

connect baza1 sysadm/sysadm;

grant select on zesp2 to prac;

select * from zesp2;

grant select on sysadm.zesp2 to prac;

disconnect all;

connect baza1 admin/admin;

create synonym zesp2 for sysadm.zesp2;

connect baza1 prac/prac;

select * from sysadm.zesp2;

create table Tem1 (nazwateamt char(30), data_odb timestamp, nrt integer not null,

nrpkt smallint not null);

 

/*  Komentarz

Wprowadzono do zapytania wiele operacji dotyczących tworzenia tabel,

indeksów, operacji na danych, a także operacji na uprawnieniach użytkowników

w systemie baz danych. Oto krótka analiza każdej części zapytania:

Tworzenie tabel:

Utworzono ś dwie tabele: zesp2 i prac2, zdefiniowane z różnymi kolumnami.

zesp2 ma klucz główny Nrz oraz indeks unikalny na Nrz.

prac2 ma klucz główny Nrp, indeks na Nrz oraz indeks unikalny na Nrp.

Wstawianie danych:

Skopiowano  dane z tabel zespol i pracowni do tabel zesp2 i `prac2

USE jest komendą specyficzną dla różnych systemów zarządzania bazą danych (DBMS),

takich jak MySQL czy SQL Server.

W zapytaniach SQL dla wielu systemów nie ma komendy USE.

Komenda ta jest używana, aby zmienić bieżącą bazę danych w trakcie sesji użytkownika.

 

Natomiast CONNECT jest używane do nawiązania połączenia z bazą danych.

W zapytaniu użyło  CONNECT do nawiązania połączenia z różnymi użytkownikami
(admin, sysadm, prac, itp.) i różnymi hasłami (admin, sysadm, prac, itp.).

*/