Simple Queries in SQL
Simple Queries in SQL
CREATING A DATABASE
mysql> create database guna;
Query OK, 1 row affected (0.08
sec)
ACCESSING DATABASE
mysql> use guna;
Database changed
Q) WAQ TO DISPLAY EMPNO, EMPLOYEE NAME, SALARY AND NEW SALARY WHICH IS
20% OF SALARY[LABEL IT AS NEWSAL] FROM EMP.
mysql> SELECT EMPNO, ENAME, SAL, SAL+SAL*0.2 "NEWSAL" FROM EMP.
+-------+--------+---------+----------+
| EMPNO | ENAME | SAL | NEWSAL |
+-------+--------+---------+----------+
| 7369 | SMITH | 800.00 | 960.000 |
| 7499 | ALLEN | 1600.00 | 1920.000 |
| 7521 | WARD | 1250.00 | 1500.000 |
| 7566 | JONES | 2975.00 | 3570.000 |
| 7654 | MARTIN | 1250.00 | 1500.000 |
| 7698 | BLAKE | 2850.00 | 3420.000 |
| 7782 | CLARK | 2450.00 | 2940.000 |
| 7788 | SCOTT | 3000.00 | 3600.000 |
| 7839 | KING | 5000.00 | 6000.000 |
| 7844 | TURNER | 1500.00 | 1800.000 |
| 7876 | ADAMS | 1100.00 | 1320.000 |
| 7900 | JAMES | 950.00 | 1140.000 |
| 7902 | FORD | 3000.00 | 3600.000 |
| 7934 | MILLER | 1300.00 | 1560.000 |
+-------+--------+---------+----------+
14 rows in set (0.03 sec)
CONCATENATING STRINGS
Q) WAQ TO DISPLAY ALL RECORDS OF EMPLOYEE NAME AND SALARY FROM EMP.
mysql> SELECT ALL ENAME, SAL FROM EMP;
+--------+---------+
| ENAME | SAL |
+--------+---------+
| SMITH | 800.00 |
| ALLEN | 1600.00 |
| WARD | 1250.00 |
| JONES | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
| TURNER | 1500.00 |
| ADAMS | 1100.00 |
| JAMES | 950.00 |
| FORD | 3000.00 |
| MILLER | 1300.00 |
+--------+---------+
14 rows in set (0.00 sec)
Q) WAQ TO DISPLAY EMPLOYEE NAME AND SALARY, WHOSE SALARY IS GREATER THAN
2000.
mysql> SELECT ENAME, SAL FROM EMP WHERE SAL > 2000;
+-------+---------+
| ENAME | SAL |
+-------+---------+
| JONES | 2975.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
| FORD | 3000.00 |
+-------+---------+
6 rows in set (0.02 sec)
Q) WAQ TO DISPLAY ENAME, JOB, SALARY WHOSE SALARY IS LESSER THAN OR EQUAL
TO 3000 AND JOB IS MANAGER
mysql> SELECT ENAME, JOB, SAL FROM EMP WHERE SAL<=3000 AND JOB =
'MANAGER';
+-------+---------+---------+
| ENAME | JOB | SAL |
+-------+---------+---------+
| JONES | MANAGER | 2975.00 |
| BLAKE | MANAGER | 2850.00 |
| CLARK | MANAGER | 2450.00 |
+-------+---------+---------+
3 rows in set (0.00 sec)
Q) WAQ TO DISPLAY ENAME SAL OF THOSE EMPLOYEES WHO DON'T HAVE THEIR
SALARY IN THE RANGE 1500 AND 2000
mysql> SELECT ENAME, SAL FROM EMP WHERE SAL NOT BETWEEN 1500 AND 2000;
+--------+---------+
| ENAME | SAL |
+--------+---------+
| SMITH | 800.00 |
| WARD | 1250.00 |
| JONES | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
| ADAMS | 1100.00 |
| JAMES | 950.00 |
| FORD | 3000.00 |
| MILLER | 1300.00 |
+--------+---------+
12 rows in set (0.00 sec)
Q) WAQ TO DISPLAY ENAME, JOB, SAL WHOSE JOB IS EITHER MANAGER, SALESMAN
OR ANALYST
mysql> SELECT ENAME, JOB, SAL FROM EMP WHERE JOB IN('MANAGER', 'ANALYST',
'SALESMAN');
+--------+----------+---------+
| ENAME | JOB | SAL |
+--------+----------+---------+
| ALLEN | SALESMAN | 1600.00 |
| WARD | SALESMAN | 1250.00 |
| JONES | MANAGER | 2975.00 |
| MARTIN | SALESMAN | 1250.00 |
| BLAKE | MANAGER | 2850.00 |
| CLARK | MANAGER | 2450.00 |
| SCOTT | ANALYST | 3000.00 |
| TURNER | SALESMAN | 1500.00 |
| FORD | ANALYST | 3000.00 |
+--------+----------+---------+
9 rows in set (0.01 sec)
Q) WAQ TO DISPLAT EMP NAME, JOB, SALARY WHOSE SALARY IS 3000,5000 AND 800
FROM EMP.
mysql> SELECT ENAME, JOB, SAL FROM EMP WHERE SAL IN (3000, 5000, 800);
+-------+-----------+---------+
| ENAME | JOB | SAL |
+-------+-----------+---------+
| SMITH | CLERK | 800.00 |
| SCOTT | ANALYST | 3000.00 |
| KING | PRESIDENT | 5000.00 |
| FORD | ANALYST | 3000.00 |
+-------+-----------+---------+
4 rows in set (0.00 sec)
Q) WAQ TO DISPLAY WHOSE EMP NAMES WHOSE NAME STARTS WITH 'M' AND ENDS
WITH 'R'.
mysql> SELECT ENAME FROM EMP WHERE ENAME LIKE 'M%R';
+--------+
| ENAME |
+--------+
| MILLER |
+--------+
1 row in set (0.00 sec)
Q) WAQ TO DISPLAY THE EMPLOYEE NAME WHOSE NAME ENDS WITH 'T'
mysql> SELECT ENAME FROM EMP WHERE ENAME LIKE '%T';
+-------+
| ENAME |
+-------+
| SCOTT |
+-------+
1 row in set (0.00 sec)
Q) WAQ TO DISPLAY EMPLOYEE NAME THAT HAS 'L' AS ANY CHARACTER OF THE NAME
mysql> SELECT ENAME FROM EMP WHERE ENAME LIKE '%L%';
+--------+
| ENAME |
+--------+
| ALLEN |
| BLAKE |
| CLARK |
| MILLER |
+--------+
4 rows in set (0.00 sec)
Q) WAQ TO LIST THE EMPLOYEES HAVING SALARY GREATER THAN 2500 IN THE ORDER
OF THEIR NAMES
Q) WAQ TO DISPLAY ENAME, SAL, JOB, HIREDATE OF THOSE EMPLOYEES WHOSE SAL
IS BETWEEN 1000 AND 2000. ORDER QUERY IN DECREASING ORDER OF HIREDATE
mysql> SELECT ENAME, SAL, JOB, HIREDATE FROM EMP WHERE SAL BETWEEN 1000
AND 2000 ORDER BY HIREDATE DESC;
+--------+---------+----------+------------+
| ENAME | SAL | JOB | HIREDATE |
+--------+---------+----------+------------+
| ADAMS | 1100.00 | CLERK | 1983-01-12 |
| MILLER | 1300.00 | CLERK | 1982-01-23 |
| MARTIN | 1250.00 | SALESMAN | 1981-09-28 |
| TURNER | 1500.00 | SALESMAN | 1981-09-08 |
| WARD | 1250.00 | SALESMAN | 1981-02-22 |
| ALLEN | 1600.00 | SALESMAN | 1981-02-20 |
+--------+---------+----------+------------+
6 rows in set (0.00 sec)
Q) LIST DETAILS OF ALL EMPLOYEES WHOSE ANNUAL SALARY IS BETWEEN 25000 AND
40000, LABEL COLUMN 'ANNUAL SALARY'
STRING FUNCTIONS
1. CHAR()
2. CONCAT()
3. LOWER()
4. UPPER()
5. SUBSTRING()
6. LTRIM()
7. RTRIM()
8. TRIM()
10. LENGTH(CHAR)
11. MID()
12. RIGHT()
13. LEFT()
MATHEMATICAL FUNCTIONS
1. MOD()
2. POW()
3. ROUND()
4. SIGN()
mysql> SELECT SIGN(55), SIGN(0), SIGN(-55);
+----------+---------+-----------+
| SIGN(55) | SIGN(0) | SIGN(-55) |
+----------+---------+-----------+
| 1 | 0 | -1 |
+----------+---------+-----------+
1 row in set (0.00 sec)
5. SQRT()
6. TRUNCATE()
DATE FUNCTIONS
AGGREGATE FUNCTIONS
1. SUM()
Q)a) WAQ TO DISPLAY TOTAL SALARY OF EMPLOYEES FROM EMP. NAME IT TOTAL
mysql> SELECT SUM(SAL)"TOTAL" FROM EMP;
+----------+
| TOTAL |
+----------+
| 29025.00 |
+----------+
1 row in set (0.13 sec)
b) WAQ TO CALCULATE TOTAL SALARY OF EMP BELONGING TO DEPTNO 30
mysql> SELECT SUM(SAL)"TOTAL" FROM EMP WHERE DEPTNO=30;
+---------+
| TOTAL |
+---------+
| 9400.00 |
+---------+
1 row in set (0.00 sec)
2. AVG()
3. COUNT()
4. MIN()
GROUP BY CLAUSE
Q) WAQ TO SHOW THE NUMBER OF EMPLOYEES IN EACH JOB AND SUM OF THEIR
SALATRIES.
mysql> SELECT COUNT(*), SUM(SAL), JOB FROM EMP GROUP BY JOB;
+----------+----------+-----------+
| COUNT(*) | SUM(SAL) | JOB |
+----------+----------+-----------+
| 4 | 4150.00 | CLERK |
| 4 | 5600.00 | SALESMAN |
| 3 | 8275.00 | MANAGER |
| 2 | 6000.00 | ANALYST |
| 1 | 5000.00 | PRESIDENT |
+----------+----------+-----------+
5 rows in set (0.00 sec)
Q) WAQ TO CALCULATE THE AVG SAL AND TOTAL SAL JOB-WISE FOR DEPT 20
mysql> SELECT AVG(SAL), SUM(SAL), JOB FROM EMP GROUP BY JOB, DEPTNO
HAVING DEPTNO = 20;
+-------------+----------+---------+
| AVG(SAL) | SUM(SAL) | JOB |
+-------------+----------+---------+
| 950.000000 | 1900.00 | CLERK |
| 2975.000000 | 2975.00 | MANAGER |
| 3000.000000 | 6000.00 | ANALYST |
+-------------+----------+---------+
3 rows in set (0.05 sec)
Q) WAQ TO DISPLAY AVG COMM AND AVG SAL DEPARTMENT WISE WHERE AVG COMM >
750 AND AVG SAL < 2000
mysql> SELECT AVG(SAL), AVG(COMM), DEPTNO FROM EMP GROUP BY DEPTNO HAVING
AVG(COMM)>750 AND AVG(SAL)<2000;
Empty set (0.00 sec)
Q) WAQ TO DISPLAY THE AVG SAL DEPARTMENT WISE WHERE THE NO. OF EMPLOYEES
<=3
mysql> SELECT AVG(SAL), DEPTNO, COUNT(*) FROM EMP GROUP BY DEPTNO HAVING
COUNT(*)<=3;
+-------------+--------+----------+
| AVG(SAL) | DEPTNO | COUNT(*) |
+-------------+--------+----------+
| 2916.666667 | 10 | 3 |
+-------------+--------+----------+
1 row in set (0.00 sec)
Q) WAQ TO DISPLAY WISE MAX SAL, MIN SAL AND AVG SAL OF EMPLOYEES
mysql> SELECT DEPTNO, AVG(SAL), MAX(SAL), MIN(SAL) FROM EMP GROUP BY
DEPTNO;
+--------+-------------+----------+----------+
| DEPTNO | AVG(SAL) | MAX(SAL) | MIN(SAL) |
+--------+-------------+----------+----------+
| 20 | 2175.000000 | 3000.00 | 800.00 |
| 30 | 1566.666667 | 2850.00 | 950.00 |
| 10 | 2916.666667 | 5000.00 | 1300.00 |
+--------+-------------+----------+----------+
3 rows in set (0.00 sec)