476 lines
		
	
	
		
			No EOL
		
	
	
		
			13 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			476 lines
		
	
	
		
			No EOL
		
	
	
		
			13 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
Credentials
 | 
						|
 | 
						|
- `CCE230953344@ictorcl`
 | 
						|
- `student`
 | 
						|
 | 
						|
## SQL Logs
 | 
						|
```sql
 | 
						|
SQL> create table PERSON(driver_id# varchar(30) primary key,name varchar(50),address varchar(100));
 | 
						|
 | 
						|
Table created.
 | 
						|
 | 
						|
SQL> desc person
 | 
						|
 Name                                      Null?    Type
 | 
						|
 ----------------------------------------- -------- ----------------------------
 | 
						|
 DRIVER_ID#                                NOT NULL VARCHAR2(30)
 | 
						|
 NAME                                               VARCHAR2(50)
 | 
						|
 ADDRESS                                            VARCHAR2(100)
 | 
						|
 | 
						|
SQL> create table CAR(regno varchar(20) primary key,model varchar(30),year int);
 | 
						|
 | 
						|
Table created.
 | 
						|
 | 
						|
SQL> create table ACCIDENT(report_number int, accd_date date, location varchar(50));
 | 
						|
 | 
						|
Table created.
 | 
						|
 | 
						|
SQL> desc accident
 | 
						|
 Name                                      Null?    Type
 | 
						|
 ----------------------------------------- -------- ----------------------------
 | 
						|
 REPORT_NUMBER                                      NUMBER(38)
 | 
						|
 ACCD_DATE                                          DATE
 | 
						|
 LOCATION                                           VARCHAR2(50)
 | 
						|
 | 
						|
SQL> alter table accident add constraint pkey primary key(report_number);
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> desc ACCIDENT;
 | 
						|
 Name                                      Null?    Type
 | 
						|
 ----------------------------------------- -------- ----------------------------
 | 
						|
 REPORT_NUMBER                             NOT NULL NUMBER(38)
 | 
						|
 ACCD_DATE                                          DATE
 | 
						|
 LOCATION       
 | 
						|
 | 
						|
SQL> create table OWNS (driver_id# varchar(30),regno varchar(20),primary key(driver_id#,regno),constraint fkey1 foreign key(driver_id#)references PERSON (driver_id#),constraint fkey2 foreign key(regno)references CAR);
 | 
						|
 | 
						|
Table created.
 | 
						|
 | 
						|
SQL> desc OWNS
 | 
						|
 Name                                      Null?    Type
 | 
						|
 ----------------------------------------- -------- ----------------------------
 | 
						|
 DRIVER_ID#                                NOT NULL VARCHAR2(30)
 | 
						|
 REGNO                                     NOT NULL VARCHAR2(20)
 | 
						|
 | 
						|
SQL> select table_name from user_tables;
 | 
						|
 | 
						|
TABLE_NAME
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
ACCIDENT
 | 
						|
CAR
 | 
						|
OWNS
 | 
						|
PERSON
 | 
						|
 | 
						|
SQL> create table PARTICIPATED (driver_id# varchar(30), regno varchar(20), report_number int, damage_amount int, primary key(driver_id#,regno,report_number),constraint fkey1participated foreign key(driver_id#) references Person(driver_id#),constraint fkey2participated foreign key(regno) references car(regno),constraint fkey3paricipated foreign key(report_number) references accident);
 | 
						|
 | 
						|
Table created.
 | 
						|
 | 
						|
SQL> desc PARTICIPATED
 | 
						|
 Name                                      Null?    Type
 | 
						|
 ----------------------------------------- -------- ----------------------------
 | 
						|
 DRIVER_ID#                                NOT NULL VARCHAR2(30)
 | 
						|
 REGNO                                     NOT NULL VARCHAR2(20)
 | 
						|
 REPORT_NUMBER                             NOT NULL NUMBER(38)
 | 
						|
 DAMAGE_AMOUNT                                      NUMBER(38)
 | 
						|
```
 | 
						|
 | 
						|
Now, we enter values.
 | 
						|
