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(
VARCHAR(15) NOT NULL UNIQUE,
Dname INT PRIMARY KEY,
Dnumber CHAR(9) NOT NULL CHECK (Mgr_ssn != 123456789),
Mgr_ssn DATE);
Mgr_start_date
-- EMPLOYEE
CREATE TABLE EMPLOYEE(
VARCHAR(10) NOT NULL,
Fname CHAR,
Minit VARCHAR(20) NOT NULL,
Lname CHAR(9) PRIMARY KEY,
Ssn DATE,
Bdate VARCHAR(30),
Address CHAR(1),
Sex DECIMAL(5),
Salary CHAR(9),
Super_ssn INT NOT NULL,
Dno FOREIGN KEY (Dno) REFERENCES Department (Dnumber));
-- PROJECT
CREATE TABLE PROJECT(
VARCHAR(15) NOT NULL,
Pname INT NOT NULL,
Pnumber VARCHAR(15),
Plocation INT NOT NULL,
Dnum PRIMARY KEY (Pnumber),
UNIQUE (Pname),
FOREIGN KEY (Dnum) REFERENCES DEPARTMENT(Dnumber));
-- WORKS_ON
CREATE TABLE WORKS_ON(
CHAR(9) NOT NULL,
Essn INT NOT NULL,
Pno DECIMAL(3,1) NOT NULL,
Hours 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(
VARCHAR(15) NOT NULL UNIQUE,
Dname INT PRIMARY KEY,
Dnumber CHAR(9) NOT NULL CHECK (Mgr_ssn != 123456789),
Mgr_ssn DATE);
Mgr_start_date
CREATE TABLE EMPLOYEE(
VARCHAR(10) NOT NULL,
Fname CHAR,
Minit VARCHAR(20) NOT NULL,
Lname CHAR(9) PRIMARY KEY,
Ssn DATE,
Bdate VARCHAR(30),
Address CHAR(1),
Sex DECIMAL(5),
Salary CHAR(9),
Super_ssn INT NOT NULL,
Dno FOREIGN KEY (Dno) REFERENCES Department (Dnumber));
CREATE TABLE PROJECT(
VARCHAR(15) NOT NULL,
Pname INT NOT NULL,
Pnumber VARCHAR(15),
Plocation INT NOT NULL,
Dnum PRIMARY KEY (Pnumber),
UNIQUE (Pname),
FOREIGN KEY (Dnum) REFERENCES DEPARTMENT(Dnumber));
CREATE TABLE WORKS_ON(
CHAR(9) NOT NULL,
Essn INT NOT NULL,
Pno DECIMAL(3,1) NOT NULL,
Hours 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(
CHAR(9) NOT NULL,
Essn INT NOT NULL,
Pno DECIMAL(3,1) NOT NULL,
Hours 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(
CHAR(9) NOT NULL,
Essn INT NOT NULL,
Pno DECIMAL(3,1) NOT NULL,
Hours 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(
CHAR(9) NOT NULL,
Essn INT NOT NULL,
Pno DECIMAL(3,1) NOT NULL,
Hours 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(
CHAR(9) NOT NULL,
Essn INT,
Pno DECIMAL(3,1) NOT NULL,
Hours --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(
CHAR(9) NOT NULL,
Essn INT,
Pno DECIMAL(3,1) NOT NULL,
Hours --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;