SQL Programs
SQL Programs
# CREATE TABLE
mysql> create table studs
-> (STU_ID int,
-> NAME varchar(12),
-> CLASS int,
-> DOB date
-> );
Query OK, 0 rows affected (0.04 sec)
# TABLE DATATYPE
mysql> desc studs;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| STU_ID | int | YES | | NULL | |
| NAME | varchar(12) | YES | | NULL | |
| CLASS | int | YES | | NULL | |
| DOB | date | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
# DISPLAY TABLE
mysql> select * from studs;
+--------+---------+-------+------------+
| STU_ID | NAME | CLASS | DOB |
+--------+---------+-------+------------+
| 1245 | Shubham | 12 | 2007-10-10 |
| 9145 | Gaurav | 12 | 2006-01-18 |
| 9125 | Somesh | 12 | 2007-11-08 |
| 8865 | Gautam | 6 | 2006-09-07 |
+--------+---------+-------+------------+
4 rows in set (0.00 sec)
# RENAME TABLE
mysql> alter table studs rename to stuid;
Query OK, 0 rows affected (0.04 sec)
# WHERE COMMAND
mysql> SELECT * FROM STUDS WHERE STREAM = 'Science';
+--------+------+---------+------------+
| ADM_NO | NAME | STREAM | PERCENTAGE |
+--------+------+---------+------------+
| 7658 | Elon | Science | 97.23 |
+--------+------+---------+------------+
1 row in set (0.00 sec)
# COLOUMN ALIASES
mysql> SELECT NAME, DOB as 'DATE OF BIRTH' FROM STUID;
+---------+---------------+
| NAME | DATE OF BIRTH |
+---------+---------------+
| Shubham | 2007-10-10 |
| Gaurav | 2006-01-18 |
| Somesh | 2007-11-08 |
| Gautam | 2006-09-07 |
| Sujal | 2004-10-02 |
| Suman | 2004-10-02 |
+---------+---------------+
6 rows in set (0.00 sec)
# DISTINCT COMMAND
mysql> SELECT DISTINCT STREAM FROM STUDS;
+----------+
| STREAM |
+----------+
| Arts |
| Commerce |
| Science |
+----------+
3 rows in set (0.00 sec)
# BETWEEN COMMAND
mysql> SELECT NAME, PERCENTAGE FROM STUDS
-> WHERE PERCENTAGE between 70 and 90;
+-----------+------------+
| NAME | PERCENTAGE |
+-----------+------------+
| Cristiano | 82.23 |
+-----------+------------+
1 row in set (0.00 sec)
mysql> SELECT NAME, PERCENTAGE FROM STUDS
-> WHERE PERCENTAGE NOT between 80 and 90;
+--------+------------+
| NAME | PERCENTAGE |
+--------+------------+
| Lionel | 52.23 |
| Carry | 67.23 |
| Elon | 97.23 |
+--------+------------+
3 rows in set (0.00 sec)
# IN OPERATOR
mysql> select * from studs WHERE stream in ('arts');
+--------+-----------+--------+------------+
| ADM_NO | NAME | STREAM | PERCENTAGE |
+--------+-----------+--------+------------+
| 7107 | Lionel | Arts | 52.23 |
| 7237 | Cristiano | Arts | 82.23 |
+--------+-----------+--------+------------+
2 rows in set (0.00 sec)
# IS NULL
mysql> select * from stuid WHERE CLASS is NULL;
+--------+-------+-------+------------+
| STU_ID | NAME | CLASS | DOB |
+--------+-------+-------+------------+
| 4366 | Sujal | NULL | 2004-10-02 |
| 4362 | Suman | NULL | 2004-10-02 |
+--------+-------+-------+------------+
2 rows in set (0.00 sec)
# IS NOT NULL
mysql> select * from stuid WHERE CLASS is NOT NULL;
+--------+---------+-------+------------+
| STU_ID | NAME | CLASS | DOB |
+--------+---------+-------+------------+
| 1245 | Shubham | 12 | 2007-10-10 |
| 9145 | Gaurav | 12 | 2006-01-18 |
| 9125 | Somesh | 12 | 2007-11-08 |
| 8865 | Gautam | 6 | 2006-09-07 |
+--------+---------+-------+------------+
4 rows in set (0.00 sec)
# ORDER BY
# DESCENDING (DESC)
mysql> SELECT * from stuid ORDER By DOB DESC;
+--------+---------+-------+------------+--------+
| STU_ID | NAME | CLASS | DOB | GENDER |
+--------+---------+-------+------------+--------+
| 9125 | Somesh | 12 | 2007-11-08 | M |
| 1245 | Shubham | 12 | 2007-10-10 | M |
| 8865 | Gautam | 6 | 2006-09-07 | M |
| 9145 | Gaurav | 12 | 2006-01-18 | M |
| 6657 | Susma | 7 | NULL | F |
+--------+---------+-------+------------+--------+
5 rows in set (0.00 sec)
# ASCENDING (ASC)
mysql> SELECT * from stuid ORDER BY GENDER;
+--------+---------+-------+------------+--------+
| STU_ID | NAME | CLASS | DOB | GENDER |
+--------+---------+-------+------------+--------+
| 6657 | Susma | 7 | NULL | F |
| 1245 | Shubham | 12 | 2007-10-10 | M |
| 9145 | Gaurav | 12 | 2006-01-18 | M |
| 9125 | Somesh | 12 | 2007-11-08 | M |
| 8865 | Gautam | 6 | 2006-09-07 | M |
+--------+---------+-------+------------+--------+
5 rows in set (0.00 sec)
# GROUP BY
mysql> SELECT GENDER,COUNT(*) FROM stuid GROUP By GENDER;
+--------+----------+
| GENDER | COUNT(*) |
+--------+----------+
| M | 4 |
| F | 1 |
+--------+----------+
2 rows in set (0.00 sec)
# HAVING CLAUSE
mysql> SELECT CLASS,COUNT(*) FROM stuid GROUP By CLASS HAVING count(DOB);
+-------+----------+
| CLASS | COUNT(*) |
+-------+----------+
| 12 | 3 |
| 6 | 1 |
+-------+----------+
2 rows in set (0.00 sec)
# ALTER COMMANDS
# ADD COLOUMN
mysql> ALTER TABLE studs ADD GRADE VARCHAR(2);
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
# DROP COLOUMN
mysql> ALTER TABLE studs DROP GRADE;
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
# MODIFY COMMAND
mysql> ALTER TABLE stuid MODIFY GENDER varchar(6);
Query OK, 6 rows affected (0.06 sec)
Records: 6 Duplicates: 0 Warnings: 0
# UPDATE COMMAND
mysql> UPDATE stuid SET GENDER = 'M';
Query OK, 6 rows affected (0.00 sec)
Rows matched: 6 Changed: 6 Warnings: 0
# DELETE COMMAND
mysql> DELETE from STUID where CLASS is NULL;
Query OK, 2 rows affected (0.01 sec)
# AGGREGATE FUNCTIONS
# SUM
mysql> SELECT SUM(percentage) from STUDS;
+-----------------+
| SUM(percentage) |
+-----------------+
| 298.92 |
+-----------------+
1 row in set (0.00 sec)
# AVERAGE
mysql> SELECT AVG (percentage) 'Average Percentage' from STUDS;
+--------------------+
| Average Percentage |
+--------------------+
| 74.730002 |
+--------------------+
1 row in set (0.00 sec)
# MAXIMUM
mysql> SELECT MAX(percentage) 'Maximum Percentage' from STUDS;
+--------------------+
| Maximum Percentage |
+--------------------+
| 97.23 |
+--------------------+
1 row in set (0.00 sec)
# MINIMUM
mysql> SELECT MIN(percentage) 'Minimum Percentage' from STUDS;
+--------------------+
| Minimum Percentage |
+--------------------+
| 52.23 |
+--------------------+
1 row in set (0.00 sec)
# COUNT(*)
mysql> SELECT COUNT(*) 'Toatal Records' from STUDS;
+----------------+
| Toatal Records |
+----------------+
| 4 |
+----------------+
1 row in set (0.01 sec)
# COUNT
mysql> SELECT COUNT(DOB) 'Total DOB Records' from STUID;
+-------------------+
| Total DOB Records |
+-------------------+
| 4 |
+-------------------+
1 row in set (0.00 sec)
mysql> select * from emp;
+-------+---------+--------+--------+
| EMPID | NAME | GENDER | SALARY |
+-------+---------+--------+--------+
| 2234 | Sangam | M | 20000 |
| 2239 | Sulekha | F | 25000 |
| 2129 | Murli | M | 30000 |
| 2456 | Koyal | F | 15000 |
+-------+---------+--------+--------+
4 rows in set (0.00 sec)
# JOINS IN SQL
# CARTESIAN PRODUCT
mysql> select * from emp, dept;
+-------+---------+--------+--------+-------+--------+------------+------+
| EMPID | NAME | GENDER | SALARY | EMPNO | NAME | DEPARTMENT | AGE |
+-------+---------+--------+--------+-------+--------+------------+------+
| 2234 | Sangam | M | 20000 | 2677 | Sangam | Sales | 29 |
| 2234 | Sangam | M | 20000 | 2647 | Koyal | Sales | 31 |
| 2239 | Sulekha | F | 25000 | 2677 | Sangam | Sales | 29 |
| 2239 | Sulekha | F | 25000 | 2647 | Koyal | Sales | 31 |
| 2129 | Murli | M | 30000 | 2677 | Sangam | Sales | 29 |
| 2129 | Murli | M | 30000 | 2647 | Koyal | Sales | 31 |
| 2456 | Koyal | F | 15000 | 2677 | Sangam | Sales | 29 |
| 2456 | Koyal | F | 15000 | 2647 | Koyal | Sales | 31 |
+-------+---------+--------+--------+-------+--------+------------+------+
8 rows in set (0.00 sec)
# EQUI JOIN
mysql> select * from emp, dept where emp.name = dept.name;
+-------+--------+--------+--------+-------+--------+------------+------+
| EMPID | NAME | GENDER | SALARY | EMPNO | NAME | DEPARTMENT | AGE |
+-------+--------+--------+--------+-------+--------+------------+------+
| 2234 | Sangam | M | 20000 | 2677 | Sangam | Sales | 29 |
| 2456 | Koyal | F | 15000 | 2647 | Koyal | Sales | 31 |
+-------+--------+--------+--------+-------+--------+------------+------+
2 rows in set (0.00 sec)
# NATURAL JOIN
mysql> select * from emp Natural Join dept;
+--------+-------+--------+--------+-------+------------+------+
| NAME | EMPID | GENDER | SALARY | EMPNO | DEPARTMENT | AGE |
+--------+-------+--------+--------+-------+------------+------+
| Sangam | 2234 | M | 20000 | 2677 | Sales | 29 |
| Koyal | 2456 | F | 15000 | 2647 | Sales | 31 |
+--------+-------+--------+--------+-------+------------+------+
2 rows in set (0.00 sec)