```sql
 | 
						|
SQL> insert into person values(1234,'Rohan','Delhi India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> select * from person;
 | 
						|
 | 
						|
DRIVER_ID# NAME
 | 
						|
---------- --------------------------------------------------
 | 
						|
ADDRESS
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
1234       Rohan
 | 
						|
Delhi India
 | 
						|
 | 
						|
 | 
						|
SQL> alter table person modify driver_id# varchar (30);
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> insert into person values(1235,'Rohit','Banglalore India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into person values(1236,'Ramesh','Baharashtra India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into person values(1237,'Saarthak','Manipal India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> desc person;
 | 
						|
 Name                                      Null?    Type
 | 
						|
 ----------------------------------------- -------- ----------------------------
 | 
						|
 DRIVER_ID#                                NOT NULL VARCHAR2(30)
 | 
						|
 NAME                                               VARCHAR2(50)
 | 
						|
 ADDRESS                                            VARCHAR2(100)
 | 
						|
 | 
						|
SQL> select * from person;
 | 
						|
 | 
						|
DRIVER_ID#
 | 
						|
------------------------------
 | 
						|
NAME
 | 
						|
--------------------------------------------------
 | 
						|
ADDRESS
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
1234
 | 
						|
Rohan
 | 
						|
Delhi India
 | 
						|
 | 
						|
1235
 | 
						|
Rohit
 | 
						|
Banglalore India
 | 
						|
 | 
						|
DRIVER_ID#
 | 
						|
------------------------------
 | 
						|
NAME
 | 
						|
--------------------------------------------------
 | 
						|
ADDRESS
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
 | 
						|
1236
 | 
						|
Ramesh
 | 
						|
Baharashtra India
 | 
						|
 | 
						|
1237
 | 
						|
Saarthak
 | 
						|
 | 
						|
DRIVER_ID#
 | 
						|
------------------------------
 | 
						|
NAME
 | 
						|
--------------------------------------------------
 | 
						|
ADDRESS
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
Manipal India
 | 
						|
```
 | 
						|
 | 
						|
Now, we modify the varchar sizes so that we can fix the display formatting.
 | 
						|
 | 
						|
```sql
 | 
						|
SQL> alter table person modify address varchar (30);
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> select * from person;
 | 
						|
 | 
						|
DRIVER_ID#                     NAME
 | 
						|
------------------------------ ----------------------------------------
 | 
						|
ADDRESS
 | 
						|
------------------------------
 | 
						|
1234                           Rohan
 | 
						|
Delhi India
 | 
						|
 | 
						|
1235                           Rohit
 | 
						|
Banglalore India
 | 
						|
 | 
						|
1236                           Ramesh
 | 
						|
Baharashtra India
 | 
						|
 | 
						|
 | 
						|
DRIVER_ID#                     NAME
 | 
						|
------------------------------ ----------------------------------------
 | 
						|
ADDRESS
 | 
						|
------------------------------
 | 
						|
1237                           Saarthak
 | 
						|
Manipal India
 | 
						|
 | 
						|
SQL> alter table person modify driver_id# varchar (4);
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> alter table person modify name varchar (10);
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> select * from person;
 | 
						|
 | 
						|
DRIV NAME       ADDRESS
 | 
						|
---- ---------- ------------------------------
 | 
						|
1234 Rohan      Delhi India
 | 
						|
1235 Rohit      Banglalore India
 | 
						|
1236 Ramesh     Baharashtra India
 | 
						|
1237 Saarthak   Manipal India
 | 
						|
 | 
						|
```
 | 
						|
 | 
						|
Data updation.
 | 
						|
```sql
 | 
						|
SQL> update person set address='Maharashtra India' WHERE driver_id# = 1236;
 | 
						|
 | 
						|
1 row updated.
 | 
						|
 | 
						|
SQL> select * from person;
 | 
						|
 | 
						|
DRIV NAME       ADDRESS
 | 
						|
---- ---------- ------------------------------
 | 
						|
1234 Rohan      Delhi India
 | 
						|
1235 Rohit      Banglalore India
 | 
						|
1236 Ramesh     Maharashtra India
 | 
						|
1237 Saarthak   Manipal India
 | 
						|
 | 
						|
SQL> insert into person values(1238, 'Amogh', 'Muzaffarnagar');
 | 
						|
 | 
						|
1 row created.
 | 
						|
```
 | 
						|
### Listing Tables
 | 
						|
