You are on page 1of 10

DBMS Recap (20 Marks)

1. Cardinality and degree:


Cardinality – no. of rows
Degree – no. of columns
2. Primary Key – Unique and not null
3. Foreign Key – Refers another tables Primary Key
4. NOT NULL – ensures that the value should be empty
5. DISTINCT – avoids duplication / repetition [write the answers as per the row order]
Select distinct (city) from employee; [row-wise answers]
Select count(distinct(city)) from employee; [single numeric data – integer]
6. Group by: [each / wise – 99%] [always in ascending order based on the group by
column]
There should at-least one aggregate function proceeded by a group by column name
Max(), Min(), Sum(), Avg() and Count().
Group – for condition u have to use only Having clause and not where clause
mysql> select supid,min(price),max(price),sum(price),avg(price),count(*) from
product
-> group by
-> supid;
+-------+------------+------------+------------+------------+----------+
| supid | min(price) | max(price) | sum(price) | avg(price) | count(*) |
+-------+------------+------------+------------+------------+----------+
| 111 | 25 | 29 | 133 | 26.6000 | 5|
| 222 | 5| 20 | 35 | 11.6667 | 3|
| 333 | 10 | 50 | 70 | 23.3333 | 3|
+-------+------------+------------+------------+------------+----------+
7. Show databases; [List of databases available]
8. Show tables; [List of tables available]
9. Use databasename
10. Desc tablename [structure of the table]
11. Command Classification:
DDL: CREATE, ALTER, DROP
DML: INSERT, UPDATE, DELETE, SELECT
DCL: GRANT AND REVOKE
TCL: COMMIT, ROLLBACK AND SAVEPOINT

mysql> desc product;


+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| pno | int(3) | YES | | NULL | |
| pname | varchar(25) | YES | | NULL | |
| price | int(2) | YES | | NULL | |
| supid | int(3) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
12. Insert command: [quotes – char, varchar,date]
Type 01: (when all the column values are present)
Into into Product values
(117,’abc’,10,111);

Type 02: (when certain columns are given)


Assume – (pno,price,supid – is given)
Insert into Product
(pno,price,supid)
Values
(118,25,222);
13. Update: [increase /decrease/ change a column value]
Increase the salary by 10%
Add 5 marks to a subject
Change the name of a person
Change the group of a person
Type 01: [for all employees / students / products – without where clause]
Update Product
Set
Price = Price + Price * 10/100;

Type 02:[with where clause – for certain students / employees / products]


Update Product
Set
Price = Price + Price * 10/100
Where
Supid = 222;

14. Delete: [delete the values] – Deletes a row / specific rows / all the rows but not a
specific column – [structure is not getting affected]
Type 01:[removing the all the row values]
Delete from Product;

Type 02:[removes only certain row/row(s)]


Delete from Product
Where
Pno > 111;
15. Usage of null and is not null [Select command - 1 mark]

[Correct statement – write command]


mysql> select * from productduplicate
-> where
-> pname is null;

[Statement given in the paper - wrong]


mysql> select * from productduplicate
-> where
-> pname = null;

16. Drop: [Structure with the data (if present) allows gets deleted] – [1 mark]
Drop table tablename;
Drop database databasename;

17. Alter [v.v. important]


Type 01: [Adding a new column]
mysql> alter table product
-> add
-> mobile bigint;

Type 02: [Dropping an existing column – remember datatype won’t occur]


mysql> alter table product
-> drop
-> mobile;

Type 03: [Increase or decrease the size of a column]


mysql> alter table product
-> modify
-> pname varchar(30);
18. Select Command: [important variations]
a. Year of joining = 2020
Month of joining = March
Select * from employee
Where
Year(doj) = ‘2020’; [quotes is must – check the table ensure that the date is in ‘yyyy-
mm-dd’]

Select * from employee


Where
month(doj) = ‘03’;
b. Changing the column name in display alone [alias name – this doesn’t change the
original column name – only meant for display purpose]

mysql> select rollno,name,gender,fees * 12 "Annual Fees"


