DD File
DD File
Code:
-- Create table
CREATE TABLE students (
student_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
course VARCHAR2(100),
admission_year NUMBER
);
-- Insert data
INSERT INTO students VALUES (1, 'Aarav', 'Sharma', 'Computer Science', 2022);
INSERT INTO students VALUES (2, 'Riya', 'Verma', 'Information Technology', 2021);
INSERT INTO students VALUES (3, 'Karan', 'Patel', 'Electronics', 2022);
INSERT INTO students VALUES (4, 'Sneha', 'Nair', 'Computer Science', 2023);
INSERT INTO students VALUES (5, 'Yash', 'Mehta', 'Mechanical', 2020);
-- Display records
SELECT * FROM students;
Output:
1
Practical-2
Aim:
Update or Delete records of a table and modifying structure of a table using Alter and Drop command.
Code:
-- Update
UPDATE students SET course = 'Data Science' WHERE student_id = 2;
-- Delete
DELETE FROM students WHERE admission_year = 2020;
-- Update email
UPDATE students SET email = 'aarav.sharma@example.com' WHERE student_id = 1;
-- Drop column
ALTER TABLE students DROP COLUMN email;
Output:
-- Update
-- Delete
2
-- Update email
-- Drop column
3
Practical-3
Aim:
To perform join operation between various tables.
Code:
-- Create the 'courses' table
CREATE TABLE courses (
course_id NUMBER PRIMARY KEY,
course_name VARCHAR2(100)
);
-- Create the 'student_details' table
CREATE TABLE student_details (
student_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
course_id NUMBER,
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
4
Output:
5
Practical-4
Aim:
Applying constraint using two tables.
Code:
-- Create departments table with constraints
CREATE TABLE departments (
dept_id NUMBER PRIMARY KEY,
dept_name VARCHAR2(100) UNIQUE NOT NULL
);
Output:
6
7
Practical-5
Aim:
To retrieve data from different tables using sub queries and correlated queries.
Code:
-- Simple Subquery: Students in "Computer Science"
SELECT first_name, last_name
FROM students
WHERE dept_id = (
SELECT dept_id
FROM departments
WHERE dept_name = 'Computer Science'
);
-- Correlated Subquery: Students with admission year > avg in their department
SELECT first_name, last_name, dept_id, admission_year
FROM students s
WHERE admission_year > (
SELECT AVG(admission_year)
FROM students
WHERE dept_id = s.dept_id
);
-- Correlated Subquery with EXISTS: Departments that have at least one student
SELECT dept_name
FROM departments d
WHERE EXISTS (
SELECT 1
FROM students s
WHERE s.dept_id = d.dept_id
);
8
-- NOT EXISTS: Departments with no students
SELECT dept_name
FROM departments d
WHERE NOT EXISTS (
SELECT 1
FROM students s
WHERE s.dept_id = d.dept_id
);
Output:
-- Simple Subquery: Students in "Computer Science"
-- Correlated Subquery: Students with admission year > avg in their department
-- Correlated Subquery with EXISTS: Departments that have at least one student
9
Practical-6
Aim:
Create two databases either on single DBMS and Design Database to fragment and share the fragments
from both database and write single query for creating view.
Code:
-- As DBA
CREATE USER db1_user IDENTIFIED BY db1pass;
GRANT CONNECT, RESOURCE TO db1_user;
-- Connect as db1_user
-- Horizontal Fragment: Students from department 1 and 2
CREATE TABLE student_fragment1 (
student_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
dept_id NUMBER
);
INSERT INTO student_fragment1 VALUES (101, 'Aarav', 1);
INSERT INTO student_fragment1 VALUES (102, 'Riya', 2);
-- Connect as db2_user
-- Horizontal Fragment: Students from department 3
CREATE TABLE student_fragment2 (
student_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
dept_id NUMBER
);
INSERT INTO student_fragment2 VALUES (103, 'Karan', 3);
INSERT INTO student_fragment2 VALUES (104, 'Sneha', 3);
10
Output:
-- Create two DB users
11
Practical-7
Aim:
Viewing a Global Database Name
Code:
SELECT name, db_unique_name FROM v$database;
SELECT * FROM global_name;
SELECT name, value
FROM v$parameter
WHERE name IN ('db_name', 'db_domain');
Output:
12