zadanie a)
Create table stanowiska(
id NUMBER(2) PRIMAry KEY,
nazwa VARCHAR2(20) NOT NULL UNIQUE);
DROP TABLE stanowiska;
Create table stanowiska(
id NUMBER(2) CONSTRAINT stanowisko_pk PRIMARY KEY,
nazwa VARCHAR2(20) NOT NULL constraint stanowiska_u UNIQUE);
create table kandydaci(
id NUMBER(3) CONSTRAINT kandydaci_pk primary key,
imie VARCHAR2(10) NOT NULL,
nazwisko VARCHAR2(20) NOT NULL,
data_urodzenia DATE NOT NULL,
plec CHAR(1) NOT NULL CONSTRAINT KANDYDACI_PLEC CHECK(plec in ('K','M')),
pesel CHAR(11) NOT NULL,
numer_telefonu CHAR(9) not null,
email VARCHAR2(20) not null,
oczekiwania_pensja NUMBER not null constraint pensjaoczek check(oczekiwania_pensja >0),
opis_dotychczasowej_kariery VARCHAR2(300),
id_stanowiska NUMBER(2) not null constraint kandydaci_FK references stanowiska(id));
b)
create index nazwisko ON kandydaci(nazwisko);
c)
insert into stanowiska values(1, 'sekretarka');
insert into stanowiska values(2, 'grafik');
insert into stanowiska values(3, 'Kierownik');
alter table stanowiska modify(nazwa Varchar2(50)); --modyfikowanie ilości znaków w nazwie
d)
create sequence kandydaci_sekw
start with 1
increment by 1; --autonumerowanie
insert into kandydaci values(kandydaci_sekw.NEXTVAl, 'Jan' , 'kowalski' , TO_DATE('05-11-1967','DD-MM-YYYY'),'M','67110512816', '612345678', 'jan_k@wp.pl',2800,NULL,2);
insert into kandydaci values(kandydaci_sekw.NEXTVAl, 'Zofia' , 'Mazurek' , TO_DATE('25/04/1976','DD/MM/YYYY'),'K','76042473821', '426333333', 'zofia_m@gmail.com',3500,'5
lat pracy na podobnym stanowisku w firmie ABC',3);
e)
update stanowiska
set nazwa ='grafik komputerowy'
where nazwa='grafik';
f)
update kandydaci
set data_urodzenia =to_date('24/04/1976', 'DD/MM/YYYY')
where PESEL='76042479821';
g)
update kandydaci
set opis_dotychczasowej_kariery='praca w małej, prywatnej firmie reklamowej'
where PESEL = '67110512816';
g)
update kandydaci
set oczekiwania_pensja='3100', email='jak_k@gmail.com'
where PESEL='67110512816';
k)
create table kandydaci1 as
select *
from kandydaci;
l)
create table kandydaci2 as
select *
from kandydaci
where 1=2; -- fałszywy warunek żeby dane były puste w tabeli
ł)
delete from kandydaci1; --usuwa wszystkie wiersze w tabeli.
truncate table kandydaci1; --usuwa bezpowrotnie
m)
drop table kandydaci1; --usuwanie tabelek
drop table kandydaci2;
1b.
create table ZUCH(
id_zuch NUMBER(2) primary key,
imie Varchar2(20) not null,
nazwisko varchar2(20) not null);
create table SPRAWNOSC(
id_sprawnosc Number(2) primary key,
nazwa varchar2(20) not null);
create table zuchy_sprawnosc(
id_zucha Number(2) constraint zs_z_ch references zuch(id_zuch),
id_sprawnosci number(2) constraint zs_s_ch references sprawnosc(id_sprawnosc),
data_zdobycia date not null,
constraint zs_pk primary key(id_zucha, id_sprawnosci));
create index nazwisko on zuch(imie,nazwisko);
create unique index nazwa on sprawnosc(nazwa);
insert into zuch values (1,'EWA','Nowicka');
insert into zuch values (2,'Tomasz','Maliński');
insert into zuch values (3,'Anna','Michalczak');
insert into sprawnosc values (1,'przyjaciel książek');
insert into sprawnosc values (2,'pywak');
insert into sprawnosc values (3,'doktor ojboli');
insert into sprawnosc values (4,'śpiewak');
insert into zuchy_sprawnosc values(1,1,to_date('15/05/2015', 'DD/MM/YYYY'));
insert into zuchy_sprawnosc values(1,4,to_date('10/10/2014', 'DD/MM/YYYY'));
insert into zuchy_sprawnosc values(3,1,to_date('15/01/2013', 'DD/MM/YYYY'));
insert into zuchy_sprawnosc values(3,3,to_date('10/03/2014', 'DD/MM/YYYY'));
2b
create table PSY (
id number(3) constraint pies_pk primary key,
numer_identyfikacyjny varchar2(10) not null,
numer_boksu number(10) not null,
imie varchar2(20) not null,
plec varchar2(6) not null constraint pies_plec check(plec in('pies','suczka')),
znaki_szczegolne varchar2(30),
opis varchar2(300),
data_przyjecia date not null,
id_rasy NUMBER(3) not null constraint PSY_FK references Rasy(id)
);
create table RASY(
id number(3) constraint Rasa_pk primary key,
nazwa varchar(20) not null unique,
opis varchar(300)
);
create index PSY_IMIE on PSY(imie);
select *
from rasy;
insert into rasy values(2, 'husky syberyjski', 'psy z
sekcji północnych psów zaprzęgowych');
insert into rasy values(5,'jamnik',null);
select *
from psy;
insert into psy values(150,'2015/134',15,'Filemon','pies',null,'Śliczny około
trzymiesięczny szczeniak. Aktywny i rozbrykany.',to_date('DD/MM/YYYY','12/12/2015'),5);
zapytanie ćwiczenia 1
2
select *
from user_tables;
3
desc osoby;
4
select *
from osoby;
select imie1,nazwisko, plec
from osoby;
select imie1
from osoby;
select distinct imie1 -- duplikaty
from osoby
select id_os,nazwisko, To_char(d_ur,'DD month YYYY') as Data_Urodzenia -- nazwa kolumny może być cudźysłów.
from osoby;
select id_os,nazwisko, To_char(d_ur,'DD month YYYY') "Data_Urodzenia" -- działa bez as
from osoby;
select 123*78/10+13.4 "wynik", 'dziwne obliczenia' as TEKST
from dual;
select to_char(sysdate,'DD/MM/YYYY HH:MI:SS') "DATA I GODZINA"
from dual;
select ID_OS, imie1 ||' '|| nazwisko as "Imie i nazwisko" --wyświetlanie w jednej kolumnie
from osoby;
select ID_OS, initcap(imie1 ||' '|| nazwisko) "Dane" -- uper male lower male initcap pierwsza duza
from osoby;
5 sortowania --as rosnąco desc malejąco
select ID_z,pensja
from zatrudnienia
order by pensja desc;
select ID_z,pensja
from zatrudnienia
order by pensja, id_z desc;
select nazwisko, d_ur
from osoby
order by nazwisko, d_ur;
select pensja, pensja * 2 "podwojona" ,pensja + 100 "podniesiona o 100", pensja+pensja *0.15 "podniesiona o 15%"
from zatrudnienia
order by 4 desc;-- po 4 kolumnie
select initcap(nazwa)
from wydzialy
order by Length(nazwa) desc;
select distinct id_os
from zatrudnienia
where id_w=2;
select nazwisko, imie1, plec
from osoby
where id_os=5;
pensja beetwen 2000 and 3000
nazwisko in ('kowalski','nowak','maj');
% dowolna liczba znaków może być pusta
_dokładnie jeden znak
nazwa like 'k%'
select id_os, pensja
from zatrudnienia
where pensja <=2000
order by pensja desc;
select id_os
from zatrudnienia
where pensja >=3000 and pensja <=4000
order by pensja desc;
select id_os
from zatrudnienia
where pensja >2500 and pensja <=3300;
select imie1, imie2, d_ur
from osoby
where nazwisko='NOWAK'
order by d_ur;
select imie1, nazwisko
from osoby
where plec='K'
order by nazwisko, imie1 ;
select distinct id_os
from zatrudnienia
where id_w=1 or id_w=4 or id_w=5
order by id_os;
Wyszukiwarka
Podobne podstrony:
ćwiczenie5 tabeleBazydanych Manualtabeleaccess st2008z lab02 tabeletabele2zal paroc tabele do rozpwody rzeki tabele13 15tabele (9)BazyDanych KM przeglad SQL v2PUMA Tabele rozmiarówTabele pomiarowetabele do obliczeń więźby dachowejwięcej podobnych podstron