Giter Site home page Giter Site logo

korth's Introduction

Korth

Database problems and solutions

3.11 Write

a. All students who have taken at least one Comp. Sci. course; (distinct)

SELECT student.ID
FROM student
where 1 <= (SELECT count(DISTINCT course_id)
           FROM takes NATURAL JOIN course
           WHERE course.dept_name='Comp. Sci.'
           and student.ID=takes.ID);

b.

d.

SELECT * FROM instructor;

SELECT MAX(salary),dept_name, instructor.name 
FROM instructor
GROUP BY dept_name;

WITH max_sal_dept as (SELECT MAX(salary) as max_salary,dept_name
     FROM instructor
     GROUP BY dept_name)
SELECT instructor.salary,instructor.dept_name,instructor.name
FROM instructor,max_sal_dept
WHERE instructor.dept_name=max_sal_dept.dept_name
AND instructor.salary=max_sal_dept.max_salary
;

WITH max_sal_dept as (SELECT MAX(salary) as max_salary,dept_name
     FROM instructor
     GROUP BY dept_name)
SELECT *
FROM department,max_sal_dept
WHERE department.dept_name=max_sal_dept.dept_name
;

WITH max_sal_dept as (SELECT MAX(salary) as max_salary,dept_name
     FROM instructor
     GROUP BY dept_name),max_sal_per_dept as (SELECT department.dept_name,max_sal_dept.max_salary,instructor.name
												FROM department,max_sal_dept,instructor
												WHERE department.dept_name=max_sal_dept.dept_name
												and instructor.dept_name=department.dept_name
												and instructor.salary=max_sal_dept.max_salary)
select dept_name,max_salary
FROM
max_sal_per_dept
where max_salary= (select min(max_salary) FROM max_sal_per_dept)
;

3.12

SELECT student.ID, section.course_id, section.sec_id, section.semester, section.year
FROM student,section
WHERE student.dept_name='Comp. Sci.'
AND section.course_id='CS-001'
;

INSERT INTO takes (ID,course_id,sec_id,semester,year)
SELECT student.ID, section.course_id, section.sec_id, section.semester, section.year
FROM student,section
WHERE student.dept_name='Comp. Sci.'
AND section.course_id='CS-001'
;

DELETE FROM takes
WHERE takes.ID in (SELECT student.ID
FROM student
WHERE student.name='Chavez');

DELETE FROM
course
WHERE course_id='CS-001';

DELETE FROM takes
WHERE (takes.course_id,takes.sec_id,takes.semester,takes.year) =
(SELECT section.course_id,section.sec_id,section.semester,section.year
FROM course NATURAL JOIN section
WHERE lower(title) like '%database%');


CREATE TABLE person
		(driver_id	varchar(10),
         name		varchar(20) not null,
         address	varchar(50),
         PRIMARY KEY (driver_id)
         );
	 
	 
CREATE TABLE car
(license	varchar(10),
 model		varchar(10),
 year 		numeric(4,0) check (year>1701 and year<2100),
 PRIMARY KEY (license)
);


CREATE TABLE accident
(report_number	varchar(10),
 date date,
 location varchar(20),
 PRIMARY KEY (report_number)
);

CREATE TABLE owns
(driver_id	varchar(10),
 license	varchar(10),
 PRIMARY KEY (driver_id,license),
 FOREIGN KEY (driver_id) REFERENCES person(driver_id)
 						ON DELETE CASCADE,
 FOREIGN KEY (license) REFERENCES car(license)
 						ON DELETE CASCADE
)

CREATE TABLE participated
(report_number	varchar(10),
 license	varchar(10),
 driver_id	varchar(10),
 damage_amount numeric(12,2),
 PRIMARY KEY (report_number,license),
 FOREIGN KEY (report_number) REFERENCES accident(report_number)
 						ON DELETE CASCADE,
 FOREIGN KEY (license) REFERENCES car(license)
 						ON DELETE CASCADE,
 FOREIGN KEY (driver_id) REFERENCES person(driver_id)
 						ON DELETE SET NULL
)

4.9

CREATE TABLE manager
	(employee_name varchar(20) not null,
     manager_name varchar(20) not null,
     PRIMARY KEY (employee_name),
     FOREIGN KEY (manager_name) REFERENCES manager(employee_name) 
     			ON DELETE CASCADE
    );

CREATE TABLE employee
	(employee_name varchar(20),
    street varchar(20),
    city varchar(20),
    PRIMARY KEY (employee_name)
    );

CREATE TABLE manages
	(employee_name varchar(20),
    manager_name varchar(20),
    PRIMARY KEY (employee_name),
    FOREIGN KEY (employee_name) REFERENCES employee(employee_name) ON DELETE CASCADE,
    FOREIGN KEY (manager_name) REFERENCES employee(employee_name) ON DELETE SET NULL)
 ;   
 
INSERT INTO employee VALUES ('Emp1', 'Street1', 'City1');
INSERT INTO employee VALUES ('Emp2', 'Street2', 'City2');
INSERT INTO employee VALUES ('Emp3', 'Street3', 'City3');
INSERT INTO employee VALUES ('Emp4', 'Street4', 'City4');


SELECT *
FROM employee;

SELECT *
FROM manages;

SELECT * 
FROM manages NATURAL RIGHT OUTER JOIN employee
where manages.manager_name is NULL;

SELECT * 
FROM employee
where employee.employee_name not in (SELECT manages.employee_name
                                    FROM manages
                                    WHERE manages.manager_name is NOT NULL and manages.employee_name=employee.employee_name)
                                    ;
                                    
                                    
SELECT * 
FROM employee
where NOT EXISTS (SELECT *
                  FROM manages
                  WHERE manages.manager_name is NOT NULL AND manages.employee_name=employee.employee_name)
                 ;                                    
		 

korth's People

Contributors

abhijeetmandal avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.