```sql
 | 
						|
SQL> select table_name from user_tables;
 | 
						|
 | 
						|
TABLE_NAME
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
ACCIDENT
 | 
						|
CAR
 | 
						|
OWNS
 | 
						|
PARTICIPATED
 | 
						|
PERSON
 | 
						|
```
 | 
						|
More Data Entry.
 | 
						|
```sql
 | 
						|
SQL> insert into car values('ABCD0001','Celtos',3);
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into car values('EFGH2001','Ferrari',32);
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into car values('DSDS0001','Urus',5);
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into car values('ABCD4001','Honda City',1);
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into car values('HFSP5601','mini cooper',7);
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> select * from car;
 | 
						|
 | 
						|
REGNO                MODEL                                YEAR
 | 
						|
-------------------- ------------------------------ ----------
 | 
						|
ABCD0001             Celtos                                  3
 | 
						|
EFGH2001             Ferrari                                32
 | 
						|
DSDS0001             Urus                                    5
 | 
						|
ABCD4001             Honda City                              1
 | 
						|
HFSP5601             mini cooper                             7
 | 
						|
 | 
						|
SQL> insert into accident values(0001,'01-Jan-2024','Delhi India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> select * from accident;
 | 
						|
 | 
						|
REPORT_NUMBER ACCD_DATE LOCATION
 | 
						|
------------- --------- --------------------------------------------------
 | 
						|
            1 01-JAN-24 Delhi India
 | 
						|
 | 
						|
SQL> insert into accident values(0003,'29-feb-2024',' India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into accident values(0004,'11-Oct-1993',' Daman and Diu India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into accident values(0005,'31-march-2200',' Gujrat India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into accident values(12,'17-july-2900',' karnataka India');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> select * from accident;
 | 
						|
 | 
						|
REPORT_NUMBER ACCD_DATE LOCATION
 | 
						|
------------- --------- --------------------------------------------------
 | 
						|
            1 01-JAN-24 Delhi India
 | 
						|
            3 29-FEB-24  India
 | 
						|
            4 11-OCT-93  Daman and Diu India
 | 
						|
            5 31-MAR-00  Gujrat India
 | 
						|
           12 17-JUL-00  karnataka India
 | 
						|
 | 
						|
SQL> insert into owns values(1234,'ABCD0001');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into owns values(1235,'EFGH2001');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into owns values(1236,'DSDS0001');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into owns values(1237,'ABCD4001');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> insert into owns values(1238,'HFSP5601');
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
SQL> select * from owns;
 | 
						|
 | 
						|
DRIVER_ID#                     REGNO
 | 
						|
------------------------------ --------------------
 | 
						|
1234                           ABCD0001
 | 
						|
1235                           EFGH2001
 | 
						|
1236                           DSDS0001
 | 
						|
1237                           ABCD4001
 | 
						|
1238                           HFSP5601
 | 
						|
```
 | 
						|
Note: 
 | 
						|
```sql
 | 
						|
SQL> @<FILEPATH>/filename.sql
 | 
						|
``` 
 | 
						|
will import the commands from a doc and run them.
 | 
						|
 | 
						|
Saved commands into `participated.sql`.
 | 
						|
 | 
						|
```sql
 | 
						|
SQL> @C:\Users\student\Downloads\participated.sql
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
 | 
						|
1 row created.
 | 
						|
 | 
						|
 | 
						|
SQL> select * from participated;
 | 
						|
 | 
						|
DRIVER_ID#                     REGNO                REPORT_NUMBER DAMAGE_AMOUNT
 | 
						|
------------------------------ -------------------- ------------- -------------
 | 
						|
1234                           ABCD0001                         1         10000
 | 
						|
1236                           DSDS0001                         3           150
 | 
						|
1237                           ABCD4001                         4           799
 | 
						|
1238                           HFSP5601                         5          1500
 | 
						|
1238                           HFSP5601                        12         95500
 | 
						|
```
 | 
						|
## Q3
 | 
						|
Updating data entries:
 | 
						|
