Panduan Lengkap RDBMS: DDL, DML, DCL
Panduan Lengkap RDBMS: DDL, DML, DCL
Latihan 1:
Title of the Exercise : DATA DEFINITION LANGUAGE (DDL)
PERINTAH
Q1. Buatlah tabel bernama EMP dengan struktur berikut.
Name Type
---------- ----------------------
NOMOR EMPNO (6)
ENAME VARCHAR2(20)
JOB VARCHAR2(10)
DEPTNO ANGKA(3)
SAL NOMOR(7,2)
Izinkan NULL untuk semua kolom kecuali ename dan pekerjaan.
Jawaban:
(empno number(6),
ename varchar2(20)tidak boleh null,
deptno number(3),
);
Q2: Tambahkan kolom pengalaman ke tabel emp. pengalaman numerik
null diizinkan.
Jawaban:
SQL> ubah tabel emp tambah(pengalaman nomor(2));
Q3: Perbarui tabel emp untuk mengatur gaji semua karyawan menjadi
Rs15000/- yang bekerja sebagai ASP.
Jawaban:
SQL> perbarui emp set sal=15000 dimana pekerjaan='ASP';
Keluaran:
Q5: pilih nama karyawan, pekerjaan dari tabel emp.
Jawaban:
SQL> select ename, job from emp;
Output:
Output:
Output:
Q9: Tampilkan hanya karyawan yang deptno-nya 30.
Pilih * dari emp di mana deptno=1;
Output:
Q1: Kembangkan kueri untuk memberikan semua hak istimewa tabel karyawan
ke tabel departemen.
Ans:SQL> Berikan semua hak pada pegawai kepada departemen;
Output:
Q6: Tulis sebuah kueri untuk menerapkan rollback
Ans:SQL> batalkan s1;
Q6: Tulis kueri untuk melaksanakan komit
Jawab: SQL> KOMIT;
Exercise Number: 4
Title of the Exercise : IN BUILT FUNCTIONS.
Output:
Q2: Tampilkan semua detail dari catatan yang karyawannya
nama tidak dimulai dengan 'A'.
Ans:SQL> pilih * dari emp di mana ename tidak seperti 'A%';
Output:
Output:
Output:
Exercise Number: 5
Title of the Exercise : NESTED QUERIES AND JOIN
PERTANYAAN.
Q1: Tampilkan semua nama karyawan dan gaji yang gajinya adalah
lebih besar dari gaji minimum perusahaan dan jabatan
dimulai dengan 'M'.
Output:
Q2: Buatlah query untuk menemukan semua karyawan yang bekerja di
pekerjaan yang sama seperti Arjun.
Jawaban: pilih ename dari emp di mana job=(pilih job dari emp
dimana ename='Arjun');
Output:
Output:
Q6: Tampilkan nama dan nilai Siswa dengan mengimplementasikan sebuah
gabungan luar kiri.
Jawab: SQL> pilih [Link], gpa dari stud1 bergabung luar kiri
stud2 pada [Link]=[Link];
Output:
Tampilkan nama Siswa, nomor pendaftaran, dan hasil dengan
mengimplementasikan right outer join.
Jawaban: SQL> pilih nama yang berbeda dari emp x, dept y di mana
x.dept_no=y.dept_no;
Output:
Keluaran:
Exercise Number: 6
Title of the Exercise : SET OPERATORS.
Q1: Tampilkan semua nomor departemen yang tersedia dengan departemen dan
tabel emp menghindari duplikasi.
Ans:SQL> pilih dept_no dari emp union pilih dept_no dari
dept;
Output:
Q3: Tampilkan semua nomor departemen yang tersedia di emp dan tidak ada di
tabel departemen dan sebaliknya.
Output:
Output:
Exercise Number: 8
Title of the Exercise : CONTROL STRUCTURE.
Q1: tulis program pl/sql untuk menukar dua angka.
Jawaban:
Set serveroutput on;
menyatakan
sebuah nomor (10);
b nomor(10);
c angka(10);
mulai
dbms_output.put_line(a);
dbms_output.put_line(b);
a:=&a;
b:=&b;
c:=a;
a:=b;
b:=c;
dbms_output.put_line(a);
dbms_output.put_line(b);
akhir;
Output:
Q2: Tulis program pl/sql untuk menemukan yang terbesar dari tiga
angka.
Jawaban:
Atur output server aktif;
nyatakan
sebuah angka;
b angka;
c nomor;
mulai
a:=&a;
b:=&b;
c:=&c;
lainnya
dbms_output.put_line('yang terbesar adalah :' ||to_char(c));
akhir jika;
lain
akhir jika;
akhir;
Output:
Q3: tulis program pl/sql untuk menemukan total dan rata-rata dari 6
mata pelajaran dan tampilkan nilainya.
Jawaban:
Atur output server aktif;
nyatakan
angka java(10);
dbms angka(10);
nomor co(10);
se number(10);
es nomor(10);
jumlah total(10);
rata-rata jumlah(10);
per nomor(10);
mulai
dbms_output.put_line('MASUKKAN NILAI');
java:=&java;
dbms:=&dbms;
co:=&co;
se:=&se;
es:=&es;
ppl:=&ppl;
total:=(java+dbms+co+se+es+ppl);
per:=(total/600)*100;
jika java<50 atau dbms<50 atau co<50 atau se<50 atau es<50 atau ppl<50 maka
dbms_output.put_line('GAGAL');
dbms_output.put_line('GOLONGAN B');
dbms_output.put_line('GRAFT C');
lainnya
akhir jika;
akhir;
Output:
Q4: Tulis program pl/sql untuk menemukan jumlah digit dalam sebuah nomor.
nomor.
Jawaban:
Set serveroutput on;
nyatakan
sebuah angka
d number:=0;
jumlah1 angka:=0;
mulai
a:=&a;
while a>0
loop
d:=mod(a,10);
sum1:=sum1+d;
a:=trunc(a/10);
akhir loop;
akhir;
Output:
Q5: tulis program pl/sql untuk menampilkan angka dalam urutan terbalik
perintah.
Ans:
Atur output server aktif;
deklarasikan
sebuah angka
rev number;
d angka;
awal
a:=&a;
rev:=0;
selama a>0
loop
d:=mod(a,10);
rev:=(rev*10)+d;
a:=trunc(a/10);
akhir loop;
akhir;
Output:
Q6: Tulis program PL/SQL untuk memeriksa apakah yang diberikan
angka tersebut adalah bilangan prima atau tidak.
Jawaban:
Set serveroutput on;
menyatakan
mulai
a:=&a;
untuk i dalam 1..a
loop
akhir loop;
lainnya
akhir;
Output:
Q7: Tulis program PL/SQL untuk mencari faktorial dari sebuah angka
nomor.
Jawaban:
Atur output server on;
nyatakan
n angka;f angka:=1;
mulai
n:=&n;
untuk i dalam 1..n
loop
f:=f*i;
akhir loop;
akhir;
Output:
Q8: tulis blok kode pl/sql untuk menghitung luas lingkaran
untuk nilai jari-jari yang bervariasi dari 3 hingga 7. Simpan jari-jari dan
nilai yang sesuai dari luas yang dihitung dalam sebuah kosong
tabel bernama area, yang terdiri dari dua kolom radius & area.
Jawaban:
SQL> buat tabel area
(jari-jari angka(10),
area nomor(6,2));
menyatakan
konstanta pi (4,2):=3.14;
mulai
sementara jari-jari < 7
loop
area:=pi*power(radius,2);
radius:=radius+1;
akhir loop;
akhir;
Output:
Q9: tuliskan blok kode PL/SQL yang akan menerima sebuah akun
nomor dari pengguna, periksa apakah saldo pengguna kurang dari
saldo minimum, hanya kemudian potong rs.100/- dari
proses ini diaktifkan pada tabel acct.
Jawaban:
buat tabel acct(nama varchar2(10), saldo_cur
nomor(10), noakun nomor(10));
masukkan ke dalam stud nilai('&sname',&rollno,&marks);
akhir;
Exercise Number: 9
Judul Latihan: PROSEDUR DAN FUNGSI.
Q1: Tulis prosedur untuk menghitung total untuk semua
mahasiswa dan lewat nomor registrasi, mark1, & mark2 sebagai argumen.
Jawaban:
buat tabel itstudent2(regno angka(3),
nama varchar(9)
mark1 nomor(3),
mark2 angka(3));
tot nomor(5);
awal
tot:=mark1+mark2;
perbarui itstudent2 set total=tot dimana regno=sno;
akhir;
nyatakan
mulai
buka c1;
loop
p1([Link],rec.mark1,rec.mark2);
akhir loop;
tutup c1;
akhir;
Output:
Q2: Tulis sebuah prosedur PL/SQL yang disebut MULTI_TABLE yang mengambil
dua angka sebagai parameter dan menampilkan hasil perkalian
parameter pertama sampai parameter kedua.
Jawaban:
aktifkan output server;
Nomor mul;
MULAI
untuk i dalam 1..b
LOOP
Mul:=a*i;
AKHIR LOOP;
AKHIR;
mulai
MULTI_TABLE(3,10);
akhir;
Output:
Q3: Pertimbangkan Tabel KARYAWAN (EMPNO, GAJI, NAMA)
Tulis prosedur raise_sal yang meningkatkan gaji seorang
karyawan. Ini menerima nomor karyawan dan kenaikan gaji
jumlah. Ini menggunakan nomor karyawan untuk mencari saat ini
gaji dari tabel KARYAWAN dan perbarui gaji.
Jawaban:
buat tabel karyawan
(
ename varchar(10)
empno int,
salary int
);
Sebagai
MULAI
perbarui karyawan
atur gaji=gaji+peningkatan_gaji di mana roll=nomor_karyawan;
dbms_output.put_line('Pembaruan Selesai');
SELESAI;
mulai
naik_gaji(1,320);
akhir;
Output:
Q4: Tulis fungsi PL/SQL CheckDiv yang mengambil dua angka
sebagai argumen dan mengembalikan nilai 1 jika argumen pertama
diberikan padanya dapat dibagi oleh argumen kedua, jika tidak akan
kembalikan nilai 0;
Jawaban:
buat atau ganti fungsi checkdiv (n1 angka, n2 angka)
kembalikan nomor
res number;
mulai
maka res := 1;
selain itu res := 0;
akhir jika;
kembalikan res;
akhir;
Output:
Q5: Tulis fungsi PL/SQL yang disebut POW yang menerima dua
angka sebagai argumen dan mengembalikan nilai dari angka pertama
ditinggikan ke pangkat kedua.
Jawaban:
BUAT ATAU GANTI FUNGSI POW(N1 angka,N2 angka)
kembalikan nomor
adalah
result number;
MULAI
kembalikan hasil;
AKHIR;
MENYATAKAN
x angka;
Mulai
x:=POW(4,2);
dbms_output.put_line(x);
AKHIR;
Output:
Q6: Tulis fungsi PL/SQL ODDEVEN untuk mengembalikan nilai TRUE jika
angka yang diberikan adalah GENAP jika tidak akan mengembalikan FALSE.
Jawaban:
buat atau ganti fungsi ODDEVEN(M angka)
mengembalikan varchar2
adalah
s varchar2(10);
mulai
jika MOD (M, 2) = 0 MAKA
kembali 'BENAR';
lainnya
kembali 'SALAH';
akhir jika;
akhir;
/
aktifkan keluaran server;
nyatakan
x varchar2(10);
mulai
x:=ODDEVEN(3);
dbms_output.put_line(x);
akhir;
Output:
Exercise Number: 10
Title of the Exercise : TRIGGER
Q1: Buat pemicu yang menyisipkan pengguna saat ini ke dalam nama pengguna
kolom dari tabel yang ada.
Jawaban:
buat tabel itstudent4(nama varchar2(15), username varchar2(15));
mendeklarasikan
nama varchar2(20);
mulai
:[Link]:=name;
akhir;
Output:
Q2: Buat Trigger Sederhana yang tidak mengizinkan Insert Update
dan Operasi Hapus pada Tabel.
Jawaban:
buat tabel itempls
(ename varchar(10),
eid int,
gaji int
);
masukkan ke dalam itempls nilai ('&ename', &eid, &salary);
buat pemicu ittrigg sebelum menyisipkan atau memperbarui atau menghapus pada
itempls untuk setiap baris
mulai
raise_application_error(-20010,'You cannot do manipulation');
akhir;
/
Output:
Q3: Buat Trigger yang memunculkan Pesan Kesalahan yang Ditetapkan oleh Pengguna
dan tidak mengizinkan pembaruan dan penyisipan.
Jawaban:
buat pemicu ittriggs sebelum sisip atau perbarui gaji di itempls untuk setiap baris
mengumumkan
triggsal [Link]%type;
mulai
akhir;
Output:
Q4: buat kueri untuk Menghapus Trigger yang Dibuat
Hapus pemicu ittrigg;
Output: