Bazydanych tabele


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 tabele
Bazydanych Manual
tabele
access st2008z lab02 tabele
tabele2
zal paroc tabele do rozp
wody rzeki tabele13 15
tabele (9)
BazyDanych KM przeglad SQL v2
PUMA Tabele rozmiarów
Tabele pomiarowe
tabele do obliczeń więźby dachowej

więcej podobnych podstron