├── dbms_out ├── files ├── trigger3 ├── cursor │ ├── cursor2.sql │ ├── out_table_last.sql │ ├── cursor1.sql │ └── cursor3.sql ├── trigger2 ├── trigger5 ├── trigger4 ├── package.sql ├── expt9out ├── view.sql ├── Expt_6_BuiltIntxt.txt ├── tcl command.sql ├── dcl command.sql ├── expt7 ├── expt5 └── expt8 grpby havin ├── images ├── syllabus ├── WhatsApp Image 2023-01-04 at 20.03.54.jpeg └── WhatsApp Image 2023-01-04 at 20.03.54 (1).jpeg ├── Expt No 1.pdf ├── PLSQL ├── additionplsql.sql ├── functionPl.sql ├── arrayEx.sql ├── caseUse.sql ├── trigger2.sql ├── largestAmongTwo.sql ├── trigger3.sql ├── sortingPl.sql ├── loopSql.sql ├── Expt_10_stud.sql ├── trigger5.sql ├── sqlop.sql └── trigger4.sql ├── factorial.sql ├── lab4.sql ├── Mock_test ├── triggerEmployee.sql └── cursorEmployee.sql ├── binarysearch.sql ├── employeelab3.sql ├── Expt_9_actor.sql ├── Expt_5_student.sql ├── Expt_7_Aggreate.sql ├── Expt_6_BuiltIn.sql ├── README.md ├── Employee.sql ├── student.sql └── Expt_8_grpby_orderby.sql /dbms_out/files: -------------------------------------------------------------------------------- 1 | OThers 2 | -------------------------------------------------------------------------------- /images/syllabus: -------------------------------------------------------------------------------- 1 | This folder has our syllabus 2 | -------------------------------------------------------------------------------- /Expt No 1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaulThomas20002/S5-DATABASE-MANAGEMENT-SYSTEMS-LAB/HEAD/Expt No 1.pdf -------------------------------------------------------------------------------- /images/WhatsApp Image 2023-01-04 at 20.03.54.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaulThomas20002/S5-DATABASE-MANAGEMENT-SYSTEMS-LAB/HEAD/images/WhatsApp Image 2023-01-04 at 20.03.54.jpeg -------------------------------------------------------------------------------- /images/WhatsApp Image 2023-01-04 at 20.03.54 (1).jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaulThomas20002/S5-DATABASE-MANAGEMENT-SYSTEMS-LAB/HEAD/images/WhatsApp Image 2023-01-04 at 20.03.54 (1).jpeg -------------------------------------------------------------------------------- /PLSQL/additionplsql.sql: -------------------------------------------------------------------------------- 1 | /* addition of two numbers */ 2 | DECLARE 3 | a integer := &a; 4 | b integer := &b; 5 | res int; 6 | BEGIN 7 | res := a + b; 8 | dbms_output.put_line('result = ' || res); 9 | END; 10 | -------------------------------------------------------------------------------- /factorial.sql: -------------------------------------------------------------------------------- 1 | DECLARE 2 | n number := 5; 3 | f number := 1; 4 | BEGIN 5 | WHILE N > 0 LOOP 6 | f := f * n; 7 | n := n-1; 8 | END LOOP; 9 | dbms_output.put_line('factorial is: '|| f ); 10 | END; 11 | -------------------------------------------------------------------------------- /dbms_out/trigger3: -------------------------------------------------------------------------------- 1 | SQL> @trigger3 2 | Table dropped. 3 | Table created. 4 | 1 row created. 5 | Trigger created. 6 | SQL> insert into Student values(103, 'Alice', 'Address2'); 7 | insert into Student values(103, 'Alice', 'Address2') 8 | * 9 | ERROR at line 1: 10 | ORA-20000: Cannot insert record on weekdays 11 | ORA-06512: at "SYSTEM.TRIGGER3", line 4 12 | ORA-04088: error during execution of trigger 'SYSTEM.TRIGGER3' 13 | SQL> -------------------------------------------------------------------------------- /lab4.sql: -------------------------------------------------------------------------------- 1 | use dbms_exp; 2 | create table Student( 3 | stud_id INT PRIMARY KEY, 4 | stud_fname VARCHAR(20), 5 | stud_lname VARCHAR(20), 6 | stud_email VARCHAR(20), 7 | stud_ph VARCHAR(10)); 8 | 9 | show tables; 10 | 11 | select * from Student; 12 | 13 | LOAD DATA INFILE '/var/lib/mysql-files/student.csv' INTO TABLE Student FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; 14 | 15 | select * from Student; 16 | -------------------------------------------------------------------------------- /PLSQL/functionPl.sql: -------------------------------------------------------------------------------- 1 | /* Use of function in pl/sql */ 2 | /* Program - findMax value*/ 3 | DECLARE 4 | a int; 5 | b int; 6 | c number; 7 | FUNCTION findMax(x int, y int) 8 | RETURN int 9 | IS 10 | z int; 11 | BEGIN 12 | IF x > y THEN 13 | z:= x; 14 | ELSE 15 | Z:= y; 16 | END IF; 17 | RETURN z; 18 | END; 19 | 20 | BEGIN 21 | a := &a; 22 | b := &b; 23 | 24 | c := findMax(a, b); 25 | dbms_output.put_line(' Maximum of (' || a ||',' ||b || '): ' || c); 26 | END; 27 | -------------------------------------------------------------------------------- /Mock_test/triggerEmployee.sql: -------------------------------------------------------------------------------- 1 | drop trigger triggerem; 2 | CREATE TRIGGER triggerem 3 | BEFORE INSERT OR UPDATE OF salary ON em 4 | FOR EACH ROW 5 | DECLARE 6 | old_sal integer; 7 | BEGIN 8 | old_sal := :old.salary; 9 | dbms_output.put_line(old_sal); 10 | IF (:new.salary <= old_sal ) 11 | THEN 12 | dbms_output.put_line('Error..! Salary must be greater than old salary'); 13 | rollback; 14 | END IF; 15 | END; 16 | / 17 | 18 | update em set salary = 19 where id = 101; 19 | select * from em; 20 | -------------------------------------------------------------------------------- /PLSQL/arrayEx.sql: -------------------------------------------------------------------------------- 1 | /* use of array*/ 2 | /* index starts with 1 .. not 0 */ 3 | DECLARE 4 | type intArray IS VARRAY(10) OF INTEGER; 5 | type namesArray IS VARRAY(5) OF VARCHAR2(5); 6 | 7 | arr intArray; 8 | names namesArray; 9 | i integer; 10 | 11 | BEGIN 12 | arr := intArray(1,5,2,3,6,7,4,8,9,10); 13 | names := namesArray('Alice', 'Bob', 'Cindy', 'Sam', 'Eric'); 14 | dbms_output.put_line('Integer array'); 15 | --dbms_output.put_line('arr[0]' || arr(0)); 16 | dbms_output.put_line('arr[1]' || arr(1)); 17 | dbms_output.put_line('arr[2]' || arr(2)); 18 | dbms_output.put_line('arr[3]' || arr(3)); 19 | END; 20 | -------------------------------------------------------------------------------- /PLSQL/caseUse.sql: -------------------------------------------------------------------------------- 1 | /* Case statement */ 2 | /* 3 | Grading ..! 4 | A- > print "Excellent" 5 | B- > print "Very good" 6 | C- > print "Well done" 7 | D- > print "You passed" 8 | F- > print "Better try again" 9 | others - "No such grade" 10 | */ 11 | DECLARE 12 | c char(1) := '&c'; 13 | BEGIN 14 | case c 15 | when 'A' then dbms_output.put_line('Excellent'); 16 | when 'B' then dbms_output.put_line('Very good'); 17 | when 'C' then dbms_output.put_line('Well done'); 18 | when 'D' then dbms_output.put_line('You passed'); 19 | when 'F' then dbms_output.put_line('Better try again'); 20 | else dbms_output.put_line('No such grade'); 21 | end case; 22 | END; 23 | -------------------------------------------------------------------------------- /dbms_out/cursor/cursor2.sql: -------------------------------------------------------------------------------- 1 | EMPLOYEE ID:10 2 | EMPLOYEE NAME:Skove 3 | SALARY:100000 4 | ********************* 5 | EMPLOYEE ID:9 6 | EMPLOYEE NAME:Timo 7 | SALARY:90000 8 | ********************* 9 | EMPLOYEE ID:8 10 | EMPLOYEE NAME:Sari 11 | SALARY:80000 12 | ********************* 13 | EMPLOYEE ID:7 14 | EMPLOYEE NAME:John 15 | SALARY:70000 16 | ********************* 17 | EMPLOYEE ID:6 18 | EMPLOYEE NAME:Tom 19 | SALARY:60000 20 | ********************* 21 | TOTAL SALARY:400000 22 | 23 | PL/SQL procedure successfully completed. 24 | 25 | 26 | 27 | /////// 28 | connect 29 | username : system 30 | password : password 31 | //eof / 32 | 33 | @cursor1 34 | -------------------------------------------------------------------------------- /PLSQL/trigger2.sql: -------------------------------------------------------------------------------- 1 | drop table Account; 2 | create table Account(id int primary key, name varchar(20), bal int); 3 | drop trigger trigger2; 4 | 5 | CREATE TRIGGER trigger2 6 | BEFORE INSERT ON Account 7 | FOR EACH ROW 8 | DECLARE 9 | min_bal integer := 0; 10 | BEGIN 11 | IF (:new.bal < min_bal ) THEN 12 | dbms_output.put_line('Error..! Balance cannot be less than zero'); 13 | raise_application_error(-20000, 'Balance cannot be less than zero'); 14 | END IF; 15 | END; 16 | 17 | insert into Account values(100, 'Alice', 200); 18 | insert into Account values(104, 'Bob', 500); 19 | 20 | select * from Account; 21 | insert into Account values(102, 'Cindy', -500); 22 | -------------------------------------------------------------------------------- /Mock_test/cursorEmployee.sql: -------------------------------------------------------------------------------- 1 | declare cursor cursor0 is 2 | select * from employee order by salary desc; 3 | e_id employee.id%type; 4 | e_name employee.name%type; 5 | e_age employee.age%type; 6 | e_salary employee.salary%type; 7 | 8 | begin 9 | 10 | open cursor0; 11 | for i in 1 .. 3 12 | loop 13 | fetch cursor0 into e_id,e_name, e_age, e_salary; 14 | 15 | exit when cursor0%notfound; 16 | dbms_output.put_line('Emp id : '|| e_id); 17 | dbms_output.put_line('Emp name : '|| e_name); 18 | dbms_output.put_line('Emp age : '|| e_age); 19 | dbms_output.put_line('Emp salary : '|| e_salary); 20 | end loop; 21 | close cursor0; 22 | end; 23 | / 24 | select * from employee; 25 | -------------------------------------------------------------------------------- /dbms_out/trigger2: -------------------------------------------------------------------------------- 1 | SQL> @trigger2 2 | Table dropped. 3 | Table created. 4 | Trigger created. 5 | SQL> insert into Account values(100, 'Alice', 200); 6 | 1 row created. 7 | SQL> insert into Account values(104, 'Bob', 500); 8 | 1 row created. 9 | SQL> select * from Account; 10 | 11 | ID NAME BAL 12 | ---------- -------------------- ---------- 13 | 100 Alice 200 14 | 104 Bob 500 15 | SQL> insert into Account values(102, 'Cindy', -500); 16 | insert into Account values(102, 'Cindy', -500) 17 | * 18 | ERROR at line 1: 19 | ORA-20000: Balance cannot be less than zero 20 | ORA-06512: at "SYSTEM.TRIGGER2", line 6 21 | ORA-04088: error during execution of trigger 'SYSTEM.TRIGGER2' 22 | SQL> -------------------------------------------------------------------------------- /PLSQL/largestAmongTwo.sql: -------------------------------------------------------------------------------- 1 | -- find the largest of two numbers 2 | DECLARE 3 | a integer := &a; 4 | b integer := &b; 5 | BEGIN 6 | 7 | if (a > b) then 8 | dbms_output.put_line(a || ' is the largest number'); 9 | else 10 | dbms_output.put_line(b || ' is the largest number'); 11 | end if; 12 | END; 13 | 14 | 15 | /* Use of if elsif ladder */ 16 | /* calculate the range of input number */ 17 | DECLARE 18 | c integer := &c; 19 | BEGIN 20 | if (c >= 0 and c < 10) then 21 | dbms_output.put_line(' is less than 10'); 22 | elsif (c >= 10 and c < 20) then 23 | dbms_output.put_line(' is less than 20'); 24 | elsif (c >= 20 and c < 30) then 25 | dbms_output.put_line(' is less than 30'); 26 | else 27 | dbms_output.put_line(' is grater than or equal 30'); 28 | end if; 29 | END; -------------------------------------------------------------------------------- /PLSQL/trigger3.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Test 2: 3 | Write a PL/SQL program to create a trigger before insert 4 | for each row and not allowing transaction on weekends. 5 | */ 6 | 7 | drop table Student; 8 | create table Student(Rollno int primary key, name varchar(20), address varchar(50)); 9 | insert into Student values(104, 'Bob', 'Address1'); 10 | 11 | drop trigger trigger3; 12 | CREATE OR REPLACE TRIGGER trigger3 13 | BEFORE INSERT ON Student 14 | REFERENCING NEW AS NEW OLD AS OLD 15 | FOR EACH ROW 16 | BEGIN 17 | IF TO_CHAR(SYSDATE, 'D') <> '7' THEN 18 | dbms_output.put_line('Error..! Cannot insert record on weekdays'); 19 | RAISE_APPLICATION_ERROR(-20000, 'Cannot insert record on weekdays'); 20 | END IF; 21 | END; 22 | 23 | insert into Student values(103, 'Alice', 'Address2'); 24 | -------------------------------------------------------------------------------- /dbms_out/trigger5: -------------------------------------------------------------------------------- 1 | SQL> @trigger5 2 | Table dropped. 3 | Table created. 4 | 1 row created. 5 | 1 row created. 6 | 1 row created. 7 | 1 row created. 8 | 1 row created. 9 | 10 | ID NAME AGE ADDRESS SAL 11 | ---------- ---------------- ---------- ---------------- ---------- 12 | 1 Alice 20 Address1 10000 13 | 2 Bob 30 Address2 20000 14 | 3 Cindy 40 Address3 30000 15 | 16 | ID NAME AGE ADDRESS SAL 17 | ---------- ---------------- ---------- ---------------- ---------- 18 | 4 Sam 50 Address4 40000 19 | 5 Eric 60 Address5 50000 20 | 21 | Warning: Trigger created with compilation errors. 22 | SQL> -------------------------------------------------------------------------------- /dbms_out/trigger4: -------------------------------------------------------------------------------- 1 | SQL> @trigger4 2 | Table dropped. 3 | Table dropped. 4 | Table dropped. 5 | Table created. 6 | Table created. 7 | Table created. 8 | 1 row created. 9 | 1 row created. 10 | 1 row created. 11 | 1 row created. 12 | 1 row created. 13 | 1 row created. 14 | ST_ID BOOK_ID ISSUE_DA RETURN_D 15 | ---------- ---------- -------- -------- 16 | 100 1 01-01-22 01-02-22 17 | 101 2 01-01-22 01-03-22 18 | 19 | 20 | ST_ID NAME CLASS FINE 21 | ---------- -------------------- ---------- ---------- 22 | 100 Alice CSE 0 23 | 101 Bob CSE 0 24 | 25 | 26 | BOOKID TITLE NO_OF_COPIES PRICE 27 | ---------- -------------------- ------------ ---------- 28 | 1 Data Structure 10 1000 29 | 2 Java - Complete ref 10 1000 30 | 31 | Trigger created. 32 | SQL> -------------------------------------------------------------------------------- /PLSQL/sortingPl.sql: -------------------------------------------------------------------------------- 1 | /* Sorting algorithm...! */ 2 | DECLARE 3 | type intArray IS VARRAY(10) OF INTEGER; 4 | arr1 intArray; 5 | i int; 6 | j int; 7 | c int; 8 | temp INTEGER := 0; 9 | FUNCTION sortArray(arr IN OUT intArray, len integer) 10 | RETURN int 11 | IS 12 | ret int; 13 | BEGIN 14 | ret := 1; 15 | dbms_output.new_line; 16 | for i in 1 .. len loop 17 | dbms_output.put_line('arr[' || i ||'] =' ||arr(i)); 18 | end loop; 19 | 20 | for i in 1 .. len loop 21 | for j in 1+i .. len loop 22 | if (arr(i) > arr(j)) then 23 | temp := arr(i); 24 | arr(i) := arr(j); 25 | arr(j) := temp; 26 | end if; 27 | end loop; 28 | end loop; 29 | 30 | for i in 1 .. len loop 31 | dbms_output.put_line('arr[' || i ||'] =' ||arr(i)); 32 | end loop; 33 | 34 | return ret; 35 | END; 36 | 37 | BEGIN 38 | arr1 := intArray(1,5,2,3,6,7,4,8,9,10); 39 | c := sortArray(arr1, 10); 40 | END; -------------------------------------------------------------------------------- /PLSQL/loopSql.sql: -------------------------------------------------------------------------------- 1 | /* Use of loops */ 2 | DECLARE 3 | type intArray IS VARRAY(10) OF INTEGER; 4 | type namesArray IS VARRAY(5) OF VARCHAR2(5); 5 | 6 | arr intArray; 7 | names namesArray; 8 | i integer; 9 | 10 | BEGIN 11 | arr := intArray(1,5,2,3,6,7,4,8,9,10); 12 | names := namesArray('Alice', 'Bob', 'Cindy', 'Sam', 'Eric'); 13 | 14 | i := 1; 15 | /*While loop...! */ 16 | while( i <= 10) loop 17 | dbms_output.put_line('arr[' || i ||'] =' ||arr(i)); 18 | i := i+1; 19 | end loop; 20 | 21 | /*For loop...! */ 22 | for i in 1 .. 10 loop 23 | dbms_output.put_line('arr[' || i ||'] =' ||arr(i)); 24 | end loop; 25 | 26 | i := 1; 27 | while( i <= 5) loop 28 | dbms_output.put_line('names[' || i ||'] =' ||names(i)); 29 | i := i+1; 30 | end loop; 31 | 32 | /*For loop...! */ 33 | for i in 1 .. 5 loop 34 | dbms_output.put_line('names[' || i ||'] =' ||names(i)); 35 | end loop; 36 | END; -------------------------------------------------------------------------------- /binarysearch.sql: -------------------------------------------------------------------------------- 1 | DECLARE 2 | TYPE intarray IS VARRAY(10) OF INTEGER; 3 | a intarray; 4 | first INTEGER; 5 | mid INTEGER; 6 | last INTEGER; 7 | flag BOOLEAN; 8 | key INTEGER; 9 | BEGIN 10 | key := 10; 11 | first :=0; 12 | last :=10; 13 | flag := FALSE; 14 | a := intarray(1,2,3,4,5,6,7,8,9,10); 15 | 16 | WHILE(first <= last) LOOP 17 | BEGIN 18 | mid := (first + last) / 2; 19 | IF(a(mid) = key) 20 | THEN 21 | dbms_output.put('number found @ '); 22 | dbms_output.put_line(mid); 23 | flag := TRUE; 24 | EXIT; 25 | END IF; 26 | 27 | IF(a(mid) > key) 28 | THEN 29 | last := mid -1; 30 | ELSE 31 | first := mid + 1; 32 | END IF; 33 | END; 34 | END LOOP; 35 | 36 | IF(NOT flag) 37 | THEN 38 | dbms_output.put_line('number not found'); 39 | END IF; 40 | 41 | END; 42 | -------------------------------------------------------------------------------- /PLSQL/Expt_10_stud.sql: -------------------------------------------------------------------------------- 1 | SET SERVEROUTPUT ON 2 | 3 | select user from dual; 4 | SELECT NAME FROM v$database; 5 | select table_name from dba_tables; 6 | select owner, table_name from all_tables; 7 | select table_name FROM user_tables; 8 | SELECT table_name FROM user_tables ORDER BY table_name; 9 | 10 | create table Stud(rollno int primary key, 11 | name char(10), 12 | mark1 float, 13 | mark2 float, 14 | mark3 float); 15 | 16 | /* ROLLNO NAME MARK1 MARK2 MARK3 17 | ---------- ---------- --------- ---------- ---------- 18 | 1 aparna 80 90 78 19 | 2 amritha 90 92 81 20 | 3 binuja 23 18 20 21 | 4 cathy 49 50 50 22 | 5 danish 60 62 61 23 | 6 fayas 76 62 74 */ 24 | 25 | insert into Stud values(1,'aparna', 80, 90, 78); 26 | insert into Stud values(&rollno, '&name', &mark1, &mark2, &mark3); 27 | select * from Stud; 28 | select name from Stud where rollno=1; 29 | 30 | 31 | DECLARE 32 | age integer; 33 | name VARCHAR(20); 34 | BEGIN 35 | dbms_output.put_line('Hello world'); 36 | --dbms_output.put_line('age = ' || age); 37 | --dbms_output.put_line('name = ' || name); 38 | --insert into Stud values(&rollno, '&name', &mark1, &mark2, &mark3); 39 | END; 40 | 41 | select * from Stud; 42 | delete from Stud; 43 | drop table Stud purge; 44 | -------------------------------------------------------------------------------- /dbms_out/cursor/out_table_last.sql: -------------------------------------------------------------------------------- 1 | ID NAME AGE ADDRESS 2 | ---------- -------------------- ---------- ------------------------------ 3 | SAL HIREDATE 4 | ---------- -------- 5 | 1 Alice 20 Address1 6 | 11000 01-01-21 7 | 8 | 2 Bob 30 Address2 9 | 21000 01-01-20 10 | 11 | 3 Cindy 40 Address3 12 | 31000 01-01-19 13 | 14 | 15 | ID NAME AGE ADDRESS 16 | ---------- -------------------- ---------- ------------------------------ 17 | SAL HIREDATE 18 | ---------- -------- 19 | 4 Sam 50 Address4 20 | 40500 01-01-18 21 | 22 | 5 Eric 60 Address5 23 | 50500 01-01-17 24 | 25 | 6 Tom 20 Address6 26 | 60500 01-01-16 27 | 28 | 29 | ID NAME AGE ADDRESS 30 | ---------- -------------------- ---------- ------------------------------ 31 | SAL HIREDATE 32 | ---------- -------- 33 | 7 John 30 Address7 34 | 70500 01-01-15 35 | 36 | 8 Sari 40 Address8 37 | 80500 01-01-14 38 | 39 | 9 Timo 50 Address9 40 | 90500 01-01-13 41 | 42 | 43 | ID NAME AGE ADDRESS 44 | ---------- -------------------- ---------- ------------------------------ 45 | SAL HIREDATE 46 | ---------- -------- 47 | 10 Skove 60 Address10 48 | 100500 01-01-12 49 | 50 | 51 | 10 rows selected. 52 | 53 | -------------------------------------------------------------------------------- /dbms_out/cursor/cursor1.sql: -------------------------------------------------------------------------------- 1 | Employee Id:1 2 | Employee Name:Alice 3 | Employee Age:20 4 | Salary :10000 5 | Hire Date:01-01-21 6 | ============================== 7 | Employee Id:2 8 | Employee Name:Bob 9 | Employee Age:30 10 | Salary :20000 11 | Hire Date:01-01-20 12 | ============================== 13 | Employee Id:3 14 | Employee Name:Cindy 15 | Employee Age:40 16 | Salary :30000 17 | Hire Date:01-01-19 18 | ============================== 19 | Employee Id:4 20 | Employee Name:Sam 21 | Employee Age:50 22 | Salary :40000 23 | Hire Date:01-01-18 24 | ============================== 25 | Employee Id:5 26 | Employee Name:Eric 27 | Employee Age:60 28 | Salary :50000 29 | Hire Date:01-01-17 30 | ============================== 31 | Employee Id:6 32 | Employee Name:Tom 33 | Employee Age:20 34 | Salary :60000 35 | Hire Date:01-01-16 36 | ============================== 37 | Employee Id:7 38 | Employee Name:John 39 | Employee Age:30 40 | Salary :70000 41 | Hire Date:01-01-15 42 | ============================== 43 | Employee Id:8 44 | Employee Name:Sari 45 | Employee Age:40 46 | Salary :80000 47 | Hire Date:01-01-14 48 | ============================== 49 | Employee Id:9 50 | Employee Name:Timo 51 | Employee Age:50 52 | Salary :90000 53 | Hire Date:01-01-13 54 | ============================== 55 | Employee Id:10 56 | Employee Name:Skove 57 | Employee Age:60 58 | Salary :100000 59 | Hire Date:01-01-12 60 | ============================== 61 | 62 | PL/SQL procedure successfully completed. 63 | -------------------------------------------------------------------------------- /employeelab3.sql: -------------------------------------------------------------------------------- 1 | show databases; 2 | create database dbms_exp3; 3 | use dbms_exp3; 4 | CREATE TABLE employee ( 5 | fname VARCHAR(15), minit char, 6 | lname varchar(15), ssn char(9) PRIMARY KEY, 7 | bdate date, address varchar(30), 8 | sex char, salary int(10), 9 | super_ssn char(9), dno int(4) ); 10 | 11 | CREATE TABLE department ( 12 | dnumber int(4) PRIMARY KEY, 13 | dname varchar(15), 14 | mgrssn char(9), 15 | mgrstartdate date ); 16 | 17 | CREATE TABLE dept_locations ( 18 | dnumber int(4), 19 | dlocation varchar(15), 20 | primary key (dnumber,dlocation) ); 21 | 22 | CREATE TABLE project ( 23 | pname varchar(15), 24 | pnumber int(4) PRIMARY KEY, 25 | plocation varchar(15), 26 | dnum int(4) ); 27 | 28 | CREATE TABLE works_on ( 29 | essn char(9), 30 | pno int(4), 31 | hours int(4), 32 | primary key (essn,pno) ); 33 | 34 | CREATE TABLE dependent ( 35 | essn char(9), 36 | dependent_name varchar(15), 37 | sex char, 38 | bdate date, 39 | relationship varchar(8), 40 | primary key (essn,dependent_name)); 41 | 42 | ALTER TABLE employee ADD FOREIGN KEY (super_ssn) references employee(ssn); 43 | ALTER TABLE employee ADD FOREIGN KEY (dno) references department(dnumber); 44 | ALTER TABLE department ADD FOREIGN KEY (mgrssn) references employee(ssn); 45 | ALTER TABLE dept_locations ADD FOREIGN KEY (dnumber) references department(dnumber); 46 | ALTER TABLE project ADD FOREIGN KEY (dnum) references department(dnumber); 47 | ALTER TABLE works_on ADD FOREIGN KEY (essn) references employee(ssn); 48 | ALTER TABLE works_on ADD FOREIGN KEY (pno) references project(pnumber); 49 | ALTER TABLE dependent ADD FOREIGN KEY (essn) references employee(ssn); 50 | 51 | show tables; 52 | -------------------------------------------------------------------------------- /PLSQL/trigger5.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Sapple 4 3 | Create a Table 4 | Customer(id int primary key, name varchar(20), 5 | age int, address varchar(30), sal int); 6 | 7 | Create a trigger to display the salary difference between new and old values 8 | before - insert, delete or update of values on the table 9 | */ 10 | drop table Customer; 11 | create table Customer(id int primary key, 12 | name varchar(20), age int, address varchar(30), sal int); 13 | 14 | insert into Customer values(1, 'Alice', 20, 'Address1', 10000); 15 | insert into Customer values(2, 'Bob', 30, 'Address2', 20000); 16 | insert into Customer values(3, 'Cindy', 40, 'Address3', 30000); 17 | insert into Customer values(4, 'Sam', 50, 'Address4', 40000); 18 | insert into Customer values(5, 'Eric', 60, 'Address5', 50000); 19 | 20 | select * from Customer; 21 | 22 | drop trigger trigger5; 23 | CREATE OR REPLACE TRIGGER trigger5 24 | BEFORE DELETE OR INSERT OR UPDATE ON Customer 25 | REFERENCING NEW AS NEW OLD AS OLD 26 | FOR EACH ROW 27 | DECLARE 28 | sal_diff int; 29 | BEGIN 30 | dbms_output.put_line('TRIGGER 5'); 31 | if (:new.id <= 0) then 32 | dbms_output.put_line('Error ...! : Invaid ID'); 33 | RAISE_APPLICATION_ERROR(-20000, 'Error ...! : Invaid ID '); 34 | else 35 | sal_diff := :new.sal - :old.sal; 36 | dbms_output.put_line('Old Salary = ' || :old.sal); 37 | dbms_output.put_line('New Salary = ' || :new.sal); 38 | dbms_output.put_line('Salary diff = ' || sal_diff); 39 | end if; 40 | END; 41 | 42 | /* Update statement to test trigger */ 43 | update Customer set sal=30000 where id=1; 44 | select * from Customer; 45 | 46 | /* You can also write a sample program to test this trigger */ 47 | DECLARE 48 | new_sal int; 49 | cust_id int; 50 | BEGIN 51 | cust_id := &cust_id; 52 | new_sal := &new_sal; 53 | dbms_output.put_line('new_sal = ' || new_sal); 54 | if (cust_id <= 0) then 55 | RAISE_APPLICATION_ERROR(-20000, 'Error ...! : Invaid ID '); 56 | else 57 | update Customer set sal=new_sal where id=cust_id; 58 | end if; 59 | END; 60 | / -------------------------------------------------------------------------------- /dbms_out/package.sql: -------------------------------------------------------------------------------- 1 | 2 | SQL> @package 3 | 4 | Package created. 5 | 6 | 7 | Package body created. 8 | 9 | SQL> @testprogram 10 | Enter value for a1: 2 11 | old 2: e_id number := &a1; 12 | new 2: e_id number := 2; 13 | Customer corresponding to 2 is Bob 14 | Annual Salary of Bob is : 252000 15 | 16 | PL/SQL procedure successfully completed. 17 | 18 | SQL> @testprogram 19 | Enter value for a1: 5 20 | old 2: e_id number := &a1; 21 | new 2: e_id number := 5; 22 | Customer corresponding to 5 is Eric 23 | Annual Salary of Eric is : 606000 24 | 25 | PL/SQL procedure successfully completed. 26 | /////////////////////////////////////////////////////////////////////////////////////////////// 27 | CREATE OR REPLACE PACKAGE Customer_package AS 28 | PROCEDURE Get_emp_name(c_id IN NUMBER, c_name OUT VARCHAR); 29 | FUNCTION Get_annual_salary(c_id IN NUMBER) RETURN NUMBER; 30 | END Customer_package; 31 | / 32 | -- package body 33 | CREATE OR REPLACE PACKAGE BODY Customer_package AS 34 | -- first procedure definition 35 | PROCEDURE Get_emp_name(c_id IN NUMBER, c_name OUT VARCHAR) 36 | IS 37 | BEGIN 38 | SELECT name INTO c_name from Customer where id = c_id; 39 | END Get_emp_name; 40 | -- second function definition 41 | FUNCTION Get_annual_salary (c_id IN NUMBER) 42 | RETURN NUMBER 43 | IS 44 | c_sal NUMBER :=0; 45 | annual_sal NUMBER; 46 | BEGIN 47 | SELECT sal INTO c_sal FROM Customer WHERE id = c_id; 48 | annual_sal := 12 * c_sal; 49 | RETURN (annual_sal); 50 | END; 51 | END Customer_package; 52 | / 53 | 54 | ///////////////////////////////////////////////////////////////////////////////////////////////// 55 | 56 | declare 57 | e_id number := &a1; 58 | e_name varchar(10); 59 | sal number :=0; 60 | begin 61 | Customer_package.Get_emp_name(e_id, e_name); 62 | dbms_output.put_line('Customer corresponding to '||e_id || ' is '|| e_name); 63 | sal := Customer_package.Get_annual_salary(e_id); 64 | dbms_output.put_line('Annual Salary of '||e_name || ' is : '|| sal); 65 | end; 66 | / 67 | 68 | ////////////////////////////////////////////////////////////////////////////////////////////////////// 69 | -------------------------------------------------------------------------------- /PLSQL/sqlop.sql: -------------------------------------------------------------------------------- 1 | /* SQL Operations */ 2 | /* ROLLNO NAME MARK1 MARK2 MARK3 3 | ---------- ---------- --------- ---------- ---------- 4 | 1 aparna 80 90 78 5 | 2 amritha 90 92 81 6 | 3 binuja 23 18 20 7 | 4 cathy 49 50 50 8 | 5 danish 60 62 61 9 | 6 fayas 76 62 74 */ 10 | create table Stud(rollno int primary key, 11 | name char(10), 12 | mark1 float, 13 | mark2 float, 14 | mark3 float); 15 | insert into Stud values(1,'aparna', 80, 90, 78); 16 | insert into Stud values(2,'amritha', 90, 92, 81); 17 | insert into Stud values(3,'binuja', 23, 18, 20); 18 | insert into Stud values(4,'cathy', 49, 50, 50); 19 | insert into Stud values(5,'danish', 60, 62, 61); 20 | insert into Stud values(6,'fayas', 76, 62, 74); 21 | 22 | select * from Stud; 23 | 24 | /* 25 | Write a PL/SQL program to grade the student according to the following rules 26 | Student(name,rollno,mark1,mark2,mark3) 27 | TOTAL MARKS GRADE 28 | >=250 Distinction 29 | 180-250 First Class 30 | 120-179 Second Class 31 | 80-119 Third Class 32 | <80 Fail 33 | The result should be in the following Format 34 | STUDENT NAME: 35 | ROLL NO : 36 | TOTAL MARKS : 37 | GRADE : 38 | */ 39 | DECLARE 40 | roleNo integer; 41 | No integer; 42 | Name varchar(20); 43 | total integer; 44 | BEGIN 45 | -- get role no from user 46 | roleNo := &roleNo; 47 | 48 | --execute sql query 49 | select rollno,name,(mark1+mark2+mark3) into No, Name, total from Stud where 50 | lno=roleNo; 51 | 52 | --print output 53 | dbms_output.put_line('---------------------------'); 54 | dbms_output.put_line('Roll no : ' || No); 55 | dbms_output.put_line('Name : ' || Name); 56 | dbms_output.put_line('Total Marks : ' || total); 57 | dbms_output.put_line('---------------------------'); 58 | 59 | --calculate & print grade 60 | if (total >=250 ) then 61 | dbms_output.put_line('Grade = Distinction'); 62 | elsif (total < 250 and total >= 180) then 63 | dbms_output.put_line('Grade = First Class'); 64 | elsif (total < 180 and total >= 120) then 65 | dbms_output.put_line('Grade = Second Class'); 66 | elsif (total < 120 and total >= 80) then 67 | dbms_output.put_line('Grade = Third Class'); 68 | else 69 | dbms_output.put_line('Grade = FAIL'); 70 | end if; 71 | END; 72 | / -------------------------------------------------------------------------------- /dbms_out/cursor/cursor3.sql: -------------------------------------------------------------------------------- 1 | Employee Id:1 2 | Employee Name:Alice 3 | Salary :10000 4 | Hire Date:01-01-21 5 | Employee name:Alice is Grater that 5 6 | Years 7 | ----------------------------- 8 | New Salary : 11000 9 | ============================== 10 | Employee Id:2 11 | Employee Name:Bob 12 | Salary :20000 13 | Hire Date:01-01-20 14 | Employee name:Bob is Grater that 5 15 | Years 16 | ----------------------------- 17 | New Salary : 21000 18 | ============================== 19 | Employee Id:3 20 | Employee Name:Cindy 21 | Salary :30000 22 | Hire Date:01-01-19 23 | Employee name:Cindy is Grater that 5 24 | Years 25 | ----------------------------- 26 | New Salary : 31000 27 | ============================== 28 | Employee Id:4 29 | Employee Name:Sam 30 | Salary :40000 31 | Hire Date:01-01-18 32 | Employee name:Sam is Less that 5 33 | Years 34 | ----------------------------- 35 | New Salary : 40500 36 | ============================== 37 | Employee Id:5 38 | Employee Name:Eric 39 | Salary :50000 40 | Hire Date:01-01-17 41 | Employee name:Eric is Less that 5 42 | Years 43 | ----------------------------- 44 | New Salary : 50500 45 | ============================== 46 | Employee Id:6 47 | Employee Name:Tom 48 | Salary :60000 49 | Hire Date:01-01-16 50 | Employee name:Tom is Less that 5 51 | Years 52 | ----------------------------- 53 | New Salary : 60500 54 | ============================== 55 | Employee Id:7 56 | Employee Name:John 57 | Salary :70000 58 | Hire Date:01-01-15 59 | Employee name:John is Less that 5 60 | Years 61 | ----------------------------- 62 | New Salary : 70500 63 | ============================== 64 | Employee Id:8 65 | Employee Name:Sari 66 | Salary :80000 67 | Hire Date:01-01-14 68 | Employee name:Sari is Less that 5 69 | Years 70 | ----------------------------- 71 | New Salary : 80500 72 | ============================== 73 | Employee Id:9 74 | Employee Name:Timo 75 | Salary :90000 76 | Hire Date:01-01-13 77 | Employee name:Timo is Less that 5 78 | Years 79 | ----------------------------- 80 | New Salary : 90500 81 | ============================== 82 | Employee Id:10 83 | Employee Name:Skove 84 | Salary :100000 85 | Hire Date:01-01-12 86 | Employee name:Skove is Less that 5 87 | Years 88 | ----------------------------- 89 | New Salary : 100500 90 | ============================== 91 | 92 | PL/SQL procedure successfully completed. 93 | -------------------------------------------------------------------------------- /PLSQL/trigger4.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Sapple 3 3 | Book_avail (bookid, title, no_of _copies, price) 4 | Student (st_id,name,class,fine) 5 | Issue_tab (st_id, book_id, issuedate, returndate) 6 | 7 | Create a database trigger to calculate the fine based on the rules given below. 8 | After 1 month 5% of price 9 | After 2 month 10% of price 10 | After 3 month 20% of price. 11 | */ 12 | drop table Book_avail; 13 | drop table Student; 14 | drop table Issue_tab; 15 | create table Book_avail(bookid int primary key, title varchar(20), no_of_copies int, 16 | ice int); 17 | create table Student(st_id int primary key, name varchar(20), class varchar(10), fine int 18 | 19 | create table Issue_tab(st_id int, book_id int, issue_date date , return_date date, 20 | imary key(st_id, book_id)); 21 | 22 | insert into Student values(100, 'Alice', 'CSE', 0); 23 | insert into Student values(101, 'Bob', 'CSE', 0); 24 | insert into Book_avail values(1, 'Data Structure', 10, 1000); 25 | insert into Book_avail values(2, 'Java - Complete ref', 10, 1000); 26 | 27 | --TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss') 28 | insert into Issue_tab values(100, 1, TO_DATE('2022/01/01','%yyyy-%mm-%dd'), TO_DATE( 29 | 022/02/01','yyyy-%mm-%dd')); 30 | insert into Issue_tab values(101, 2, TO_DATE('2022/01/01','%yyyy-%mm-%dd'), TO_DATE( 31 | 022/03/01','yyyy-%mm-%dd')); 32 | select * from Issue_tab; 33 | select * from Student; 34 | select * from Book_avail; 35 | drop trigger trigger4; 36 | 37 | CREATE OR REPLACE TRIGGER trigger4 38 | BEFORE UPDATE ON Issue_tab 39 | REFERENCING NEW AS NEW OLD AS OLD 40 | FOR EACH ROW 41 | DECLARE 42 | bprice int; 43 | months int; 44 | latefine int; 45 | BEGIN 46 | select price into bprice from Book_avail where bookid=1; 47 | months:=months_between(:new.return_date,:old.issue_date); 48 | dbms_output.put_line('months = ' || months); 49 | 50 | -- Calculate fine while update issue_tab 51 | if months>=1 and months<2 then 52 | latefine := bprice*0.05; 53 | else if months>=2 and months<3 then 54 | latefine := bprice*0.01; 55 | else if months>=3 then 56 | latefine := bprice*0.2; 57 | end if; 58 | end if; 59 | end if; 60 | 61 | -- Update fine into Student table while update issue_tab 62 | dbms_output.put_line('latefine = ' || latefine); 63 | update Student set fine=latefine where st_id=:old.st_id; 64 | END; 65 | 66 | /* Update statement to test trigger */ 67 | update Issue_tab set return_date=TO_DATE('2022/03/02','%yyyy-%mm-%dd') where st_id=100; 68 | select * from Student; 69 | -------------------------------------------------------------------------------- /Expt_9_actor.sql: -------------------------------------------------------------------------------- 1 | show databases; 2 | create database lab9_tables; 3 | use lab9_tables; 4 | CREATE TABLE ACTOR ( 5 | ACT_ID INT, 6 | ACT_NAME VARCHAR (20), 7 | ACT_GENDER CHAR (1), 8 | PRIMARY KEY (ACT_ID) 9 | ); 10 | CREATE TABLE DIRECTOR ( 11 | DIR_ID INT, 12 | DIR_NAME VARCHAR (20), 13 | DIR_PHONE NUMERIC (10), 14 | PRIMARY KEY (DIR_ID) 15 | ); 16 | CREATE TABLE MOVIES ( 17 | MOV_ID INT, 18 | MOV_TITLE VARCHAR (25), 19 | MOV_YEAR INT, 20 | MOV_LANG VARCHAR (12), 21 | DIR_ID INT, 22 | PRIMARY KEY (MOV_ID), 23 | FOREIGN KEY (DIR_ID) REFERENCES DIRECTOR (DIR_ID) 24 | ); 25 | CREATE TABLE MOVIE_CAST ( 26 | ACT_ID INT, 27 | MOV_ID INT, 28 | ROLE VARCHAR(10), 29 | PRIMARY KEY (ACT_ID, MOV_ID), 30 | FOREIGN KEY (ACT_ID) REFERENCES ACTOR (ACT_ID), 31 | FOREIGN KEY (MOV_ID) REFERENCES MOVIES (MOV_ID) 32 | ); 33 | CREATE TABLE RATING ( 34 | MOV_ID INT, 35 | REV_STARS VARCHAR (25), 36 | PRIMARY KEY (MOV_ID), 37 | FOREIGN KEY (MOV_ID) REFERENCES MOVIES (MOV_ID) 38 | ); 39 | 40 | INSERT INTO ACTOR VALUES (301,'ANUSHKA','F'); 41 | INSERT INTO ACTOR VALUES (302,'PRABHAS','M'); 42 | INSERT INTO ACTOR VALUES (303,'PUNITH','M'); 43 | INSERT INTO ACTOR VALUES (304,'JERMY','M'); 44 | INSERT INTO DIRECTOR VALUES (60,'RAJAMOULI', 8751611001); 45 | INSERT INTO DIRECTOR VALUES (61,'HITCHCOCK', 7766138911); 46 | INSERT INTO DIRECTOR VALUES (62,'FARAN', 9986776531); 47 | INSERT INTO DIRECTOR VALUES (63,'STEVEN SPIELBERG', 8989776530); 48 | 49 | INSERT INTO MOVIES VALUES (1001,'BAHUBALI-2', 2017, 'TELAGU', 60); 50 | INSERT INTO MOVIES VALUES (1002,'BAHUBALI-1', 2015, 'TELAGU', 60); 51 | INSERT INTO MOVIES VALUES (1003,'AKASH', 2008, 'KANNADA', 61); 52 | INSERT INTO MOVIES VALUES (1004,'WAR HORSE', 2011, 'ENGLISH', 63); 53 | INSERT INTO MOVIE_CAST VALUES (301, 1002, 'HEROINE'); 54 | INSERT INTO MOVIE_CAST VALUES (301, 1001, 'HEROINE'); 55 | INSERT INTO MOVIE_CAST VALUES (303, 1003, 'HERO'); 56 | INSERT INTO MOVIE_CAST VALUES (303, 1002, 'GUEST'); 57 | INSERT INTO MOVIE_CAST VALUES (304, 1004, 'HERO'); 58 | INSERT INTO RATING VALUES (1001,4); 59 | INSERT INTO RATING VALUES (1002,2); 60 | INSERT INTO RATING VALUES (1003, 5); 61 | INSERT INTO RATING VALUES (1004, 4); 62 | select * from ACTOR; 63 | select * from DIRECTOR; 64 | select * from MOVIES; 65 | select * from MOVIE_CAST; 66 | select * from RATING; 67 | QUERIES 68 | 1) List the titles of all movies directed by‘Hitchcock’ 69 | SELECT MOV_TITLE FROM MOVIES WHERE DIR_ID IN ( 70 | SELECT DIR_ID FROM DIRECTOR WHERE DIR_NAME = 'HITCHCOCK'); 71 | 2) Find the movie names where one or more actors acted in two or 72 | moremovie 73 | SELECT MOV_TITLE FROM MOVIES M, MOVIE_CAST MV 74 | WHERE M.MOV_ID=MV.MOV_ID AND ACT_ID IN ( 75 | SELECT ACT_ID FROM MOVIE_CAST 76 | GROUP BY ACT_ID HAVING COUNT(ACT_ID)>1) 77 | GROUP BY MOV_TITLE HAVING COUNT(*)>1; 78 | 3) List all actors who acted in a movie before 2000 and also in a movie 79 | after 2015 (use 80 | JOIN operation). 81 | i) SELECT ACT_NAME, MOV_TITLE, MOV_YEAR FROM ACTOR A 82 | JOIN MOVIE_CAST C ON A.ACT_ID=C.ACT_ID 83 | JOIN MOVIES M ON C.MOV_ID=M.MOV_ID 84 | WHERE M.MOV_YEAR NOT BETWEEN 2000 AND 2015; 85 | OR 86 | ii) SELECT A.ACT_NAME, C.MOV_TITLE, C.MOV_YEAR FROM ACTOR A, MOVIES C, 87 | MOVIE_CAST B 88 | WHERE A.ACT_ID=B.ACT_ID AND B.MOV_ID=C.MOV_ID 89 | AND C.MOV_YEAR NOT BETWEEN 2000 AND 2015; 90 | 4) Find the title of movies and number of stars for each movie that has at 91 | least one rating and 92 | find the highest number of stars that movie received. Sort the result by 93 | movie title. 94 | SELECT MOV_TITLE, MAX(REV_STARS) FROM MOVIES 95 | INNER JOIN RATING USING(MOV_ID) 96 | 97 | GROUP BY MOV_TITLE HAVING MAX(REV_STARS)>0 98 | ORDER BY MOV_TITLE; 99 | 5) Update rating of all movies directed by ‘Steven Spielberg’ to 5 100 | UPDATE RATING SET REV_STARS=5 101 | WHERE MOV_ID IN (SELECT MOV_ID FROM MOVIES WHERE DIR_ID IN ( 102 | SELECT DIR_ID FROM DIRECTOR WHERE DIR_NAME ='STEVEN SPIELBERG')); 103 | -------------------------------------------------------------------------------- /Expt_5_student.sql: -------------------------------------------------------------------------------- 1 | 2 | create table Student( 3 | stud_id INT AUTO_INCREMENT PRIMARY KEY DEFAULT 100, 4 | stud_fname VARCHAR(20), 5 | stud_lname VARCHAR(20), 6 | stud_email VARCHAR(20), 7 | stud_ph VARCHAR(10)); 8 | ALTER TABLE Student AUTO_INCREMENT=100; 9 | 10 | create table Subject( 11 | sub_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 12 | sub_name VARCHAR(20)); 13 | ALTER TABLE Subject AUTO_INCREMENT=200; 14 | 15 | create table Marks( 16 | sub_id INT, 17 | stud_id INT, 18 | marks INT, 19 | PRIMARY KEY(sub_id,stud_id)); 20 | 21 | desc Student; 22 | insert into Student(stud_fname,stud_lname,stud_email,stud_ph) values('shanti','vasan','shantiv@gmail.com',9677483824); 23 | insert into Student(stud_fname,stud_lname,stud_email,stud_ph) values('anjitha','k','anjithak@gmail.com',9574884993); 24 | insert into Student(stud_fname,stud_lname,stud_email,stud_ph) values('riya','khan','riyakhan@gmail.com',9637833993); 25 | select * from student; 26 | 27 | desc Subject; 28 | insert into Subject(sub_name) values('chemistry'); 29 | insert into Subject(sub_name) values('physics'); 30 | insert into Subject(sub_name) values('maths'); 31 | select * from Subject; 32 | 33 | desc Marks; 34 | insert into Marks(sub_id,stud_id,marks) values(200,100,75); 35 | insert into Marks(sub_id,stud_id,marks) values(200,101,94); 36 | insert into Marks(sub_id,stud_id,marks) values(200,102,60); 37 | insert into Marks(sub_id,stud_id,marks) values(201,100,85); 38 | insert into Marks(sub_id,stud_id,marks) values(201,101,98); 39 | insert into Marks(sub_id,stud_id,marks) values(201,102,70); 40 | insert into Marks(sub_id,stud_id,marks) values(202,100,50); 41 | insert into Marks(sub_id,stud_id,marks) values(202,101,96); 42 | insert into Marks(sub_id,stud_id,marks) values(202,102,45); 43 | select * from Marks; 44 | 45 | update Student set stud_lname='rajan' where stud_id=100; 46 | select * from Student where stud_id=100; 47 | 48 | update Subject set sub_name='mathematics' where sub_id=202; 49 | select * from Subject where sub_id=202; 50 | 51 | update Marks set marks=83 where sub_id=200 AND stud_id=102; 52 | select * from Marks where sub_id=200 and stud_id=102; 53 | 54 | select * from Student; 55 | select * from Subject; 56 | select * from Marks; 57 | 58 | select *from Student where stud_id=102; 59 | 60 | # Write a query to display student name, subject and marks of student ordered by marks. 61 | select stud_fname, sub_name, marks from Student, Subject, Marks where 62 | Student.stud_id=Marks.stud_id and 63 | Subject.sub_id=Marks.sub_id 64 | order by marks; 65 | 66 | # Write a query to display student name, subject and marks of students who have marks greater than 70 in physics. 67 | select stud_fname, sub_name, marks from Student,Subject,Marks where 68 | Student.stud_id=Marks.stud_id and 69 | Subject.sub_id=Marks.sub_id and 70 | marks >70 and sub_name ='physics'; 71 | 72 | # Write a query to display average marks in each subject. 73 | select sub_name, avg(marks) from Student, Subject, Marks where 74 | Student.stud_id=Marks.stud_id and 75 | Subject.sub_id=Marks.sub_id group by sub_name; 76 | 77 | # Write a query to display the number of students. 78 | select count(stud_id) from Student; 79 | 80 | # Write a query to display the maximum and minimum marks obtained by students in each subject. 81 | select sub_name, max(marks), min(marks) from Student, Subject, Marks where 82 | Student.stud_id=Marks.stud_id and Subject.sub_id=Marks.sub_id group by sub_name; 83 | 84 | # Write a query to display the details of a student whose name begins with S. 85 | select * from Student where stud_fname like 's%'; 86 | 87 | # Write a query to display the details of a student whose first name contains a in the fourth place. 88 | select * from Student where stud_fname like '___a'; 89 | 90 | # Write a query to display the name,subject and marks of students having marks between 50 and 75. 91 | select stud_fname, sub_name, marks from Student, Subject, Marks where 92 | Student.stud_id=Marks.stud_id and 93 | Subject.sub_id=Marks.sub_id and 94 | marks between 50 and 75; 95 | 96 | #Create a view to display student name and marks 97 | create view student_view as select stud_fname, stud_lname, sub_name,marks from 98 | Student, Subject, Marks where 99 | Student.stud_id=Marks.stud_id and 100 | Subject.sub_id=Marks.sub_id; 101 | 102 | select * from student_view; 103 | -------------------------------------------------------------------------------- /dbms_out/expt9out: -------------------------------------------------------------------------------- 1 | Expt 9 2 | 3 | mysql> select * from ACTOR; 4 | +--------+----------+------------+ 5 | | ACT_ID | ACT_NAME | ACT_GENDER | 6 | +--------+----------+------------+ 7 | | 301 | ANUSHKA | F | 8 | | 302 | PRABHAS | M | 9 | | 303 | PUNITH | M | 10 | | 304 | JERMY | M | 11 | +--------+----------+------------+ 12 | 4 rows in set (0.00 sec) 13 | 14 | mysql> select * from DIRECTOR; 15 | +--------+------------------+------------+ 16 | | DIR_ID | DIR_NAME | DIR_PHONE | 17 | +--------+------------------+------------+ 18 | | 60 | RAJAMOULI | 8751611001 | 19 | | 61 | HITCHCOCK | 7766138911 | 20 | | 62 | FARAN | 9986776531 | 21 | | 63 | STEVEN SPIELBERG | 8989776530 | 22 | +--------+------------------+------------+ 23 | 4 rows in set (0.00 sec) 24 | 25 | mysql> select * from MOVIES; 26 | +--------+------------+----------+----------+--------+ 27 | | MOV_ID | MOV_TITLE | MOV_YEAR | MOV_LANG | DIR_ID | 28 | +--------+------------+----------+----------+--------+ 29 | | 1001 | BAHUBALI-2 | 2017 | TELAGU | 60 | 30 | | 1002 | BAHUBALI-1 | 2015 | TELAGU | 60 | 31 | | 1003 | AKASH | 2008 | KANNADA | 61 | 32 | | 1004 | WAR HORSE | 2011 | ENGLISH | 63 | 33 | +--------+------------+----------+----------+--------+ 34 | 4 rows in set (0.00 sec) 35 | 36 | mysql> select * from MOVIE_CAST; 37 | +--------+--------+---------+ 38 | | ACT_ID | MOV_ID | ROLE | 39 | +--------+--------+---------+ 40 | | 301 | 1001 | HEROINE | 41 | | 301 | 1002 | HEROINE | 42 | | 303 | 1002 | GUEST | 43 | | 303 | 1003 | HERO | 44 | | 304 | 1004 | HERO | 45 | +--------+--------+---------+ 46 | 5 rows in set (0.00 sec) 47 | 48 | mysql> select * from RATING; 49 | +--------+-----------+ 50 | | MOV_ID | REV_STARS | 51 | +--------+-----------+ 52 | | 1001 | 4 | 53 | | 1002 | 2 | 54 | | 1003 | 5 | 55 | | 1004 | 4 | 56 | +--------+-----------+ 57 | 4 rows in set (0.00 sec) 58 | 59 | 1) List the titles of all movies directed by‘Hitchcock’ 60 | SELECT MOV_TITLE FROM MOVIES WHERE DIR_ID IN (SELECT DIR_ID FROM DIRECTOR WHERE DIR_NAME = 'HITCHCOCK'); 61 | +-----------+ 62 | | MOV_TITLE | 63 | +-----------+ 64 | | AKASH | 65 | +-----------+ 66 | 67 | 68 | 2) Find the movie names where one or more actors acted in two or 69 | moremovie 70 | SELECT MOV_TITLE FROM MOVIES M, MOVIE_CAST MV WHERE M.MOV_ID=MV.MOV_ID AND ACT_ID IN (SELECT ACT_ID FROM MOVIE_CAST GROUP BY ACT_ID HAVING COUNT(ACT_ID)>1) GROUP BY MOV_TITLE HAVING COUNT(*)>1; 71 | +------------+ 72 | | MOV_TITLE | 73 | +------------+ 74 | | BAHUBALI-1 | 75 | +------------+ 76 | 77 | 78 | 79 | 3) List all actors who acted in a movie before 2000 and also in a movie 80 | after 2015 (use 81 | JOIN operation). 82 | 83 | i) 84 | 85 | SELECT ACT_NAME, MOV_TITLE, MOV_YEAR FROM ACTOR A JOIN MOVIE_CAST C ON A.ACT_ID=C.ACT_ID JOIN MOVIES M ON C.MOV_ID=M.MOV_ID WHERE M.MOV_YEAR NOT BETWEEN 2000 AND 2015; 86 | OR 87 | ii) SELECT A.ACT_NAME, C.MOV_TITLE, C.MOV_YEAR FROM ACTOR A, MOVIES C, 88 | MOVIE_CAST B 89 | WHERE A.ACT_ID=B.ACT_ID AND B.MOV_ID=C.MOV_ID 90 | AND C.MOV_YEAR NOT BETWEEN 2000 AND 2015; 91 | +----------+------------+----------+ 92 | | ACT_NAME | MOV_TITLE | MOV_YEAR | 93 | +----------+------------+----------+ 94 | | ANUSHKA | BAHUBALI-2 | 2017 | 95 | +----------+------------+----------+ 96 | 97 | 98 | 4) Find the title of movies and number of stars for each movie that has at 99 | least one rating and 100 | find the highest number of stars that movie received. Sort the result by 101 | movie title. 102 | 103 | 104 | SELECT MOV_TITLE, MAX(REV_STARS) FROM MOVIES INNER JOIN RATING USING(MOV_ID) GROUP BY MOV_TITLE 105 | HAVING MAX(REV_STARS)>0 ORDER BY MOV_TITLE; 106 | 107 | +------------+----------------+ 108 | | MOV_TITLE | MAX(REV_STARS) | 109 | +------------+----------------+ 110 | | AKASH | 5 | 111 | | BAHUBALI-1 | 2 | 112 | | BAHUBALI-2 | 4 | 113 | | WAR HORSE | 4 | 114 | +------------+----------------+ 115 | 116 | 117 | 5) Update rating of all movies directed by ‘Steven Spielberg’ to 5 118 | 119 | UPDATE RATING SET REV_STARS=5 WHERE MOV_ID IN (SELECT MOV_ID FROM MOVIES WHERE DIR_ID IN (SELECT DIR_ID FROM DIRECTOR WHERE DIR_NAME ='STEVEN SPIELBERG')); 120 | 121 | +--------+-----------+ 122 | | MOV_ID | REV_STARS | 123 | +--------+-----------+ 124 | | 1004 | 5 | 125 | +--------+-----------+ 126 | 1 row in set (0.00 sec) 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /dbms_out/view.sql: -------------------------------------------------------------------------------- 1 | mysql> use db; 2 | Reading table information for completion of table and column names 3 | You can turn off this feature to get a quicker startup with -A 4 | 5 | Database changed 6 | mysql> # create table Emp 7 | mysql> create table Emp(EMP_no int primary key, Emp_name varchar(10), Job 8 | -> varchar(10), Hiredata date, Salary float, Comm Float, Depno int); 9 | ERROR 1050 (42S01): Table 'Emp' already exists 10 | mysql> # insert data 11 | mysql> INSERT INTO Emp VALUES(1,'Steven', 'Marketing', STR_TO_DATE('06-jan- 12 | '> 1995', '%d-%M-%Y'),24000, NULL,2); 13 | ERROR 1062 (23000): Duplicate entry '1' for key 'Emp.PRIMARY' 14 | mysql> INSERT INTO Emp VALUES(2,'Neena', 'FI_ACCOUNT', STR_TO_DATE('06- 15 | '> feb-1987', '%d-%M-%Y'),34000, NULL,1); 16 | ERROR 1062 (23000): Duplicate entry '2' for key 'Emp.PRIMARY' 17 | mysql> INSERT INTO Emp VALUES(3,'Lex', 'FI_MGR', STR_TO_DATE('06-jan-1980', 18 | -> '%d-%M-%Y'),240000, NULL,1); 19 | ERROR 1062 (23000): Duplicate entry '3' for key 'Emp.PRIMARY' 20 | mysql> INSERT INTO Emp VALUES(4,'Alexander', 'Sa_Rep', STR_TO_DATE('06-jun- 21 | '> 1987', '%d-%M-%Y'),20000, NULL,4); 22 | ERROR 1062 (23000): Duplicate entry '4' for key 'Emp.PRIMARY' 23 | mysql> INSERT INTO Emp VALUES(5,'Bruce', 'IT_PROG',STR_TO_DATE('06-jul- 24 | '> 1990', '%d-%M-%Y'),24000, NULL,4); 25 | ERROR 1062 (23000): Duplicate entry '5' for key 'Emp.PRIMARY' 26 | mysql> # create view 27 | mysql> create view emp_view as select EMP_no, Emp_name, Salary from Emp where 28 | -> Salary>20000; 29 | Query OK, 0 rows affected (0.11 sec) 30 | 31 | mysql> select * from emp_view ; 32 | +--------+----------+--------+ 33 | | EMP_no | Emp_name | Salary | 34 | +--------+----------+--------+ 35 | | 1 | Steven | 24000 | 36 | | 2 | Neena | 34000 | 37 | | 3 | Lex | 240000 | 38 | | 5 | Bruce | 24000 | 39 | | 6 | Jack | 241000 | 40 | +--------+----------+--------+ 41 | 5 rows in set (0.00 sec) 42 | 43 | mysql> # update salary in view 44 | mysql> update emp_view set Salary = 999; 45 | Query OK, 5 rows affected (0.06 sec) 46 | Rows matched: 5 Changed: 5 Warnings: 0 47 | 48 | mysql> # verify, the Emp table is updated 49 | mysql> select * from Emp; 50 | +--------+-----------+------------+------------+--------+------+-------+ 51 | | EMP_no | Emp_name | Job | Hiredata | Salary | Comm | Depno | 52 | +--------+-----------+------------+------------+--------+------+-------+ 53 | | 1 | Steven | Marketing | 1995-01-06 | 999 | NULL | 2 | 54 | | 2 | Neena | FI_ACCOUNT | 1987-02-06 | 999 | NULL | 1 | 55 | | 3 | Lex | FI_MGR | 1980-01-06 | 999 | NULL | 1 | 56 | | 4 | Alexander | Sa_Rep | 1987-06-06 | 20000 | NULL | 4 | 57 | | 5 | Bruce | IT_PROG | 1990-07-06 | 999 | NULL | 4 | 58 | | 6 | Jack | FI_MGR | 1980-08-06 | 999 | NULL | 5 | 59 | +--------+-----------+------------+------------+--------+------+-------+ 60 | 6 rows in set (0.00 sec) 61 | 62 | mysql> # create view 63 | mysql> create view job_view as (select Emp_name, Job from Emp ); 64 | Query OK, 0 rows affected (0.13 sec) 65 | 66 | mysql> # show view 67 | mysql> select * from job_view; 68 | +-----------+------------+ 69 | | Emp_name | Job | 70 | +-----------+------------+ 71 | | Steven | Marketing | 72 | | Neena | FI_ACCOUNT | 73 | | Lex | FI_MGR | 74 | | Alexander | Sa_Rep | 75 | | Bruce | IT_PROG | 76 | | Jack | FI_MGR | 77 | +-----------+------------+ 78 | 6 rows in set (0.00 sec) 79 | 80 | mysql> # update data in Emp 81 | mysql> update Emp set Job = 'MK_MGR' where Emp_name = 'Steven'; 82 | Query OK, 1 row affected (0.06 sec) 83 | Rows matched: 1 Changed: 1 Warnings: 0 84 | 85 | mysql> # show view and verify update is reflected 86 | mysql> select * from job_view; 87 | +-----------+------------+ 88 | | Emp_name | Job | 89 | +-----------+------------+ 90 | | Steven | MK_MGR | 91 | | Neena | FI_ACCOUNT | 92 | | Lex | FI_MGR | 93 | | Alexander | Sa_Rep | 94 | | Bruce | IT_PROG | 95 | | Jack | FI_MGR | 96 | +-----------+------------+ 97 | 6 rows in set (0.00 sec) 98 | 99 | mysql> # show Emp and verify update is reflected 100 | mysql> select * from Emp; 101 | +--------+-----------+------------+------------+--------+------+-------+ 102 | | EMP_no | Emp_name | Job | Hiredata | Salary | Comm | Depno | 103 | +--------+-----------+------------+------------+--------+------+-------+ 104 | | 1 | Steven | MK_MGR | 1995-01-06 | 999 | NULL | 2 | 105 | | 2 | Neena | FI_ACCOUNT | 1987-02-06 | 999 | NULL | 1 | 106 | | 3 | Lex | FI_MGR | 1980-01-06 | 999 | NULL | 1 | 107 | | 4 | Alexander | Sa_Rep | 1987-06-06 | 20000 | NULL | 4 | 108 | | 5 | Bruce | IT_PROG | 1990-07-06 | 999 | NULL | 4 | 109 | | 6 | Jack | FI_MGR | 1980-08-06 | 999 | NULL | 5 | 110 | +--------+-----------+------------+------------+--------+------+-------+ 111 | 6 rows in set (0.00 sec) 112 | 113 | mysql> 114 | -------------------------------------------------------------------------------- /Expt_7_Aggreate.sql: -------------------------------------------------------------------------------- 1 | drop database student; 2 | create database student; 3 | use student; 4 | create table Faculty (F_Code int Primary Key, F_Name varchar(15)); 5 | insert into Faculty values(101, 'Silgy'); 6 | insert into Faculty values(102, 'Bindu'); 7 | insert into Faculty values(103, 'Vidhya'); 8 | insert into Faculty values(104, 'Sangeetha'); 9 | insert into Faculty values(105, 'Jayakumar'); 10 | create table Subject (subjectcode varchar(5) primary key not null, 11 | subjectname char(15), 12 | maxmark int, 13 | faculty_code int, 14 | foreign key(faculty_code) references Faculty(F_code)); 15 | 16 | insert into Subject(subjectcode,subjectname,maxmark,faculty_code) values(501,'Maths', 150, 101); 17 | insert into Subject(subjectcode,subjectname,maxmark,faculty_code) values(502,'FCA', 100, 102); 18 | insert into Subject(subjectcode,subjectname,maxmark,faculty_code) values(503,'DBMS', 100, 105); 19 | insert into Subject(subjectcode,subjectname,maxmark,faculty_code) values(504, 'OS',75, 103); 20 | insert into Subject(subjectcode,subjectname,maxmark,faculty_code) values(505, 'DC',200, 104); 21 | insert into Subject(subjectcode,subjectname,maxmark,faculty_code) values(508, 'DBMSLab', 1001, 103); 22 | select * from Subject; 23 | create table Student(studentcode varchar(5) primary key not null, 24 | studentname char(15), 25 | dob date, 26 | studentbranch char(3), 27 | adate date, 28 | check(studentbranch in('cs','ec','ee','me'))); 29 | 30 | insert into Student values(1,'Amitha',STR_TO_DATE('12-jan-1987', '%d-%M-%Y'),'cs',STR_TO_DATE('1-jun-2000', '%d-%M-%Y')); 31 | insert into Student values(2,'vaidehi',STR_TO_DATE('25-dec-88', '%d-%M-%Y'),'cs',STR_TO_DATE('1-jun-2000', '%d-%M-%Y')); 32 | insert into Student values(3,'varun',STR_TO_DATE('2-oct-88', '%d-%M-%Y'),'cs',STR_TO_DATE('2-jun-2000', '%d-%M-%Y')); 33 | insert into Student values(4,'turner',STR_TO_DATE('5-sep-88', '%d-%M-%Y'),'cs',STR_TO_DATE('2-jun-2000', '%d-%M-%Y')); 34 | insert into Student values(5,'vani',STR_TO_DATE('20-jul-88', '%d-%M-%Y'),'cs',STR_TO_DATE('5-jun-2000', '%d-%M-%Y')); 35 | insert into Student values(6,'binu',STR_TO_DATE('13-aug-88', '%d-%M-%Y'),'cs',STR_TO_DATE('10-jun-2000', '%d-%M-%Y')); 36 | insert into Student values(7,'chitra',STR_TO_DATE('14-nov-86', '%d-%M-%Y'),'cs',STR_TO_DATE('9-jun-2000', '%d-%M-%Y')); 37 | insert into Student values(8,'dona',STR_TO_DATE('2-dec-91', '%d-%M-%Y'),'cs',STR_TO_DATE('2-jun-2000', '%d-%M-%Y')); 38 | insert into Student values(9,'elana',STR_TO_DATE('5-feb-90', '%d-%M-%Y'),'cs',STR_TO_DATE('2-jun-2000', '%d-%M-%Y')); 39 | insert into Student values(10,'fahan',STR_TO_DATE('20-mar-88', '%d-%M-%Y'),'cs',STR_TO_DATE('5-jun-2000', '%d-%M-%Y')); 40 | insert into Student values(11,'ginu',STR_TO_DATE('13-apr-88', '%d-%M-%Y'),'cs',STR_TO_DATE('10-jun-2000', '%d-%M-%Y')); 41 | insert into Student values(12,'hamna',STR_TO_DATE('14-may-85', '%d-%M-%Y'),'cs',STR_TO_DATE('9-jun-2000', '%d-%M-%Y')); 42 | create table M_mark( 43 | studentcode varchar(5) references Student(studentcode), 44 | subjectcode varchar(5) references 45 | Subject(subjectcode), 46 | mark int, 47 | primary key(studentcode,subjectcode)); 48 | insert into M_mark values(1,501,40); 49 | insert into M_mark values(1,502,70); 50 | insert into M_mark values(1,503,50); 51 | insert into M_mark values(1,504,80); 52 | insert into M_mark values(1,505,40); 53 | insert into M_mark values(1,508,70); 54 | insert into M_mark values(2,501,90); 55 | insert into M_mark values(2,502,89); 56 | insert into M_mark values(2,503,77); 57 | insert into M_mark values(2,504,95); 58 | insert into M_mark values(2,505,74); 59 | insert into M_mark values(2,508,98); 60 | insert into M_mark values(3,501,40); 61 | insert into M_mark values(3,502,43); 62 | insert into M_mark values(3,503,40); 63 | insert into M_mark values(3,504,40); 64 | insert into M_mark values(3,505,40); 65 | insert into M_mark values(3,508,35); 66 | insert into M_mark values(4,501,50); 67 | insert into M_mark values(5,501,60); 68 | insert into M_mark values(6,501,67); 69 | insert into M_mark values(7,501,23); 70 | insert into M_mark values(8,501,43); 71 | insert into M_mark values(9,501,42); 72 | insert into M_mark values(10,505,74); 73 | insert into M_mark values(11,508,98); 74 | insert into M_mark values(12,501,40); 75 | insert into M_mark values(5,502,43); 76 | insert into M_mark values(6,503,40); 77 | insert into M_mark values(7,504,40); 78 | insert into M_mark values(8,505,40); 79 | insert into M_mark values(9,508,35); 80 | insert into M_mark values(10,501,50); 81 | insert into M_mark values(11,501,60); 82 | insert into M_mark values(12,503,67); 83 | insert into M_mark values(5,504,23); 84 | insert into M_mark values(6,504,23); 85 | insert into M_mark values(9,504,1); 86 | insert into M_mark values(10,504,1); 87 | insert into M_mark values(6,502,43); 88 | insert into M_mark values(7,505,42); 89 | select count(*) "No of Faculty = " from Faculty; 90 | select studentname,sum(mark) "Total Mark" from M_mark,Student where Student.studentcode= M_mark.studentcode group by studentname; 91 | select subjectname,round(avg(mark),2) "Average mark" from Subject,M_mark where Subject.subjectcode= M_mark.subjectcode group by subjectname; 92 | select Subject.subjectname, count(studentname) "NO: OF STUDENTS" from Subject,M_mark, Student where Student.studentcode= M_mark.studentcode and M_mark.mark<(40* maxmark)/100 and Subject.subjectCode=M_mark.subjectcode group by 93 | Subject.Subjectname having count(distinct(M_mark.subjectcode))>=1; 94 | select studentname, subjectname,mark,maxmark,round((M_mark.mark/maxmark)*100,2) "Percentage" from Subject, Student, M_mark where mark<(40*maxmark/100) and 95 | Subject.subjectCode = M_mark. subjectcode and Student.studentcode =M_mark.studentcode; 96 | select Faculty.F_name,Subject.subjectname from Faculty, Subject where Faculty.F_code=Subject.faculty_code; 97 | select F_Name from Faculty where (select count(subjectcode) from Subject where Subject.faculty_code=Faculty.F_Code) > 1 group by Faculty.F_Name; 98 | select studentname,subjectname,mark from Student,Subject,M_mark where Student.studentcode=M_mark.studentcode and Subject.subjectcode=M_mark.subjectcode order by mark; 99 | -------------------------------------------------------------------------------- /Expt_6_BuiltIn.sql: -------------------------------------------------------------------------------- 1 | 1. Mathematical Functions 2 | 1.1 ABS 3 | mysql> select ABS(-100) from dual; 4 | +-----------+ 5 | | ABS(-100) | 6 | +-----------+ 7 | | 100 | 8 | +-----------+ 9 | 1.2 FLOOR 10 | mysql> select floor(3.14) from dual; 11 | +-------------+ 12 | | floor(3.14) | 13 | +-------------+ 14 | | 3 | 15 | 16 | 1.3 GREATEST 17 | mysql> select greatest (2,3) from dual; 18 | +----------------+ 19 | | greatest (2,3) | 20 | +----------------+ 21 | | 3 | 22 | +----------------+ 23 | 1.4 LEAST 24 | mysql> select least(6,3,6,3,7,1) from dual; 25 | +--------------------+ 26 | | least(6,3,6,3,7,1) | 27 | +--------------------+ 28 | | 1 | 29 | +--------------------+ 30 | 1.5 LENGTH 31 | mysql> select length('adishankara college') from dual; 32 | +-------------------------------+ 33 | | length('adishankara college') | 34 | +-------------------------------+ 35 | | 19 | 36 | +-------------------------------+ 37 | 38 | mysql> select length (123456) from dual; 39 | +-----------------+ 40 | | length (123456) | 41 | +-----------------+ 42 | | 6 | 43 | +-----------------+ 44 | 1.6 SQRT 45 | mysql> select sqrt(25) from dual; 46 | +----------+ 47 | | sqrt(25) | 48 | +----------+ 49 | | 5 | 50 | 1.7 POWER 51 | mysql> select power(5,2) from dual; 52 | +------------+ 53 | | power(5,2) | 54 | +------------+ 55 | | 25 | 56 | +------------+ 57 | 1.8 ROUND 58 | mysql> select round(3.5) from dual; 59 | +------------+ 60 | | round(3.5) | 61 | +------------+ 62 | | 4 | 63 | +------------+ 64 | mysql> select round(3.4) from dual; 65 | +------------+ 66 | | round(3.4) | 67 | +------------+ 68 | | 3 | 69 | 1.9 SIN, COS, TAN 70 | mysql> select sin(90) from dual; 71 | +--------------------+ 72 | | sin(90) | 73 | +--------------------+ 74 | | 0.8939966636005579 | 75 | +--------------------+ 76 | mysql> select cos(90) from dual; 77 | +---------------------+ 78 | | cos(90) | 79 | +---------------------+ 80 | | -0.4480736161291701 | 81 | +---------------------+ 82 | mysql> select tan(90) from dual; 83 | +--------------------+ 84 | | tan(90) | 85 | +--------------------+ 86 | | -1.995200412208242 | 87 | +--------------------+ 88 | 1.10 LN, LOG 89 | mysql> select ln(2) from dual; 90 | +--------------------+ 91 | | ln(2) | 92 | +--------------------+ 93 | | 0.6931471805599453 | 94 | +--------------------+ 95 | mysql> select log(2) from dual; 96 | +--------------------+ 97 | | log(2) | 98 | +--------------------+ 99 | | 0.6931471805599453 | 100 | +--------------------+ 101 | 1.11 MOD 102 | mysql> select mod(4,3) from dual; 103 | +----------+ 104 | | mod(4,3) | 105 | +----------+ 106 | | 1 | 107 | +----------+ 108 | 1 row in set (0.00 sec) 109 | mysql> select mod(4,2) from dual; 110 | +----------+ 111 | | mod(4,2) | 112 | +----------+ 113 | | 0 | 114 | +----------+ 115 | 1.10 EXP 116 | mysql> select exp(2) from dual; 117 | +------------------+ 118 | | exp(2) | 119 | +------------------+ 120 | | 7.38905609893065 | 121 | +------------------+ 122 | mysql> select exp(-2) from dual; 123 | +--------------------+ 124 | | exp(-2) | 125 | +--------------------+ 126 | | 0.1353352832366127 | 127 | +--------------------+ 128 | mysql> select exp(0) from dual; 129 | +--------+ 130 | | exp(0) | 131 | +--------+ 132 | | 1 | 133 | +--------+ 134 | mysql> select exp(0) from dual; 135 | +--------+ 136 | | exp(0) | 137 | +--------+ 138 | | 1 | 139 | +--------+ 140 | mysql> select exp(1) from dual; 141 | +-------------------+ 142 | | exp(1) | 143 | +-------------------+ 144 | | 2.718281828459045 | 145 | +-------------------+ 146 | 2.Date Functions 147 | mysql> SELECT CURRENT_DATE FROM DUAL; 148 | +--------------+ 149 | | CURRENT_DATE | 150 | +--------------+ 151 | | 2022-11-21 | 152 | +--------------+ 153 | mysql> SELECT EXTRACT(MONTH FROM 154 | CURRENT_DATE ) FROM DUAL; 155 | +-----------------------------------+ 156 | | EXTRACT(MONTH FROM CURRENT_DATE ) | 157 | +-----------------------------------+ 158 | | 11 | 159 | +-----------------------------------+ 160 | mysql> SELECT EXTRACT(YEAR FROM CURRENT_DATE) 161 | FROM DUAL; 162 | +---------------------------------+ 163 | | EXTRACT(YEAR FROM CURRENT_DATE) | 164 | +---------------------------------+ 165 | | 2022 | 166 | +---------------------------------+ 167 | mysql> SELECT CURRENT_DATE FROM DUAL; 168 | +--------------+ 169 | | CURRENT_DATE | 170 | +--------------+ 171 | | 2022-11-21 | 172 | +--------------+ 173 | mysql> SELECT EXTRACT(YEAR FROM CURRENT_DATE) 174 | FROM DUAL; 175 | +---------------------------------+ 176 | | EXTRACT(YEAR FROM CURRENT_DATE) | 177 | +---------------------------------+ 178 | | 2022 | 179 | +---------------------------------+ 180 | mysql> SELECT EXTRACT(DAY FROM CURRENT_DATE) 181 | FROM DUAL; 182 | +--------------------------------+ 183 | | EXTRACT(DAY FROM CURRENT_DATE) | 184 | +--------------------------------+ 185 | | 21 | 186 | +--------------------------------+ 187 | mysql> SELECT EXTRACT(MONTH FROM CURRENT_DATE) 188 | FROM DUAL; 189 | +----------------------------------+ 190 | | EXTRACT(MONTH FROM CURRENT_DATE) | 191 | +----------------------------------+ 192 | | 11 | 193 | 3. String Functions 194 | mysql> select ascii('t') from dual; 195 | +------------+ 196 | | ascii('t') | 197 | +------------+ 198 | | 116 | 199 | +------------+ 200 | mysql> select ascii('a') from dual; 201 | +------------+ 202 | | ascii('a') | 203 | +------------+ 204 | | 97 | 205 | +------------+ 206 | mysql> select ascii('A') from dual; 207 | +------------+ 208 | | ascii('A') | 209 | +------------+ 210 | | 65 | 211 | mysql> SELECT lower('ASIET - COLLEGE OF ENGINEERING..') 212 | from dual; 213 | +-------------------------------------------+ 214 | | lower('ASIET - COLLEGE OF ENGINEERING..') | 215 | +-------------------------------------------+ 216 | | asiet - college of engineering.. | 217 | mysql> SELECT REPLACE('HELLO','H','K') FROM DUAL; 218 | +--------------------------+ 219 | | REPLACE('HELLO','H','K') | 220 | +--------------------------+ 221 | | KELLO | 222 | +--------------------------+ 223 | mysql> SELECT TRIM('A' FROM 'ANACONDA') FROM DUAL; 224 | +---------------------------+ 225 | | TRIM('A' FROM 'ANACONDA') | 226 | +---------------------------+ 227 | | NACOND | 228 | +------------------------ 229 | -------------------------------------------------------------------------------- /dbms_out/Expt_6_BuiltIntxt.txt: -------------------------------------------------------------------------------- 1 | 1. Mathematical Functions 2 | 1.1 ABS 3 | mysql> select ABS(-100) from dual; 4 | +-----------+ 5 | | ABS(-100) | 6 | +-----------+ 7 | | 100 | 8 | +-----------+ 9 | 1.2 FLOOR 10 | mysql> select floor(3.14) from dual; 11 | +-------------+ 12 | | floor(3.14) | 13 | +-------------+ 14 | | 3 | 15 | 16 | 1.3 GREATEST 17 | mysql> select greatest (2,3) from dual; 18 | +----------------+ 19 | | greatest (2,3) | 20 | +----------------+ 21 | | 3 | 22 | +----------------+ 23 | 1.4 LEAST 24 | mysql> select least(6,3,6,3,7,1) from dual; 25 | +--------------------+ 26 | | least(6,3,6,3,7,1) | 27 | +--------------------+ 28 | | 1 | 29 | +--------------------+ 30 | 1.5 LENGTH 31 | mysql> select length('adishankara college') from dual; 32 | +-------------------------------+ 33 | | length('adishankara college') | 34 | +-------------------------------+ 35 | | 19 | 36 | +-------------------------------+ 37 | 38 | mysql> select length (123456) from dual; 39 | +-----------------+ 40 | | length (123456) | 41 | +-----------------+ 42 | | 6 | 43 | +-----------------+ 44 | 1.6 SQRT 45 | mysql> select sqrt(25) from dual; 46 | +----------+ 47 | | sqrt(25) | 48 | +----------+ 49 | | 5 | 50 | 1.7 POWER 51 | mysql> select power(5,2) from dual; 52 | +------------+ 53 | | power(5,2) | 54 | +------------+ 55 | | 25 | 56 | +------------+ 57 | 1.8 ROUND 58 | mysql> select round(3.5) from dual; 59 | +------------+ 60 | | round(3.5) | 61 | +------------+ 62 | | 4 | 63 | +------------+ 64 | mysql> select round(3.4) from dual; 65 | +------------+ 66 | | round(3.4) | 67 | +------------+ 68 | | 3 | 69 | 1.9 SIN, COS, TAN 70 | mysql> select sin(90) from dual; 71 | +--------------------+ 72 | | sin(90) | 73 | +--------------------+ 74 | | 0.8939966636005579 | 75 | +--------------------+ 76 | mysql> select cos(90) from dual; 77 | +---------------------+ 78 | | cos(90) | 79 | +---------------------+ 80 | | -0.4480736161291701 | 81 | +---------------------+ 82 | mysql> select tan(90) from dual; 83 | +--------------------+ 84 | | tan(90) | 85 | +--------------------+ 86 | | -1.995200412208242 | 87 | +--------------------+ 88 | 1.10 LN, LOG 89 | mysql> select ln(2) from dual; 90 | +--------------------+ 91 | | ln(2) | 92 | +--------------------+ 93 | | 0.6931471805599453 | 94 | +--------------------+ 95 | mysql> select log(2) from dual; 96 | +--------------------+ 97 | | log(2) | 98 | +--------------------+ 99 | | 0.6931471805599453 | 100 | +--------------------+ 101 | 1.11 MOD 102 | mysql> select mod(4,3) from dual; 103 | +----------+ 104 | | mod(4,3) | 105 | +----------+ 106 | | 1 | 107 | +----------+ 108 | 1 row in set (0.00 sec) 109 | mysql> select mod(4,2) from dual; 110 | +----------+ 111 | | mod(4,2) | 112 | +----------+ 113 | | 0 | 114 | +----------+ 115 | 1.10 EXP 116 | mysql> select exp(2) from dual; 117 | +------------------+ 118 | | exp(2) | 119 | +------------------+ 120 | | 7.38905609893065 | 121 | +------------------+ 122 | mysql> select exp(-2) from dual; 123 | +--------------------+ 124 | | exp(-2) | 125 | +--------------------+ 126 | | 0.1353352832366127 | 127 | +--------------------+ 128 | mysql> select exp(0) from dual; 129 | +--------+ 130 | | exp(0) | 131 | +--------+ 132 | | 1 | 133 | +--------+ 134 | mysql> select exp(0) from dual; 135 | +--------+ 136 | | exp(0) | 137 | +--------+ 138 | | 1 | 139 | +--------+ 140 | mysql> select exp(1) from dual; 141 | +-------------------+ 142 | | exp(1) | 143 | +-------------------+ 144 | | 2.718281828459045 | 145 | +-------------------+ 146 | 2.Date Functions 147 | mysql> SELECT CURRENT_DATE FROM DUAL; 148 | +--------------+ 149 | | CURRENT_DATE | 150 | +--------------+ 151 | | 2022-11-21 | 152 | +--------------+ 153 | mysql> SELECT EXTRACT(MONTH FROM 154 | CURRENT_DATE ) FROM DUAL; 155 | +-----------------------------------+ 156 | | EXTRACT(MONTH FROM CURRENT_DATE ) | 157 | +-----------------------------------+ 158 | | 11 | 159 | +-----------------------------------+ 160 | mysql> SELECT EXTRACT(YEAR FROM CURRENT_DATE) 161 | FROM DUAL; 162 | +---------------------------------+ 163 | | EXTRACT(YEAR FROM CURRENT_DATE) | 164 | +---------------------------------+ 165 | | 2022 | 166 | +---------------------------------+ 167 | mysql> SELECT CURRENT_DATE FROM DUAL; 168 | +--------------+ 169 | | CURRENT_DATE | 170 | +--------------+ 171 | | 2022-11-21 | 172 | +--------------+ 173 | mysql> SELECT EXTRACT(YEAR FROM CURRENT_DATE) 174 | FROM DUAL; 175 | +---------------------------------+ 176 | | EXTRACT(YEAR FROM CURRENT_DATE) | 177 | +---------------------------------+ 178 | | 2022 | 179 | +---------------------------------+ 180 | mysql> SELECT EXTRACT(DAY FROM CURRENT_DATE) 181 | FROM DUAL; 182 | +--------------------------------+ 183 | | EXTRACT(DAY FROM CURRENT_DATE) | 184 | +--------------------------------+ 185 | | 21 | 186 | +--------------------------------+ 187 | mysql> SELECT EXTRACT(MONTH FROM CURRENT_DATE) 188 | FROM DUAL; 189 | +----------------------------------+ 190 | | EXTRACT(MONTH FROM CURRENT_DATE) | 191 | +----------------------------------+ 192 | | 11 | 193 | 3. String Functions 194 | mysql> select ascii('t') from dual; 195 | +------------+ 196 | | ascii('t') | 197 | +------------+ 198 | | 116 | 199 | +------------+ 200 | mysql> select ascii('a') from dual; 201 | +------------+ 202 | | ascii('a') | 203 | +------------+ 204 | | 97 | 205 | +------------+ 206 | mysql> select ascii('A') from dual; 207 | +------------+ 208 | | ascii('A') | 209 | +------------+ 210 | | 65 | 211 | mysql> SELECT lower('ASIET - COLLEGE OF ENGINEERING..') 212 | from dual; 213 | +-------------------------------------------+ 214 | | lower('ASIET - COLLEGE OF ENGINEERING..') | 215 | +-------------------------------------------+ 216 | | asiet - college of engineering.. | 217 | mysql> SELECT REPLACE('HELLO','H','K') FROM DUAL; 218 | +--------------------------+ 219 | | REPLACE('HELLO','H','K') | 220 | +--------------------------+ 221 | | KELLO | 222 | +--------------------------+ 223 | mysql> SELECT TRIM('A' FROM 'ANACONDA') FROM DUAL; 224 | +---------------------------+ 225 | | TRIM('A' FROM 'ANACONDA') | 226 | +---------------------------+ 227 | | NACOND | 228 | +------------------------ 229 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |