0% found this document useful (0 votes)
4 views

Dbs 1 To 7 Output

Uploaded by

rushideokar65
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Dbs 1 To 7 Output

Uploaded by

rushideokar65
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Programe No. 2 Roll No.

Title: Create database table and Perform various commands.


Aim: Study DDL , DML commands and Data constraints in SQL.
1. CREATE:
SQL> create table employee(emp_id INT PRIMARY KEY,first_name varchar(20),last_name
varchar(20),hire_date DATE);
Table created.
SQL> insert into employee values(1,'john','doe','2-april-2000');
SQL> insert into employee values(2,'jane','smith','1-jan-2020');
SQL> insert into employee values(3,'david','johnson','11-march-2024');
SQL> select * from employee;

EMP_ID FIRST_NAME LAST_NAME HIRE_DATE


---------- -------------------- -------------------- ---------
1 john doe 02-APR-00
2 jane smith 01-JAN-20
3 david johnson 11-MAR-24

2. ALTER:
SQL> ALTER TABLE employee ADD email varchar(100);
Table altered.
SQL> select * from employee;
EMP_ID FIRST_NAME LAST_NAME HIRE_DATE EMAIL
--------------------------------------------------------------------------------
1 john doe 02-APR-00
2 jane smith 01-JAN-20
3 david johnson 11-MAR-24
3. DROP:
DROP TABLE employee;
4. TRUNCATE:
SQL> TRUNCATE TABLE employee;
Table truncated.
5. RENAME:
SQL> RENAME employee TO employee2;
Table renamed.
6. CREATE INDEX:
CREATE INDEX idx_employee_id ON employees(employee_id);
index was created.
7. CREATE VIEW:
CREATE VIEW employee_view AS
SELECT first_name, last_name, hire_date FROM employees;

first_name last_name hire_date

John Doe 2020-03-15

Jane Smith 2018-07-22

Michael Johnson 2019-11-04

Emily Davis 2021-01-12

Data constraints in SQL


1. Primary Key Constraint:
CREATE TABLE STUDENT(STUDENT_ID INT PRIMARY KEY,FIRST_NAME VARCHAR(20)
,LAST_NAME VARCHAR(20));
Table created.
SQL> SELECT * FROM STUDENT;
STUDENT_ID FIRST_NAME LAST_NAME
--------- -------------------- --------------------
1 JOHN DOE
2 JANE SMITH
3 ALICE JOHNSON.
2. Unique Constraint:
CREATE TABLE employees (employee_id INT UNIQUE,first_name VARCHAR(50)
,last_name VARCHAR(50));
CREATE TABLE.

3. Check Constraint:

CREATE TABLE orders (order_id INT,order_date DATE,total_amount DECIMAL(10, 2) CHECK


(total_amount >= 0));
CREATE TABLE.

4. Foreign Key Constraint:

CREATE TABLE orders (order_id INT PRIMARY KEY,customer_id INT,order_date DATE,


FOREIGN KEY (customer_id) REFERENCES customers(customer_id));

5. Default Constraint:

CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),


last_name VARCHAR(50),hire_date DATE DEFAULT CURRENT_DATE);
CREATE TABLE
6. Not Null Constraint:
CREATE TABLE products (product_id INT PRIMARY KEY, product_name VARCHAR(100) NOT
NULL,price DECIMAL(10, 2));
CREATE TABLE
Programe No. 3 Roll No.
Title : Create a database table and apply SQL aggregate functions
Aim: Study aggregate functions .

SQL> SELECT * FROM EMPLOYEE;

ID EMP_NAME DEPARTMENT SALARY AGE


---------- -------------------- -------------------- ---------- ----------
1 ALICE SALE 60000 30
2 BOB SALE 550000 32
3 CHARLIE HR 70000 28
4 DAVID HR 48000 45
5 EVE IT 80000 29
6 FRANK IT 500000 35
7 GRACE SALE 650000 40

7 rows selected.
1. COUNT():
SQL> SELECT COUNT(*) FROM EMPLOYEE;

COUNT(*)
----------
7
2. SUM():

SQL> SELECT SUM(SALARY) FROM EMPLOYEE;


SUM(SALARY)
-----------
1958000
3. AVG():
SQL> SELECT AVG(AGE) FROM EMPLOYEE;
AVG(AGE)
----------
34.1428571
4. MIN():
SQL> SELECT MIN(SALARY) FROM EMPLOYEE;
MIN(SALARY)
-----------
48000
5. MAX():
SQL> SELECT MAX(SALARY) FROM EMPLOYEE;
MAX(SALARY)
-----------
650000
6. GROUP_CONCAT() or STRING_AGG():
SQL> SELECT DEPARTMENT , AVG(SALARY) AS AVG_SALARY FROM EMPLOYEE
GROUP BY DEPARTMENT HAVING AVG(SALARY)>50000;

DEPARTMENT AVG_SALARY
-------------------- ----------
SALE 420000
HR 59000
IT 290000

7. HAVING:
SQL> SELECT DEPARTMENT , AVG(SALARY) AS AVG_SALARY FROM EMPLOYEE
GROUP BY DEPARTMENT HAVING AVG(SALARY) > 50000;
DEPARTMENT AVG_SALARY
-------------------- ----------
SALE 420000
HR 59000
IT 290000

8. DISTINCT:
SQL> SELECT COUNT(DISTINCT DEPARTMENT) FROM EMPLOYEE;
COUNT(DISTINCTDEPARTMENT)
3
Programe No. 4 Roll No.
Title: Create database and perform set operation and join.
Aim: Study set operation and Joins in sql

1. UNION:

SQL> SELECT id,name FROM first UNION SELECT id,name FROM second;
ID NAME

1 jack
2 harry
3 jackson
4 stepha
5 devid

SQL> select * from first;

ID NAME

1 jack
2 harry
3 jackson

2. INTERSECT:
SQL> SELECT id,name FROM first INTERSECT SELECT id,name FROM second;
ID NAME

4 jackson

3. EXCEPT (or MINUS):


SQL> SELECT id,name FROM first EXCEPT SELECT id,name FROM second;
ID NAME

1 jack

2 harry

Joins in SQL

1. INNER JOIN:

SQL> create table EMP(emp_id int primary key,emp_name varchar(20) ,city varchar(20),salary int, age
INT);
Table created.
SQL> select * from EMP;
EMP_ID EMP_NAME CITY SALARY AGE

1 angelina chicago 200000 30


2 robert austin 300000 26
3 christian denver 100000 42
4 kristen washington 500000 29

5 russell los angels 20000 36


6 marry canada 600000 48

6 rows selected.
SQL> select * from project;

SQL> SELECT EMP.EMP_NAME,PROJECT.DEPARTMENTFROM EMP INNER JOIN


project ON project.emp_id = emp.emp_id

EMP_NAME DEPARTMENT

angelina testing
robert development
christian designing
kristen development

2. LEFT (OUTER) JOIN:

SQL> SELECT EMP.EMP_NAME,PROJECT.DEPARTMENTFROM EMP LEFT JOIN PROJECT ON


PROJECT.EMP_ID = EMP.EMP_ID;

EMP_NAME DEPARTMENT

angelina testing
robert development
christian designing
kristen development
Russell t marry

6 rows selected.

3. RIGHT (OUTER) JOIN:

SQL> SELECT EMP.EMP_NAME,PROJECT.DEPARTMENTFROM EMP RIGHT JOIN


PROJECT ON PROJECT.EMP_ID = EMP.EMP_ID;
EMP_NAME DEPARTMENT

angelina testing
robert development
christian designing
kristen development

3. FULL (OUTER) JOIN:

SQL> SELECT EMP.EMP_NAME,PROJECT.DEPARTMENT FROM EMP FULL JOIN


PROJECT ON PROJECT.EMP_ID = EMP.EMP_ID;

EMP_NAME DEPARTMENT

angelina testing
robert development
christian designing
Kristen development

russell
marry

5. CROSS JOIN:
SELECT employees.emp_name AS employee_name, departments.department_name
FROM employees
CROSS JOIN departments;

employee_name department_name

--------------------------------
angelina HR
angelina Finance
angelina Engineering
angelina Sales
robert HR
robert Finance
robert Engineering
robert Sales
christian HR
christian Finance
christian Engineering
christian Sales
kristen HR
kristen Finance
kristen Engineering
kristen Sales
russell HR
russell Finance
russell Engineering
russell Sales
marry HR
marry Finance
marry Engineering
marry Sales

6. SELF JOIN:
SELECT e1.emp_name AS employee_name, e2.emp_name AS supervisor_name
FROM employees e1
INNER JOIN employees e2 ON e1.supervisor_id = e2.emp_id;
employee_name supervisor_name
--------------------------------
robert angelina
christian angelina
kristen robert
russell robert
marry Christian
4.
Programe No. 5 Roll No.
Title: Create database for bookstore and solve queries.
Aim : Creation of databases Booksotre, writing SQL and PL/SQL queries to retrieve
information from the databases.
SQL> create table authors(authorID int primary key,authorname varchar(20));
Table created.
SQL> insert into authors values(1,'jane austen');
SQL> insert into authors values(2,'charles dickens');
SQL> insert into authors values(3,'mark twain');
SQL> select * from authors;
AUTHORID AUTHORNAME
---------- --------------------
1 jane austen
2 charles dickens
3 mark twain
SQL> create table books(bookID int primary key,title varchar(20),authorID int,price
decimal(10,2),publishedyear int,foreign key(authorID) references authors(authorID));
Table created.
SQL> insert into books values(1,'pride and prejudice',1,12.99,1813);
SQL> insert into books values(2,'great expectations',2,15.50,1860);
SQL> insert into books values(3,'adventures of finn',3,10.99,1884);
SQL> insert into books values(4,'sense sensibility',1,11.99,1811);
SQL> insert into books values(5,'oliver twist',2,14.00,1837);
SQL> select * from books;
BOOKID TITLE AUTHORID PRICE PUBLISHEDYEAR
---------- -------------------- ---------- ---------- -------------
1 pride and prejudice 1 12.99 1813
2 great expectations 2 15.5 1860
3 adventures of finn 3 10.99 1884
4 sense sensibility 1 11.99 1811
5 oliver twist 2 14 1837

Operations:-
1. List all authors and their books.
2. Find the total number of books published in 19th century (1800-1899)
3. Find the average price of books
4. Find the book with the highest price
5. Update book price
6. Delete a book
SQL> select a.authorname,b.title from authors a join books b ON a.authorid = b.authorid;
AUTHORNAME TITLE
-------------------- --------------------
jane austen pride and prejudice
charles dickens great expectations
mark twain adventures of finn
jane austen sense sensibility
charles dickens oliver twist

SQL> select count(*) AS totalbooks19thcentury from books where publishedyear between 1800
AND 1899;
TOTALBOOKS19THCENTURY
---------------------
5
SQL> select avg(price) AS averageprice from books;
AVERAGEPRICE
------------
13.094
SQL> select title,price from books where price = (select max(price) from books);
TITLE PRICE
-------------------- ----------
great expectations 15.5
SQL> update books set price =13.99 where bookid = 1;
1 row updated.
SQL> select * from books;

BOOKID TITLE AUTHORID PRICE PUBLISHEDYEAR


---------- -------------------- ---------- ---------- -------------
1 pride and prejudice 1 13.99 1813
2 great expectations 2 15.5 1860
3 adventures of finn 3 10.99 1884
4 sense sensibility 1 11.99 1811
5 oliver twist 2 14 1837

SQL> delete from books where bookid =3;


row deleted.
SQL> select * from books;
BOOKID TITLE AUTHORID PRICE PUBLISHED YEAR
---------- -------------------- ---------- ---------- -------------
1 pride and prejudice 1 13.99 1813
2 great expectations 2 15.5 1860
4 sense sensibility 1 11.99 1811
5 oliver twist 2 14 1837

EMPLOYEES
Operations:-
1. List all employees and their departments
2. Find the average salary of employees
3. Find the highest-paid employee
4. Find employees hired in 2021
5. Update an employee's salary
6. Delete an employee
SQL> create table departments(departmentID int primary key,departmentName varchar(30) not
null);
Table created.
SQL> insert into departments values(1,'human resources');
SQL> insert into departments values(2,'finance');
SQL> insert into departments values(3,'sales');
SQL> select * from departments;
DEPARTMENTID DEPARTMENTNAME
------------ ------------------------------
1 human resources
2 finance
3 sales
SQL> CREATE TABLE EMPLOYEES (EMPLOYEEid INT PRIMARY KEY,FIRSTNAME
VARCHAR(20),LASTNAME varchar(20),DEPARTMENTID INT,SALARY
DECIMAL(10,2),HIREDATE DATE,FOREIGN KEY (DEPARTMENTID) REFERENCES
DEPARTMENTS(DEPARTMENTID));
Table created.
SQL> INSERT INTO EMPLOYEES VALUES(1,'JOHN','DOE',1,50000.00,'15-MAY-2021');
SQL> INSERT INTO EMPLOYEES VALUES(2,'JANE','SMITH',2,75000.00,'12-MARCH-2021');
SQL> INSERT INTO EMPLOYEES VALUES(3,'ALICE','JOHNSON',3,60000.00,'22-AUG-2022');
SQL> INSERT INTO EMPLOYEES VALUES(4,'BOB','BROWN',1,550000.00,'10-NOV-2019');
SQL> INSERT INTO EMPLOYEES VALUES(5,'CHARLIE','DAVIS',2,80000.00,'5-JAN-2022');
SQL> SELECT * FROM EMPLOYEES;
EMPLOYEEID FIRSTNAME LASTNAME DEPARTMENTID SALARY HIREDATE
---------- -------------------- -------------------- ------------ --------- ---------
1 JOHN DOE 1 50000 15-MAY-21
2 JANE SMITH 2 75000 12-MAR-21
3 ALICE JOHNSON 3 60000 22-AUG-22
4 BOB BROWN 1 550000 10-NOV-19
5 CHARLIE DAVIS 2 80000 05-JAN-22

SQL> SELECT E.FIRSTNAME,E.LASTNAME,D.DEPARTMENTNAME FROM EMPLOYEES


E LEFT JOIN DEPARTMENTS D ON E.DEPARTMENTID = D.DEPARTMENTID;
FIRSTNAME LASTNAME DEPARTMENTNAME
-------------------- -------------------- ------------------------------
JOHN DOE human resources
BOB BROWN human resources
JANE SMITH finance
CHARLIE DAVIS finance
ALICE JOHNSON sales
SQL> SELECT AVG(SALARY) AS AVERAGESALARY FROM EMPLOYEES;
AVERAGESALARY
-------------
163000
SQL> UPDATE EMPLOYEES SET SALARY = 60000 WHERE EMPLOYEEID = 1;
1 row updated.
SQL> SELECT * FROM EMPLOYEES;
EMPLOYEEID FIRSTNAME LASTNAME DEPARTMENTID SALARY
HIREDATE
---------- -------------------- -------------------- ------------ ----------
1 JOHN DOE 1 60000 15-MAY-21
2 JANE SMITH 2 75000 12-MAR-21
2 JANE SMITH 2 75000 12-MAR-21
2 JANE SMITH 2 75000 12-MAR-21
3 ALICE JOHNSON 3 60000 22-AUG-22
4 BOB BROWN 1 550000 10-NOV-19
5 CHARLIE DAVIS 2 80000 05-JAN-22

SQL> DELETE FROM EMPLOYEES WHERE EMPLOYEEID = 1;


1 row deleted.
SQL> SELECT * FROM EMPLOYEES;
EMPLOYEEID FIRSTNAME LASTNAME DEPARTMENTID SALARY HIREDATE
---------- -------------------- -------------------- ------------ ----------
2 JANE SMITH 2 75000 12-MAR-21
3 ALICE JOHNSON 3 60000 22-AUG-22
4 BOB BROWN 1 550000 10-NOV-19
5 CHARLIE DAVIS 2 80000 05-JAN-22
Programe No -6 Roll No.
Aim : Creation of databases, writing SQL and PL/SQL queries to retrieve information from the
databases.
Title: Create database for Students and solve queries.

SQL> create table departments1(departmentID int primary key,departmentName varchar(10));


Table created.
SQL> create table students(studentId int primary key,firstname varchar(10),lastname
varchar(10),departmentid int,gpa decimal(3,2),enrollmentdate DATE,FOREIGN KEY(departmentid)
REFERENCES departments(departmentid));
Table created.
SQL> insert into departments1 values(1,'computer');
SQL> insert into departments1 values(2,'mechanical');
SQL> insert into departments1 values(3,'electrical');
SQL> insert into departments1 values(4,'biology');
SQL> select * from departments1;
DEPARTMENTID DEPARTMENT
------------ ----------
1 computer
2 mechanical
3 electrical
4 biology
SQL> insert into students values(1,'john','doe',1,3.7,'1-sep-2020');
SQL> insert into students values(2,'jane','smith',2,3.9,'15-mar-2021');
SQL> insert into students values(3,'alice','johnson',3,3.5,'20-jun-2020');
created.
SQL> insert into students values(4,'bob','lee',1,3.8,'10-aug-2020');
SQL> insert into students values(5,'charlie','brown',4,3.2,'20-jan-2021');
insert into students values(5,'charlie','brown',4,3.2,'20-jan-2021')
SQL> select * from students;
STUDENTID FIRSTNAME LASTNAME DEPARTMENTID GPA ENROLLMEN
---------- ---------- ---------- ------------ ---------- ---------
1 john doe 1 3.7 01-SEP-20
2 jane smith 2 3.9 15-MAR-21
3 alice johnson 3 3.5 20-JUN-20
4 bob lee 1 3.8 10-AUG-20
SQL> select s.studentID,s.firstName,s.lastname,d.departmentname FROM Students s JOIN
departments d ON s.departmentID = d.departmentID;
STUDENTID FIRSTNAME LASTNAME DEPARTMENTNAME
---------- ---------- ---------- ------------------------------
1 john doe human resources
2 jane smith finance
3 alice johnson sales
4 bob lee human resources
SQL> select avg(gpa) AS averagegpa from students;
AVERAGEGPA
----------
3.725
SQL> select * from students where gpa=(select max(gpa) from students);
STUDENTID FIRSTNAME LASTNAME DEPARTMENTID GPA ENROLLMEN
---------- ---------- ---------- ------------ ---------- ---------
2 jane smith 2 3.9 15-MAR-21
SQL> UPDATE STUDENTS SET GPA=3.7 WHERE STUDENTID =1;
1 row updated.
SQL> SELECT * FROM STUDENTS;
STUDENTID FIRSTNAME LASTNAME DEPARTMENTID GPA ENROLLMEN
---------- ---------- ---------- ------------ ---------- ---------
1 john doe 1 3.7 01-SEP-20
2 jane smith 2 3.9 15-MAR-21
3 alice johnson 3 3.5 20-JUN-20
4 bob lee 1 3.8 10-AUG-20
SQL> DELETE FROM STUDENTS WHERE STUDENTID = 5;
SQL> DELETE FROM STUDENTS WHERE STUDENTID = 4;
2 row deleted.
SQL> SELECT * FROM STUDENTS;
STUDENTID FIRSTNAME LASTNAME DEPARTMENTID GPA ENROLLMEN
---------- ---------- ---------- ------------ ---------- ---------
1 john doe 1 3.7 01-SEP-20
2 jane smith 2 3.9 15-MAR-21
3 alice johnson 3 3.5 20-JUN-20
Programe No -7 Roll No.
Title: Assignment on Trigger and Cursors.
Aim: Study Triggers & Cursors in SQL

CREATE TABLE Products ( ProductID INT PRIMARY KEY IDENTITY(1,1), ProductName


NVARCHAR(100) NOT NULL, Price DECIMAL(10,2) NOT NULL, Quantity INT NOT NULL);
CREATE TABLE ProductAudit (AuditID INT PRIMARY KEY IDENTITY(1,1),Action
NVARCHAR(50), ProductID INT,ProductName NVARCHAR(100), Price DECIMAL(10,2),
Quantity INT, ChangeDate DATETIME DEFAULT GETDATE());
1. DML Triggers:
• INSERT
INSERT INTO Products (ProductName, Price, Quantity) VALUES ('Laptop', 1500.00, 10);

