sqlplus.pdf
(
198 KB
)
Pobierz
/home/darek/Dropbox/d/BD/sqlplus.sql
Strona 1 z 5
pon, 5 lis 2012, 22:26:18
1 tworzenie tabel
2
CREATE TABLE
autor1_s
(
id_autora NUMBER
(
20
),
imie
VARCHAR
(
20
),
nazwisko
VARCHAR
(
20
));
3
CREATE TABLE
ksiazka_s
(
id_ksiaszki NUMBER
(
20
),
tytul
VARCHAR
(
20
),
cena NUMBER
(
10
,
2
) ,
liczba NUMBER
(
4
));
4
CREATE TABLE
ksiazka_szczeguly_s
(
id_aksiaszki NUMBER
(
20
),
isbn
VARCHAR
(
20
),
data_wydania
DATE
,
oprawa
VARCHAR
(
10
));
5
CREATE TABLE
autor_ksiazka_s
(
id_autora NUMBER
(
20
),
id_ksiaszki NUMBER
(
20
) );
6
CREATE TABLE
ksiazka_szczeguly_s
(
id_aksiaszki NUMBER
(
20
),
isbn
VARCHAR
(
20
),
data_wydania
DATE default
'99-12-0
2'
,
oprawa
VARCHAR
(
10
));
7
8 nalozenie kluczy glównych
9
ALTER TABLE
autor1_s
ADD CONSTRAINT
kg_1
PRIMARY KEY
(
id_autora
);
10
ALTER TABLE
ksiazka_s
ADD CONSTRAINT
kg_2
PRIMARY KEY
(
id_ksiaszki
);
11
ALTER TABLE
ksiazka_sz
ADD CONSTRAINT
kg_3
PRIMARY KEY
(
id_aksiaszki
);
12
ALTER TABLE
autor_ks
ADD CONSTRAINT
kg_4
PRIMARY KEY
(
id_autora
,
id_ksiaszki
);
13
14 ustawienie kluczy obcych
15
ALTER TABLE
autor_ksiazka_s
ADD CONSTRAINT
kg_11
FOREIGN KEY
(
id_autora
)
REFERENCES
autor1_s
(
id_autora
);
16
ALTER TABLE
autor_ksiazka_s
ADD CONSTRAINT
kg_12
FOREIGN KEY
(
id_ksiaszki
)
REFERENCES
ksiazka_s
(
id_ksiaszki
);
17
18 zakres danej kolumny
19
ALTER TABLE
ksiazka_s
ADD CONSTRAINT
kg_31
CHECK
(
cena
>
0
);
20
ALTER TABLE
autor1_s
ADD CONSTRAINT
kg_32
CHECK
(
imie
IS NOT NULL OR
nazwisko
IS
NOTSELE
NULL
);
21
ALTER TABLE
ksiazka_sz
ADD CONSTRAINT
kg_33
CHECK
(
oprawa
=
'miekka'
OR
oprawa
=
'twarda'
);
22
ALTER TABLE
autor1_s
ADD CONSTRAINT
kg_32
CHECK
(
imie
IS NOT NULL
);
23
ALTER TABLE
autor1_s
ADD CONSTRAINT
kg_34
CHECK
(
nazwisko
IS NOT NULL
);
24
ALTER TABLE
ksiazka_op
ADD CONSTRAINT
kg_33
CHECK
(
oprawa
=
'miekka'
OR
oprawa
=
'twarda'
OR
oprawa
=
'skora
'
);
25
26 usumniecie ograniczenia
27
ALTER TABLE
autor1_s
DROP CONSTRAINT
kg_32
;
28
ALTER TABLE
ksiazka_op
DROP CONSTRAINT
kg_33
;
29
30 zmiana nzwy tabeli
31
ALTER TABLE
ksiazka_sz
RENAME TO
ksiazka_opis_s
;
32
33 zmiana nazwy tabeli
34
ALTER TABLE
ksiazka_s
RENAME COLUMN
liczba
TO
liczba_egzemplarzy
;
35
36 zmiana typu kolumny
37
ALTER TABLE
autor1_s
MODIFY
(
imie
VARCHAR
(
16
));
38
ALTER TABLE
ksiazka_op
MODIFY
(
ISBN NUMBER
(
20
));
- 1 -
/home/darek/Dropbox/d/BD/sqlplus.sql
Strona 2 z 5
pon, 5 lis 2012, 22:26:18
39
40 usuwanie ograniczenia
41
ALTER TABLE
ksiazka_s
DROP CONSTRAINT
kg_31
;
42
43 dodawanie kolumny
44
ALTER TABLE
ksiazka_s
ADD
wydawca
VARCHAR
(
20
);
45
46 usuwanie kolumny
47
ALTER TABLE
ksiazka_s
DROP COLUMN
wydawca
;
48
49
===================================================
2
==================================================
50
51 pokazywanie co posiadamy w tabeli
52
SELECT
*
FROM
autor1_s
;
53
SELECT
CENA
, ((
CENA
*
0.1
)+
CENA
)
FROM
ksiazka_s
;
54
SELECT
imie
,
nazwisko
55
FROM
pracownik_personalia
56
ORDER BY
nazwisko
,
imie
DESC
;
57
SELECT
imie
,
nazwisko
,
nip
58
FROM
pracownik_personalia
59
WHERE
nazwisko
LIKE
'%ski'
AND
nip
>
1500000000
AND
nip
<
1600000000
60
SELECT
id_pracownika
,
pensja
+
premia Zarobki
61
FROM
pracownik
;
62
SELECT
imie
,
nazwisko
,
stanowisko
,
NVL
(
premia
,
0
)
63
FROM
pracownik_personalia
,
pracownik
64
WHERE
premia
is not null AND
pracownik_personalia
.
id_pracownika
=
pracownik
.
id_pracownika
;
65
SELECT
imie
,
nazwisko
,
stanowisko
,
NVL
(
premia
,
0
)
66
FROM
pracownik_personalia
,
pracownik
67
WHERE
pracownik_personalia
.
id_pracownika
=
pracownik
.
id_pracownika
AND
premia
is null
;
68
SELECT
imie
,
nazwisko
,
stanowisko
,
NVL
(
premia
,
0
)
69
FROM
pracownik_personalia
,
pracownik
70
WHERE
pracownik_personalia
.
id_pracownika
=
pracownik
.
id_pracownika
;
71
SELECT
imie
,
nazwisko
,
stanowisko
,
NVL
(
premia
,
0
)
72
FROM
pracownik_personalia A
,
pracownik B
73
WHERE
A
.
id_pracownika
=
B
.
id_pracownika
;
74
SELECT
id_pracownika
,
pensja
,
id_przedzialu
,
dolna_granica
,
gorna_granica
75
FROM
pracownik
,
przedzial_zarobkow
76
WHERE
(
pensja
<=
gorna_granica
AND
pensja
>=
dolna_granica
)
AND
(
id_przedzialu
=
1
OR
id_przedzialu
=
2
);
77
SELECT
id_pracownika
,
pensja
,
id_przedzialu
,
dolna_granica
,
gorna_granica
78
FROM
pracownik
,
przedzial_zarobkow
79
WHERE
pensja between dolna_granica
AND
gorna_granica
AND
(
id_przedzialu
=
1
OR
id_przedzialu
=
2
);
- 2 -
/home/darek/Dropbox/d/BD/sqlplus.sql
Strona 3 z 5
pon, 5 lis 2012, 22:26:18
80
SELECT
id_pracownika
,
pensja
,
id_przedzialu
,
dolna_granica
,
gorna_granica
81
FROM
pracownik
,
przedzial_zarobkow
82
WHERE
pensja between dolna_granica
AND
gorna_granica
AND
id_przedzialu
in
(
1
,
2
);
83
SELECT
imie
,
nazwisko
,
pensja
84
FROM
pracownik A
,
przedzial_zarobkow
,
pracownik_personalia B
85
WHERE
(
A
.
id_pracownika
=
B
.
id_pracownika
)
AND
(
pensja between dolna_granica
AND
gorna_granica
)
AND
id_przedzi
alu
in
(
1
,
2
);
86
87
88
***
Selekcja danych
***
89 Ciag znaków
:
'xyz'
90
Alias
:
"xyz"
,
" "
91 Laczenie ciagów znaków
: ||
92 Laczenie pól
: ,
93
94
SELECT
'Pracownik '
||
imie
as
Zarobki
,
nazwisko
||
' jest zatrudniony na stanowisku '
||
stanowisko
as
Zarobki
95
FROM
Pracownik
,
Pracownik_personalia
;
96
SELECT
'Pracownik '
||
imie
as
" "
,
nazwisko
||
' jest zatrudniony na stanowisku '
||
stanowisko
as
" "
97
FROM
Pracownik
,
Pracownik_personalia
;
98
SELECT DISTINCT
'Pracownik '
||
CONCAT
(
UPPER
(
imie
),
CONCAT
(
' '
,
UPPER
(
nazwisko
))) ||
' jest zatrudniony na stanow
isku '
||
INITCAP
(
stanowisko
) ||
'.'
as
" "
99
FROM
Pracownik
,
Pracownik_personalia
;
100
SELECT DISTINCT
'Pracownik '
||
imie
as
" "
,
nazwisko
||
' pracuje w dziale '
||
SUBSTR
(
UPPER
(
REPLACE
(
nazwa
,
'
Ksiegowosc'
,
'ksig'
)),
0
,
4
) ||
'.'
as
" "
101
FROM
Pracownik_personalia
,
Pracownik PR
,
Dzial DZ
102
WHERE
PR
.
id_dzialu
=
DZ
.
id_dzialu
;
103
SELECT DISTINCT
imie
as
"Imie"
,
nazwisko
as
"Nazwisko"
104
FROM
Pracownik_personalia PR
105
ORDER BY
Length
(
PR
.
nazwisko
);
106
SELECT DISTINCT
imie
,
nazwisko
,
pensja
,
data_zatrudnienia
,
nazwa
as
"Nazwa dzialu"
107
FROM
Pracownik_personalia PPR
,
Pracownik PR
,
Dzial DZ
108
WHERE
PR
.
id_dzialu
=
DZ
.
id_dzialu
and
PPR
.
nazwisko
=
INITCAP
(
LOWER
(
'Wojtowicz'
));
109
SELECT DISTINCT
imie
,
nazwisko
,
pensja
,
data_zatrudnienia
,
nazwa
as
"Nazwa dzialu"
110
FROM
Pracownik_personalia PPR
,
Pracownik PR
,
Dzial DZ
111
WHERE
PR
.
id_dzialu
=
DZ
.
id_dzialu
and
PPR
.
nazwisko
=
INITCAP
(
LOWER
(
'&Podaj_nazwisko'
));
112
SELECT DISTINCT
nazwisko
,
imie
,
TO_CHAR
(
data_zatrudnienia
,
'DAY'
)
113
FROM
Pracownik PR
,
Pracownik_personalia PPR
114
WHERE
PR
.
id_pracownika
=
PPR
.
id_pracownika
115
ORDER BY
nazwisko
;
116
117
- 3 -
/home/darek/Dropbox/d/BD/sqlplus.sql
Strona 4 z 5
pon, 5 lis 2012, 22:26:18
118
SELECT DISTINCT
nazwisko
,
imie
,
TO_CHAR
(
data_zatrudnienia
,
'DD MONTH YYYY HH24:MI:SS'
)
119
FROM
Pracownik PR
,
Pracownik_personalia PPR
120
WHERE
PR
.
id_pracownika
=
PPR
.
id_pracownika
121
ORDER BY
nazwisko
;
122
SELECT
imie
,
nazwisko
,
nip
123
FROM
Pracownik_personalia
124
WHERE
SUBSTR
(
nip
,
0
,
2
)=
15
;
125
SELECT
P1
.
id_pracownika
as
"idPrac"
,
P2
.
id_przelozonego
as
"idPrzel"
,
P1
.
data_zatrudnienia
-
P2
.
data_zatrudnieni
a
as
"roznDat"
126
FROM
Pracownik P1
,
Pracownik P2
127
WHERE
P1
.
id_przelozonego
=
P2
.
id_pracownika
;
128
SELECT
P1
.
id_pracownika
as
"idPrac"
,
P2
.
id_przelozonego
as
"idPrzel"
,
FLOOR
(
MONTHS_BETWEEN
(
P1
.
data_zatrudnieni
a
,
P2
.
data_zatrudnienia
))
as
"roznDat"
129
FROM
Pracownik P1
,
Pracownik P2
130
WHERE
P1
.
id_przelozonego
=
P2
.
id_pracownika
;
131
SELECT
P1
.
id_pracownika
as
"idPrac"
,
P2
.
id_przelozonego
as
"idPrzel"
,
FLOOR
(
MONTHS_BETWEEN
(
P1
.
data_zatrudnieni
a
,
P2
.
data_zatrudnienia
)/
12
)
as
"roznDat"
132
FROM
Pracownik P1
,
Pracownik P2
133
WHERE
P1
.
id_przelozonego
=
P2
.
id_pracownika
;
134
SELECT
P1
.
id_pracownika
as
"idPrac"
,
P2
.
id_przelozonego
as
"idPrzel"
,
ROUND
(
MONTHS_BETWEEN
(
P1
.
data_zatrudnieni
a
,
P2
.
data_zatrudnienia
)/
12
,
2
)
as
"roznDat"
135
FROM
Pracownik P1
,
Pracownik P2
136
WHERE
P1
.
id_przelozonego
=
P2
.
id_pracownika
;
137
SELECT
M1
.
nazwisko
as
"idPrac"
,
M2
.
nazwisko
as
"idPrzel"
,
ROUND
(
MONTHS_BETWEEN
(
P1
.
data_zatrudnienia
,
P2
.
data_z
atrudnienia
)/
12
,
2
)
as
"roznDat"
138
FROM
Pracownik P1
,
Pracownik P2
,
Pracownik_personalia M1
,
Pracownik_personalia M2
139
WHERE
P1
.
id_przelozonego
=
P2
.
id_pracownika
and
M1
.
id_pracownika
=
P1
.
id_pracownika
and
M2
.
id_pracownika
=
P2
.
id_
pracownika
;
140
141
*** ***
142
143 wstawienie do tabeli uzupelnien
144
INSERT INTO
autor1_s
VALUES
(
1
,
'ADAM'
,
'MICKIEWICZ'
);
145
INSERT INTO
autor1_s
VALUES
(
2
,
'Hendryk'
,
'Sienkiewicz'
);
146
INSERT INTO
ksiazka_s
VALUES
(
1
,
'Potop'
,
53.50
,
24
);
147
INSERT INTO
ksiazka_s
VALUES
(
2
,
'Pan Tadeusz'
,
NULL
,
10
);
148
INSERT INTO
ksiazka_s
VALUES
(
3
,
'Trylogia'
,
1150.00
,
15
);
149
INSERT INTO
ksiazka_s
VALUES
(
4
,
'Ballady i romanse'
,
27.60
,
NULL
);
150
INSERT INTO
ksiazka_s
VALUES
(
5
,
'NULL'
,
15.90
,
30
);
151
INSERT INTO
ksiazka_op
VALUES
(
1
,
0123456789
,
'10/05/23'
,
'twarda'
);
152
INSERT INTO
ksiazka_op
VALUES
(
2
,
0123456788
,
'10/05/02'
,
'miekka'
);
- 4 -
/home/darek/Dropbox/d/BD/sqlplus.sql
Strona 5 z 5
pon, 5 lis 2012, 22:26:18
153
INSERT INTO
ksiazka_op
VALUES
(
3
,
0123456787
,
'09/01/12'
,
'skora'
);
154
INSERT INTO
ksiazka_op
VALUES
(
4
,
NULL
,
'07/03/12'
,
NULL
);
155
INSERT INTO
ksiazka_op
VALUES
(
5
,
0123456786
,
NULL
,
'twarda'
);
156
INSERT INTO
autor_ks
VALUES
(
1
,
3
);
157
INSERT INTO
autor_ks
VALUES
(
1
,
5
);
158
INSERT INTO
autor_ks
VALUES
(
2
,
2
);
159
INSERT INTO
autor_ks
VALUES
(
2
,
4
);
160
INSERT INTO
autor_ks
VALUES
(
1
,
1
);
161
INSERT INTO
autor_ks
VALUES
(
2
,
1
);
162
INSERT INTO
ksiazka_sz
VALUES
(
3
,
1010101010
,
default
,
'miekka'
); //
default
doda wartosæ domyslna jesli tak
a ustalona
163
INSERT INTO
ksiazka_sz
(
idk
,
oprawa
,
isbn
)
VALUES
(
4
,
'miekka'
,
9876543210
); //
w miejsce daty wydania wstawi w
artosc domyslna oraz idk
,
oprawa
,
isbn
164
INSERT INTO
ksiazka_sz
VALUES
(
3
,
1010101010
,
'88-12-02'
,
'twarda'
);
165
166 usuwanie wierszy
167
DELETE FROM
ksiazka_szczeguly_s
WHERE
id
=
2
OR
id
=
3
;
168
169 sprawdzenie zawartosci tabeli
170
select
*
FROM
autor1_s
;
171
172 usuwanie tabel
173
DROP TABLE
autor
;
174
175 aktualizowanie danych
176
UPDATE
ksiazka_s
SET
CENA
=((
CENA
*
0
,
1
)+
CENA
);
177
UPDATE
ksiazka_s
SET
liczba_egzemplarzy
=
20
WHERE
idk
=
5
; //
aktualizowanie KONKRETNEGO REKORDU
178
select
CENA
, ((
CENA
*
0.1
)+
CENA
)
FROM
ksiazka_s
;
179
180 wczytywanie komend z pliku
181 @
data
\Struktura
.
sql
182 @C
:
\Struktura
.
sql
;
183
- 5 -
Plik z chomika:
mikdor
Inne pliki z tego folderu:
sqlplusNowy.txt
(10 KB)
sqlplus_commands.sql
(8 KB)
sqlplus2.sql
(3 KB)
sqlplus1.sql
(8 KB)
sqlplus.txt
(14 KB)
Inne foldery tego chomika:
Algorytmy i Struktury Danych
Architektura Komputerów
Assembler
C obiektowo
Dyskretna
Zgłoś jeśli
naruszono regulamin