```sql
 | 
						|
SQL> update participated set damage_amount=25000 where regno='HFSP5601' and report_number=12;
 | 
						|
 | 
						|
1 row updated.
 | 
						|
 | 
						|
SQL>  update participated set damage_amount=25000 where regno='ABCD0001' and report_number=12;
 | 
						|
 | 
						|
0 rows updated.
 | 
						|
 | 
						|
SQL> select * from participated;
 | 
						|
 | 
						|
DRIVER_ID#                     REGNO                REPORT_NUMBER DAMAGE_AMOUNT
 | 
						|
------------------------------ -------------------- ------------- -------------
 | 
						|
1234                           ABCD0001                         1         10000
 | 
						|
1236                           DSDS0001                         3           150
 | 
						|
1237                           ABCD4001                         4           799
 | 
						|
1238                           HFSP5601                         5          1500
 | 
						|
1238                           HFSP5601                        12         25000
 | 
						|
```
 | 
						|
 | 
						|
## Q4
 | 
						|
### Dropping an attribute
 | 
						|
```sql
 | 
						|
SQL>  alter table Participated
 | 
						|
 | 
						|
  2    drop constraint fkey3paricipated;
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> select * from participated;
 | 
						|
 | 
						|
DRIVER_ID#                     REGNO                REPORT_NUMBER DAMAGE_AMOUNT
 | 
						|
------------------------------ -------------------- ------------- -------------
 | 
						|
1234                           ABCD0001                         1         10000
 | 
						|
1236                           DSDS0001                         3           150
 | 
						|
1237                           ABCD4001                         4           799
 | 
						|
1238                           HFSP5601                         5          1500
 | 
						|
1238                           HFSP5601                        12         25000
 | 
						|
```
 | 
						|
 | 
						|
Adding back the attribute.
 | 
						|
 | 
						|
```sql
 | 
						|
SQL> alter table Participated
 | 
						|
  2      add constraint fkey3participated foreign key(report_number) references accident(report_number)
 | 
						|
  3      on delete cascade;
 | 
						|
 | 
						|
Table altered.
 | 
						|
```
 | 
						|
 | 
						|
### Conditional Deletion
 | 
						|
```sql
 | 
						|
SQL> select * from accident;
 | 
						|
 | 
						|
REPORT_NUMBER ACCD_DATE LOCATION
 | 
						|
------------- --------- --------------------------------------------------
 | 
						|
            1 01-JAN-24 Delhi India
 | 
						|
            3 29-FEB-24  India
 | 
						|
            4 11-OCT-93  Daman and Diu India
 | 
						|
            5 31-MAR-00  Gujrat India
 | 
						|
           12 17-JUL-00  karnataka India
 | 
						|
 | 
						|
SQL > delete from accident where extract(year from accd_date)=1993;
 | 
						|
 | 
						|
1 row deleted.
 | 
						|
 | 
						|
SQL> select * from accident;
 | 
						|
 | 
						|
REPORT_NUMBER ACCD_DATE LOCATION
 | 
						|
------------- --------- --------------------------------------------------
 | 
						|
            1 01-JAN-24 Delhi India
 | 
						|
            3 29-FEB-24  India
 | 
						|
            5 31-MAR-00  Gujrat India
 | 
						|
           12 17-JUL-00  karnataka India
 | 
						|
```
 | 
						|
 | 
						|
## Q5
 | 
						|
 | 
						|
```sql
 | 
						|
SQL> alter table Participated drop constraint fkey3participated;
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> alter table Participated add constraint fkey3participated foreign key(report_number) references accident(report_number) on delete cascade;
 | 
						|
 | 
						|
 | 
						|
Table altered.
 | 
						|
```
 | 
						|
 | 
						|
## Q6
 | 
						|
 | 
						|
```sql
 | 
						|
SQL> alter table participated add constraint checkparticipated check(Damage_amount>=0);
 | 
						|
 | 
						|
Table altered.
 | 
						|
 | 
						|
SQL> select * from participated;
 | 
						|
 | 
						|
DRIVER_ID#                     REGNO                REPORT_NUMBER DAMAGE_AMOUNT
 | 
						|
------------------------------ -------------------- ------------- -------------
 | 
						|
1234                           ABCD0001                         1         10000
 | 
						|
1236                           DSDS0001                         3           150
 | 
						|
1238                           HFSP5601                         5          1500
 | 
						|
1238                           HFSP5601                        12         25000
 | 
						|
 | 
						|
``` |