• UPDATE
UPDATE Products SET Price = 1400.00, Quantity = 8 WHERE ProductID = 1;

• DELETE
DELETE FROM Products WHERE ProductID = 1;
Outputs:-
----------------------------------------------------------------------------------
| AuditID | Action | ProductID | ProductName | Price | Quantity | ChangeDate |
----------------------------------------------------------------------------------
|1 | INSERT | 1 | Laptop | 1500.00 | 10 | 2024-11-16 12:00:00 |
|2 | UPDATE | 1 | Laptop | 1400.00 | 8 | 2024-11-16 12:05:00 |
|3 | DELETE | 1 | Laptop | 1400.00 | 8 | 2024-11-16 12:10:00 |

2. DDL Triggers:
CREATE TABLE DDLAudit (AuditID INT IDENTITY(1,1) PRIMARY KEY, EventType
NVARCHAR(100), ObjectName NVARCHAR(255),ObjectType NVARCHAR(100),EventData
XML, AuditDate DATETIME DEFAULT GETDATE());
• creation
CREATE TABLE TestTable (ID INT PRIMARY KEY,Name NVARCHAR(50));
• alteration
ALTER TABLE TestTable ADD CreatedDate DATETIME;

-----------------------------------------------------------------------------------------------------------
| AuditID | EventType | ObjectName | ObjectType | EventData | AuditDate |
----------------------------------------------------------------------------------------------------------
|1 | CREATE_TABLE | TestTable | TABLE | <XML data about CREATE_TABLE event> |
2024-11-16 12:00:00 |
|2 | ALTER_TABLE | TestTable | TABLE | <XML data about ALTER_TABLE event> |
2024-11-16 12:05:00 |
|3 | DROP_TABLE | TestTable | TABLE | <XML data about DROP_TABLE event> |
2024-11-16 12:10:00 |
Cursors:
1. Implicit Cursors:

CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, FirstName


NVARCHAR(50), LastName NVARCHAR(50), Salary DECIMAL(10, 2));

INSERT INTO Employees (EmployeeID, FirstName, LastName, Salary)VALUES (1, 'John',


'Doe', 50000), (2, 'Jane', 'Smith', 60000), (3, 'Mike', 'Johnson', 55000);

DECLARE @EmployeeSalary DECIMAL(10, 2);


SELECT Salary INTO @EmployeeSalary FROM Employees WHERE EmployeeID = 1;
PRINT 'The salary of the employee is: ' + CAST(@EmployeeSalary AS NVARCHAR(50));

Output:-
The salary of the employee is: 50000.00

2. Explicit Cursors:
CREATE TABLE Employees (EmployeeID INT PRIMARY KEY, FirstName
NVARCHAR(50),LastName NVARCHAR(50),Salary DECIMAL(10, 2));
INSERT INTO Employees (EmployeeID, FirstName, LastName, Salary)VALUES
(1, 'John', 'Doe', 50000),
(2, 'Jane', 'Smith', 60000),
(3, 'Mike', 'Johnson', 55000);

DECLARE @FirstName NVARCHAR(50); DECLARE @LastName NVARCHAR(50);


DECLARE @Salary DECIMAL(10, 2);

DECLARE EmployeeCursor CURSOR FOR SELECT FirstName, LastName, Salary FROM


Employees;
OPEN EmployeeCursor;
FETCH NEXT FROM EmployeeCursor INTO @FirstName, @LastName, @Salary;
WHILE @@FETCH_STATUS = 0BEGIN
PRINT 'Employee: ' + @FirstName + ' ' + @LastName + ' earns ' + CAST(@Salary AS
NVARCHAR(20));
FETCH NEXT FROM EmployeeCursor INTO @FirstName, @LastName, @Salary;
END;

CLOSE EmployeeCursor;
DEALLOCATE EmployeeCursor;

Output:- Employee: John Doe earns 50000.00


Employee: Jane Smith earns 60000.00
Employee: Mike Johnson earns 55000.00

You might also like