Data Manipulation Language : Insert, Update, Delete in SQL
Create Database
Create some tables
DROP TABLE IF EXISTS PROJECT;
DROP TABLE IF EXISTS WORKS_ON;
DROP TABLE IF EXISTS EMPLOYEE;
DROP TABLE IF EXISTS DEPARTMENT;
-- DEPARTEMENT
CREATE TABLE DEPARTMENT(
Dname VARCHAR(15) NOT NULL UNIQUE,
Dnumber INT PRIMARY KEY,
Mgr_ssn CHAR(9) NOT NULL CHECK (Mgr_ssn != 123456789),
Mgr_start_date DATE);
-- EMPLOYEE
CREATE TABLE EMPLOYEE(
Fname VARCHAR(10) NOT NULL,
Minit CHAR,
Lname VARCHAR(20) NOT NULL,
Ssn CHAR(9) PRIMARY KEY,
Bdate DATE,
Address VARCHAR(30),
Sex CHAR(1),
Salary DECIMAL(5),
Super_ssn CHAR(9),
Dno INT NOT NULL,
FOREIGN KEY (Dno) REFERENCES Department (Dnumber));
-- PROJECT
CREATE TABLE PROJECT(
Pname VARCHAR(15) NOT NULL,
Pnumber INT NOT NULL,
Plocation VARCHAR(15),
Dnum INT NOT NULL,
PRIMARY KEY (Pnumber),
UNIQUE (Pname),
FOREIGN KEY (Dnum) REFERENCES DEPARTMENT(Dnumber));
-- WORKS_ON
CREATE TABLE WORKS_ON(
Essn CHAR(9) NOT NULL,
Pno INT NOT NULL,
Hours DECIMAL(3,1) NOT NULL,
PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber));
-- INSERT
INSERT INTO DEPARTMENT
VALUES ('Research',5,333445555,'1988-05-22'),
('Administration',4,987654321,'1995-01-01'),
('Headquarters',1,888665555,'1981-06-19');
-- DIFFERENT TYPE OF INSERT
-- INSERT INTO table-name VALUES (values) ; SINGLE VALUE
INSERT INTO EMPLOYEE
VALUES ('John','B','Smith',123456789,'1965-01-09','731 Fondren, Houston TX','M',30000,333445555,5);
-- INSERT INTO table-name VALUES (values) ; MORE THAN ONE VALUE
INSERT INTO EMPLOYEE
VALUES ('Franklin','T','Wong',333445555,NULL,NULL,'M',40000,888665555,5),
('Alicia','J','Zelaya',999887777,'1968-01-19','3321 Castle, Spring TX','F',25000,987654321,4);
-- INSERT INTO table-name (column-names) VALUES (values) ; COMPLETE COLUMN
INSERT INTO EMPLOYEE (Fname, Minit, Lname,Ssn, Bdate, Dno, Salary, Address, Super_ssn, Sex)
VALUES ('Jennifer','S','Wallace',987654321,'1941-06-20',4,4300,'291 Berry, Bellaire TX',888665555,'F'),
('Ramesh','K','Narayan',666884444,'1962-09-15',5,38000,'975 Fire Oak, Humble TX',333445555,'M');
-- INSERT INTO table-name (column-names) VALUES (values) ; SOME COLUMN
INSERT INTO EMPLOYEE (Fname, Minit, Lname,Ssn, Dno)
VALUES ('Joyce','A','English',453453453,5),
('Ahmad','V','Jabbar',987987987,4);
-- INSERT INTO table-name (column-names) VALUES (values) ; RANDOM COLUMN
INSERT INTO EMPLOYEE (Fname, Lname,Ssn, Dno, Salary, Minit, Bdate)
VALUES ('James','Borg',888665555,1,55000,'E','1937-11-10');
INSERT INTO PROJECT
VALUES ('ProductX',1,'Bellaire',5),
('ProductY',2,'Sugarland',5),
('ProductZ',3,'Houston',5),
('Computerization',10,'Stafford',4),
('Reorganization',20,'Houston',1),
('Newbenefits',30,'Stafford',4);
INSERT INTO WORKS_ON
VALUES (123456789,1,32.5),
(123456789,2,7.5),
(666884444,3,40.0),
(453453453,1,20.0),
(453453453,2,20.0),
(333445555,2,10.0),
(333445555,3,10.0),
(333445555,10,10.0),
(333445555,20,10.0),
(999887777,30,30.0),
(999887777,10,10.0),
(987987987,10,35.0),
(987987987,30,5.0),
(987654321,30,20.0),
(987654321,20,15.0),
(888665555,20,16.0);View The Tables
SELECT * FROM DEPARTMENT;| Dname | Dnumber | Mgr_ssn | Mgr_start_date |
|---|---|---|---|
| Research | 5 | 333445555 | 1988-05-22 |
| Administration | 4 | 987654321 | 1995-01-01 |
| Headquarters | 1 | 888665555 | 1981-06-19 |
SELECT * FROM EMPLOYEE;| Fname | Minit | Lname | Ssn | Bdate | Address | Sex | Salary | Super_ssn | Dno |
|---|---|---|---|---|---|---|---|---|---|
| John | B | Smith | 123456789 | 1965-01-09 | 731 Fondren, Houston TX | M | 30000 | 333445555 | 5 |
| Franklin | T | Wong | 333445555 | NA | NA | M | 40000 | 888665555 | 5 |
| Alicia | J | Zelaya | 999887777 | 1968-01-19 | 3321 Castle, Spring TX | F | 25000 | 987654321 | 4 |
| Jennifer | S | Wallace | 987654321 | 1941-06-20 | 291 Berry, Bellaire TX | F | 4300 | 888665555 | 4 |
| Ramesh | K | Narayan | 666884444 | 1962-09-15 | 975 Fire Oak, Humble TX | M | 38000 | 333445555 | 5 |
| Joyce | A | English | 453453453 | NA | NA | NA | NA | NA | 5 |
| Ahmad | V | Jabbar | 987987987 | NA | NA | NA | NA | NA | 4 |
| James | E | Borg | 888665555 | 1937-11-10 | NA | NA | 55000 | NA | 1 |
SELECT * FROM PROJECT;| Pname | Pnumber | Plocation | Dnum |
|---|---|---|---|
| ProductX | 1 | Bellaire | 5 |
| ProductY | 2 | Sugarland | 5 |
| ProductZ | 3 | Houston | 5 |
| Computerization | 10 | Stafford | 4 |
| Reorganization | 20 | Houston | 1 |
| Newbenefits | 30 | Stafford | 4 |
SELECT * FROM WORKS_ON;| Essn | Pno | Hours |
|---|---|---|
| 123456789 | 1 | 32.5 |
| 123456789 | 2 | 7.5 |
| 666884444 | 3 | 40.0 |
| 453453453 | 1 | 20.0 |
| 453453453 | 2 | 20.0 |
| 333445555 | 2 | 10.0 |
| 333445555 | 3 | 10.0 |
| 333445555 | 10 | 10.0 |
| 333445555 | 20 | 10.0 |
| 999887777 | 30 | 30.0 |
Foreign Key Constraint
DROP TABLE IF EXISTS WORKS_ON;
DROP TABLE IF EXISTS PROJECT;
DROP TABLE IF EXISTS EMPLOYEE;
DROP TABLE IF EXISTS DEPARTMENT;
CREATE TABLE DEPARTMENT(
Dname VARCHAR(15) NOT NULL UNIQUE,
Dnumber INT PRIMARY KEY,
Mgr_ssn CHAR(9) NOT NULL CHECK (Mgr_ssn != 123456789),
Mgr_start_date DATE);
CREATE TABLE EMPLOYEE(
Fname VARCHAR(10) NOT NULL,
Minit CHAR,
Lname VARCHAR(20) NOT NULL,
Ssn CHAR(9) PRIMARY KEY,
Bdate DATE,
Address VARCHAR(30),
Sex CHAR(1),
Salary DECIMAL(5),
Super_ssn CHAR(9),
Dno INT NOT NULL,
FOREIGN KEY (Dno) REFERENCES Department (Dnumber));
CREATE TABLE PROJECT(
Pname VARCHAR(15) NOT NULL,
Pnumber INT NOT NULL,
Plocation VARCHAR(15),
Dnum INT NOT NULL,
PRIMARY KEY (Pnumber),
UNIQUE (Pname),
FOREIGN KEY (Dnum) REFERENCES DEPARTMENT(Dnumber));
CREATE TABLE WORKS_ON(
Essn CHAR(9) NOT NULL,
Pno INT NOT NULL,
Hours DECIMAL(3,1) NOT NULL,
PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber));
INSERT INTO DEPARTMENT
VALUES ('Research',5,333445555,'1988-05-22'),
('Administration',4,987654321,'1995-01-01'),
('Headquarters',1,888665555,'1981-06-19');
INSERT INTO EMPLOYEE
VALUES ('John','B','Smith',123456789,'1965-01-09','731 Fondren, Houston TX','M',30000,333445555,5);
INSERT INTO EMPLOYEE
VALUES ('Franklin','T','Wong',333445555,NULL,NULL,'M',40000,888665555,5),
('Alicia','J','Zelaya',999887777,'1968-01-19','3321 Castle, Spring TX','F',25000,987654321,4);
INSERT INTO EMPLOYEE (Fname, Minit, Lname,Ssn, Bdate, Dno, Salary, Address, Super_ssn, Sex)
VALUES ('Jennifer','S','Wallace',987654321,'1941-06-20',4,4300,'291 Berry, Bellaire TX',888665555,'F'),
('Ramesh','K','Narayan',666884444,'1962-09-15',5,38000,'975 Fire Oak, Humble TX',333445555,'M');
INSERT INTO EMPLOYEE (Fname, Minit, Lname,Ssn, Dno)
VALUES ('Joyce','A','English',453453453,5),
('Ahmad','V','Jabbar',987987987,4);
INSERT INTO EMPLOYEE (Fname, Lname,Ssn, Dno, Salary, Minit, Bdate)
VALUES ('James','Borg',888665555,1,55000,'E','1937-11-10');
INSERT INTO PROJECT
VALUES ('ProductX',1,'Bellaire',5),
('ProductY',2,'Sugarland',5),
('ProductZ',3,'Houston',5),
('Computerization',10,'Stafford',4),
('Reorganization',20,'Houston',1),
('Newbenefits',30,'Stafford',4);
INSERT INTO WORKS_ON
VALUES (123456789,1,32.5),
(123456789,2,7.5),
(666884444,3,40.0),
(453453453,1,20.0),
(453453453,2,20.0),
(333445555,2,10.0),
(333445555,3,10.0),
(333445555,10,10.0),
(333445555,20,10.0),
(999887777,30,30.0),
(999887777,10,10.0),
(987987987,10,35.0),
(987987987,30,5.0),
(987654321,30,20.0),
(987654321,20,15.0),
(888665555,20,16.0);CASCADE
DROP TABLE IF EXISTS Works_On;
DROP TABLE IF EXISTS WORKS_ON_CASCADE;
DROP TABLE IF EXISTS WORKS_ON_RESTRICT;
DROP TABLE IF EXISTS WORKS_ON_NO_ACTION;
DROP TABLE IF EXISTS WORKS_ON_SET_NULL;
DROP TABLE IF EXISTS WORKS_ON_SET_DEFAULT;
-- WORKS_ON_CASCADE
CREATE TABLE WORKS_ON_CASCADE(
Essn CHAR(9) NOT NULL,
Pno INT NOT NULL,
Hours DECIMAL(3,1) NOT NULL,
PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber)
ON UPDATE CASCADE
ON DELETE CASCADE);
INSERT INTO WORKS_ON_CASCADE
VALUES (123456789,1,32.5),
(123456789,2,7.5),
(666884444,3,40.0),
(453453453,1,20.0),
(453453453,2,20.0),
(333445555,2,10.0),
(333445555,3,10.0),
(333445555,10,10.0),
(333445555,20,10.0),
(999887777,30,30.0),
(999887777,10,10.0),
(987987987,10,35.0),
(987987987,30,5.0),
(987654321,30,20.0),
(987654321,20,15.0),
(888665555,20,16.0);
SELECT * FROM WORKS_ON_CASCADE;RESTRICT
DROP TABLE IF EXISTS Works_On;
DROP TABLE IF EXISTS WORKS_ON_CASCADE;
DROP TABLE IF EXISTS WORKS_ON_RESTRICT;
DROP TABLE IF EXISTS WORKS_ON_NO_ACTION;
DROP TABLE IF EXISTS WORKS_ON_SET_NULL;
DROP TABLE IF EXISTS WORKS_ON_SET_DEFAULT;
-- WORKS_ON_RESTRICT
CREATE TABLE WORKS_ON_RESTRICT(
Essn CHAR(9) NOT NULL,
Pno INT NOT NULL,
Hours DECIMAL(3,1) NOT NULL,
PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber)
ON UPDATE RESTRICT
ON DELETE RESTRICT);
INSERT INTO WORKS_ON_RESTRICT
VALUES (123456789,1,32.5),
(123456789,2,7.5),
(666884444,3,40.0),
(453453453,1,20.0),
(453453453,2,20.0),
(333445555,2,10.0),
(333445555,3,10.0),
(333445555,10,10.0),
(333445555,20,10.0),
(999887777,30,30.0),
(999887777,10,10.0),
(987987987,10,35.0),
(987987987,30,5.0),
(987654321,30,20.0),
(987654321,20,15.0),
(888665555,20,16.0);
SELECT * FROM WORKS_ON_RESTRICT;NO ACTION
DROP TABLE IF EXISTS Works_On;
DROP TABLE IF EXISTS WORKS_ON_CASCADE;
DROP TABLE IF EXISTS WORKS_ON_RESTRICT;
DROP TABLE IF EXISTS WORKS_ON_NO_ACTION;
DROP TABLE IF EXISTS WORKS_ON_SET_NULL;
DROP TABLE IF EXISTS WORKS_ON_SET_DEFAULT;
-- WORKS_ON_NO_ACTION
CREATE TABLE WORKS_ON_NO_ACTION(
Essn CHAR(9) NOT NULL,
Pno INT NOT NULL,
Hours DECIMAL(3,1) NOT NULL,
PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber)
ON UPDATE NO ACTION
ON DELETE NO ACTION);
INSERT INTO WORKS_ON_NO_ACTION
VALUES (123456789,1,32.5),
(123456789,2,7.5),
(666884444,3,40.0),
(453453453,1,20.0),
(453453453,2,20.0),
(333445555,2,10.0),
(333445555,3,10.0),
(333445555,10,10.0),
(333445555,20,10.0),
(999887777,30,30.0),
(999887777,10,10.0),
(987987987,10,35.0),
(987987987,30,5.0),
(987654321,30,20.0),
(987654321,20,15.0),
(888665555,20,16.0);
SELECT * FROM WORKS_ON_NO_ACTION;SET NULL
DROP TABLE IF EXISTS Works_On;
DROP TABLE IF EXISTS WORKS_ON_CASCADE;
DROP TABLE IF EXISTS WORKS_ON_RESTRICT;
DROP TABLE IF EXISTS WORKS_ON_NO_ACTION;
DROP TABLE IF EXISTS WORKS_ON_SET_NULL;
DROP TABLE IF EXISTS WORKS_ON_SET_DEFAULT;
-- WORKS_ON_SET_NULL
CREATE TABLE WORKS_ON_SET_NULL(
Essn CHAR(9) NOT NULL,
Pno INT,
Hours DECIMAL(3,1) NOT NULL,
--PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber)
ON UPDATE SET NULL
ON DELETE SET NULL);
INSERT INTO WORKS_ON_SET_NULL
VALUES (123456789,1,32.5),
(123456789,2,7.5),
(666884444,3,40.0),
(453453453,1,20.0),
(453453453,2,20.0),
(333445555,2,10.0),
(333445555,3,10.0),
(333445555,10,10.0),
(333445555,20,10.0),
(999887777,30,30.0),
(999887777,10,10.0),
(987987987,10,35.0),
(987987987,30,5.0),
(987654321,30,20.0),
(987654321,20,15.0),
(888665555,20,16.0);
SELECT * FROM WORKS_ON_SET_NULL;SET DEFAULT
DROP TABLE IF EXISTS Works_On;
DROP TABLE IF EXISTS WORKS_ON_CASCADE;
DROP TABLE IF EXISTS WORKS_ON_RESTRICT;
DROP TABLE IF EXISTS WORKS_ON_NO_ACTION;
DROP TABLE IF EXISTS WORKS_ON_SET_NULL;
DROP TABLE IF EXISTS WORKS_ON_SET_DEFAULT;
-- WORKS_ON_SET_NULL
CREATE TABLE WORKS_ON_SET_NULL(
Essn CHAR(9) NOT NULL,
Pno INT,
Hours DECIMAL(3,1) NOT NULL,
--PRIMARY KEY (Essn, Pno),
FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber)
ON UPDATE SET NULL
ON DELETE SET NULL);
INSERT INTO WORKS_ON_SET_NULL
VALUES (123456789,1,32.5),
(123456789,2,7.5),
(666884444,3,40.0),
(453453453,1,20.0),
(453453453,2,20.0),
(333445555,2,10.0),
(333445555,3,10.0),
(333445555,10,10.0),
(333445555,20,10.0),
(999887777,30,30.0),
(999887777,10,10.0),
(987987987,10,35.0),
(987987987,30,5.0),
(987654321,30,20.0),
(987654321,20,15.0),
(888665555,20,16.0);
SELECT * FROM WORKS_ON_SET_NULL;