-> from
-> strain;
+--------+---------+--------+-------------+
| rollno | name | gender | Annual Fees |
+--------+---------+--------+-------------+
| 100 | SUNDAR | M | 1200000 |
| 101 | SUNDARI | F | 1200000 |
| 108 | NULL | F | 3600000 |
| 109 | NULL | F | 3600000 |
| 119 | NULL | F | 3600000 |
| 911 | NULL | F | 3000000 |
+--------+---------+--------+-------------+
6 rows in set (0.00 sec)

mysql> desc strain;


+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| ROLLNO | int(3) | NO | PRI | NULL | |
| NAME | varchar(25) | YES | | NULL | |
| GENDER | char(1) | YES | | F | |
| FEES | int(6) | NO | | NULL | |
| MOBILE | bigint(20) | YES | UNI | NULL | |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

Cartesian Product: [no common column – output – no.of rows in table 01 * no.of rows in
table 02]

mysql> select * from t1;


+------+------+
| name | age |
+------+------+
| Raja | 20 |
| Kuja | 25 |
+------+------+
2 rows in set (0.00 sec)

mysql> select * from t2;


+--------+
| gender |
+--------+ t2
| Male |
| Female |
+--------+ t1
2 rows in set (0.00 sec)

mysql> select * from t1,t2; //Cartesian Product


+------+------+--------+
| name | age | gender |
+------+------+--------+
| Raja | 20 | Male |
| Kuja | 25 | Male |
| Raja | 20 | Female |
| Kuja | 25 | Female |
+------+------+--------+
4 rows in set (0.00 sec)

Natural join: [no need to give and condition – common column appears only once that too
at the front]
mysql> select * from supplier;
+-------+----------+---------+
| supid | sname | city |
+-------+----------+---------+
| 111 | s and co | mumbai |
| 333 | ttt | chennai |
+-------+----------+---------+
2 rows in set (0.00 sec)

mysql> select * from product;


+------+---------+-------+-------+
| pno | pname | price | supid |
+------+---------+-------+-------+
| 102 | pencil | 20 | 333 |
| 104 | NULL | 100 | 333 |
| 105 | NIRMA | 58 | 111 |
| 105 | NEEM | 58 | 111 |
| 107 | Divider | 20 | 333 |
+------+---------+-------+-------+
5 rows in set (0.00 sec)

mysql> select * from supplier natural join product;


+-------+----------+---------+------+---------+-------+
| supid | sname | city | pno | pname | price |
+-------+----------+---------+------+---------+-------+
| 333 | ttt | chennai | 102 | pencil | 20 |
| 333 | ttt | chennai | 104 | NULL | 100 |
| 111 | s and co | mumbai | 105 | NIRMA | 58 |
| 111 | s and co | mumbai | 105 | NEEM | 58 |
| 333 | ttt | chennai | 107 | Divider | 20 |
+-------+----------+---------+------+---------+-------+
5 rows in set (0.00 sec)

Equi join:

mysql> select * from product p,supplier s


-> where
-> p.supid = s.supid;
+------+---------+-------+-------+-------+----------+---------+
| pno | pname | price | supid | supid | sname | city |
+------+---------+-------+-------+-------+----------+---------+
| 102 | pencil | 20 | 333 | 333 | ttt | chennai |
| 104 | NULL | 100 | 333 | 333 | ttt | chennai |
| 105 | NIRMA | 58 | 111 | 111 | s and co | mumbai |
| 105 | NEEM | 58 | 111 | 111 | s and co | mumbai |
| 107 | Divider | 20 | 333 | 333 | ttt | chennai |
+------+---------+-------+-------+-------+----------+---------+
5 rows in set (0.00 sec)

mysql> select * from supplier s,product p


