Rumah > Artikel > tutorial komputer > Berlatih soalan pangkalan data ORACLE
Gunakan jadual emp di bawah pengguna scott/tiger untuk melengkapkan latihan berikut Struktur jadual diterangkan seperti berikut
Kandungan medan meja pekerja emp adalah seperti berikut:
empno nombor pekerja
menamakan nama pekerja
kerja kerja
mgr nombor unggul
hiredate Tarikh diupah
gaji sal
komisen comm
nombor jabatan deptno
1.Pilih semua pekerja di jabatan 30.
2 Senaraikan nama, nombor dan nombor jabatan semua kerani (KERANI).
3 Cari pekerja yang komisennya lebih tinggi daripada gaji.
4. Cari pekerja yang komisennya melebihi 60% daripada gaji mereka.
5 Ketahui maklumat terperinci semua pengurus (PENGURUS) di jabatan 10 dan semua kerani (KERANI) di jabatan 20.
.6 Dapatkan maklumat terperinci semua pengurus (PENGURUS) di jabatan 10, semua kerani (KERANI) di jabatan 20, dan semua pekerja yang bukan pengurus mahupun kerani tetapi gajinya melebihi atau sama dengan 2000.
7 Ketahui pekerjaan berbeza pekerja berasaskan komisen.
8 Cari pekerja yang tidak mengenakan komisen atau mengenakan komisen kurang daripada 100.
9 Cari semua pekerja yang bekerja pada hari ke-3 hingga terakhir setiap bulan.
10. Cari pekerja yang diambil bekerja lebih awal daripada 12 tahun lalu.
11. Paparkan nama semua pekerja dengan huruf besar awal.
12. Paparkan nama pekerja dengan tepat 5 aksara.
13.Paparkan nama pekerja tanpa "R".
14. Paparkan tiga aksara pertama nama semua pekerja.
15 Paparkan nama semua pekerja, gantikan semua "A" dengan
16. Paparkan nama dan tarikh penggajian pekerja dengan 10 tahun perkhidmatan.
17. Paparkan butiran pekerja, disusun mengikut nama.
18 Paparkan nama dan tarikh pekerjaan pekerja, letakkan pekerja tertua dahulu berdasarkan tahun perkhidmatan mereka.
.19 Paparkan nama, pekerjaan dan gaji semua pekerja, disusun mengikut pekerjaan dalam susunan menurun, atau mengikut gaji jika pekerjaan adalah sama.
20 Paparkan nama semua pekerja, tahun dan bulan mereka menyertai syarikat, disusun mengikut bulan tarikh pekerjaan, jika bulan sama, pekerja yang mempunyai tahun terawal akan disusun dahulu.
21 Paparkan gaji harian semua pekerja apabila sebulan 30 hari, abaikan bakinya.
22 Cari semua pekerja yang diambil bekerja pada bulan Februari (mana-mana tahun).
23.Bagi setiap pekerja, tunjukkan bilangan hari sejak dia menyertai syarikat.
24 Paparkan nama semua pekerja yang mana ruangan namanya mengandungi "A" di mana-mana sahaja.
25 Memaparkan tahun perkhidmatan semua pekerja dalam bentuk tahun, bulan dan hari (Anggaran)
(1) pilih deptno dari dept mana depptno masuk (pilih deptno daripada em);
(2)pilih empno,ename,sal from em where sal>(pilih sal from em where ename = 'SMITH');
(3)PILIH e.ename,d.dname daripada em e,dept d where e.deptno=d.deptno dan e.job = 'CLERK';
(4)pilih empno, namakan daripada em tempat kerja (pilih kerja daripada em mana ename = 'SCOTT') ;
(5)pilih kerja,min(sal) daripada kumpulan mereka mengikut kerja;
(6)pilih d.dname ,min(e.sal) daripada jabatan d,em e
di mana d.deptno=e.deptno dan e.job ='MANAGER' kumpulan mengikut d.dname;
7.pilih nama pekerja, gaji dari jadual tempat gaji 8.pilih nama pekerja, gaji dari jadual gaji>avg (gaji) mengikut jawatan
9 Contoh: Bilangan lajur n dalam t1 ialah [2,3];
pilih * daripada t2 di mana n >mana-mana(pilih n daripada t1);Nota: Tanya nombor dalam lajur n dalam jadual t2 adalah nombor terbesar [termasuk maks] daripada nombor dalam lajur n dalam jadual t1.
pilih * daripada t2 di mana n = mana-mana(pilih n daripada t1);
pilih * daripada t2 di mana n 10.pilih * daripada t2 di mana n >semua(pilih n daripada t1);pilih * dari t2 di mana n 12.PILIH nama_lajur DARI nama_jadual1 KESATUAN PILIH nama_lajur DARI nama_jadual2; cantumkan jadual_nama1 dan nama_jadual2 tanpa lajur pendua.
PILIH nama_lajur DARI nama_jadual1 KESATUAN SEMUA PILIH nama_lajur DARI nama_jadual2. Sambungkan semua data dalam kedua-dua jadual table_name1 dan table_name2, dan terdapat pendua.
Penyelesaian soalan prosedur tersimpan oracle
BUAT JADUAL SC(
CNO varchar(10),
GRED INT
);
MASUKKAN KE DALAM NILAI SC(95001, 'Math', 75);
MASUKKAN KE DALAM NILAI SC(95001, '中文', 92);
MASUKKAN KE DALAM NILAI SC(95002, 'Bahasa Inggeris', 64);
MASUKKAN KE DALAM NILAI SC(95002, 'Bahasa Inggeris', 77);
MASUKKAN KE DALAM NILAI SC(95003, 'Math', 85);
BUAT JADUAL SC_TOTAL(
KUNCI UTAMA SNO INT,
"Matematik" nombor(5,2),
"Cina" nombor(5,2),
"Bahasa Inggeris" nombor(5,2),
Nombor "Purata markah"(5,2)
);
ISYTIHAR
v_row_count INT;
MULA
UNTUK sc_rec IN (PILIH * DARI SC)
LOOP
-- Tentukan sama ada data tersedia
PILIH COUNT(*) KE DALAM v_row_count
DARI SC_TOTAL
WHERE SNO = sc_rec.SNO;
JIKA v_row_count = 0 MAKA
--Data tak wujud dulu.
MASUKKAN KE DALAM NILAI SC_TOTAL(SNO) (sc_rec.SNO);
TAMAT JIKA;
-- Berdasarkan kursus, kemas kini lajur tertentu.
JIKA sc_rec.CNO = 'Matematik' MAKA
KEMASKINI SC_JUMLAH SET "MATEMATIK" = sc_rec.GRED MANA SNO = sc_rec.SNO;
ELSIF sc_rec.CNO = 'Cina' MAKA
KEMASKINI SC_TOTAL SET "中文" = sc_rec.GRED MANA SNO = sc_rec.SNO;
ELSIF sc_rec.CNO = 'Bahasa Inggeris' MAKA
KEMASKINI SC_TOTAL SET "Bahasa Inggeris" = sc_rec.GRED MANA SNO = sc_rec.SNO;
TAMAT JIKA;
-- Kira purata markah.
KEMASKINI SC_TOTAL
SET "Skor purata" = (NVL ("Matematik", 0) + NVL ("Bahasa Cina", 0) + NVL ("Bahasa Inggeris", 0))
/ (NVL2("Matematik",1,0) + NVL2("Cina",1,0) + NVL2("Bahasa Inggeris",1,0))
WHERE SNO = sc_rec.SNO;
GULUNG TAMAT;
TAMAT;
/
-- Pengesahan data.
SQL>PILIH * DARI SC_TOTAL;
Skor Purata SNO Matematik Cina Bahasa Inggeris
---------- ---------- ---------- ---------- --------- -
95001 75 92 83.5
95002 77 77
95003 85 85
Atas ialah kandungan terperinci Berlatih soalan pangkalan data ORACLE. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!