-> where
-> s.supid = p.supid;
+-------+----------+---------+------+---------+-------+-------+
| supid | sname | city | pno | pname | price | supid |
+-------+----------+---------+------+---------+-------+-------+
| 333 | ttt | chennai | 102 | pencil | 20 | 333 |
| 333 | ttt | chennai | 104 | NULL | 100 | 333 |
| 111 | s and co | mumbai | 105 | NIRMA | 58 | 111 |
| 111 | s and co | mumbai | 105 | NEEM | 58 | 111 |
| 333 | ttt | chennai | 107 | Divider | 20 | 333 |
+-------+----------+---------+------+---------+-------+-------+
5 rows in set (0.00 sec)
Keys:

For Example:
Employee(Empid#,Ename,Salary,Aadhaar#,Passport#,VoterID#)

Primary Key – Empid [Candidate Keys – Alternate Keys]


Candidate keys – Empid, Aadhaar, Passport, VoterID [Primary Key + Alternate Keys]
Alternate Keys – Aadhaar, Passport, VoterID [Candidate Keys – Primary Key]

Ambiguous Error
mysql> create table Orders
-> (Oid int(1), Ono int(5), Cid int(1));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into Orders


-> values
-> (1,77890,1),
-> (2,23653,2);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> create table Cust


-> (Cid int(1), Lastname varchar(20),Fname varchar(20), age int(2));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into Cust


-> values
-> (1,'KIRAN','KUMAR',70),
-> (2,'VINOD','MEHRA',45);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> SELECT CID,ONO FROM CUST C,ORDERS O


-> WHERE
-> C.CID = O.CID;
ERROR 1052 (23000): Column 'CID' in field list is ambiguous
After Rectification:

mysql> SELECT C.CID,ONO FROM CUST C,ORDERS O


-> WHERE
-> C.CID = O.CID;
+------+-------+
| CID | ONO |
+------+-------+
| 1 | 77890 |
| 2 | 23653 |
+------+-------+
2 rows in set (0.00 sec)

Tablename.columnname vs Table alias.columname

mysql> select Lastname,Ono from cust,orders


-> where
-> cust.cid = orders.cid;
+----------+-------+
| Lastname | Ono |
+----------+-------+
| KIRAN | 77890 |
| VINOD | 23653 |
+----------+-------+
2 rows in set (0.00 sec)

mysql> select c.Lastname,o.Ono from cust c,orders o


-> where
-> c.cid = o.cid;
+----------+-------+
| Lastname | Ono |
+----------+-------+
| KIRAN | 77890 |
| VINOD | 23653 |
+----------+-------+
2 rows in set (0.00 sec)

Adding NULL with any number or string

mysql> select 100+NULL;


+----------+
| 100+NULL |
+----------+
| NULL |
+----------+
1 row in set (0.00 sec)
mysql> select "Arun"+null;
+-------------+
| "Arun"+null |
+-------------+
| NULL |
+-------------+
1 row in set, 1 warning (0.00 sec)

Theory
DDL DML
Data definition language Data Manipulation Language
It deals with the structure of the data It deals with the data
Commands: CREATE, ALTER AND Commands: INSERT, SELECT, UPDATE, DELETE
DROP
Eg: drop table employee; Eg: delete from employee;
Eg: Alter table employee Eg: Update employee
Add Set
Mobile bigint; Salary = Salary + Salary * 0.25;

ALTER UPDATE
It is a part of DDL command It belongs to DML command
It deals with the structure of the data It deals with the data
Eg: Alter table employee Eg: Update employee
Add Set
Mobile bigint; Salary = Salary + Salary * 0.25;

DROP DELETE
It is a part of DDL command It belongs to DML command
It deals with the structure of the It deals with the data
data
Eg: drop table employee; Eg: delete from employee;
Primary Key Unique Key
It is unique and not null It is unique and cane be null
It helps us to identify a row / tuple It doesn’t help to identify a row– it can also
be null
Employee(Empid#,Ename,Salary,Aadhaar,P Employee(Empid#,Ename,Salary,Aadhaar,P
assport,VoterID,Carno##) assport,VoterID,Carno##)
#Empid – Primary Key ##Carno – Unique Key

DDL commands – word table / database appears


DML commands – word table won’t appear at all

You might also like