├── Mysql_Part_1.sql └── Mysql_Part_2.sql /Mysql_Part_1.sql: -------------------------------------------------------------------------------- 1 | /* To create a new database: */ 2 | CREATE DATABASE database_name; 3 | 4 | /* Ex : */ 5 | CREATE DATABASE joes; 6 | 7 | /* To drop(Remove) a database:*/ 8 | DROP DATABASE database_name; 9 | 10 | /* Ex:*/ 11 | DROP DATABASE joes; 12 | 13 | 14 | /* To view all databases:*/ 15 | SHOW DATABASES; 16 | 17 | /* To select a database:*/ 18 | USE database_name; 19 | 20 | /* Ex:*/ 21 | USE joes; 22 | 23 | 24 | /* To create a new table:*/ 25 | 26 | CREATE TABLE users(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT NOT NULL,PRIMARY KEY(id)); 27 | 28 | /* To view all tables in a database:*/ 29 | SHOW TABLES; 30 | 31 | /* To view structure of a table:*/ 32 | DESCRIBE table_name; 33 | 34 | Ex: 35 | DESCRIBE users; 36 | 37 | /* To add a new column inside a table:*/ 38 | ALTER TABLE users ADD gender VARCHAR(10) NOT NULL AFTER AGE; 39 | 40 | /* To add multiple columns to a table:*/ 41 | ALTER TABLE users ADD city VARCHAR(50) NOT NULL, ADD contact VARCHAR(50) NOT NULL; 42 | 43 | /*To modify a column in a table:*/ 44 | ALTER TABLE users MODIFY contact VARCHAR(25) NOT NULL; 45 | 46 | /*To rename a table:*/ 47 | ALTER TABLE users RENAME TO students; 48 | 49 | /*To view recoords in a table:*/ 50 | SELECT * FROM students; 51 | 52 | /* To insert a record into a table:*/ 53 | INSERT INTO students VALUES(NULL,'Ram',25,'Male','Salem','9874563210'); 54 | 55 | /* To insert mutiple records into a table:*/ 56 | INSERT INTO students(name,age,gender,city,contact) VALUES ('Ravi',23,'Male','Namakkal','9876543210'),('Sara',23,'Female','Erode','9874521360'); 57 | 58 | /* To delete a row from table:*/ 59 | DELETE FROM students WHERE id=4; 60 | 61 | /* To Modify/Update a row in table:*/ 62 | UPDATE students SET city='Hosur',contact='9988776655' WHERE id=3; 63 | 64 | /* To clear all data from a table:*/ 65 | TRUNCATE TABLE students; 66 | 67 | /* Select particular fields in a table:*/ 68 | SELECT name,age FROM students; 69 | 70 | /* elect records with criteria:*/ 71 | SELECT name,age,city FROM students WHERE city='Hosur'; 72 | 73 | /* Select recoords with multiple criteria:*/ 74 | SELECT name,age,city FROM students WHERE city='Hosur' AND age >= 23; 75 | 76 | SELECT name,age,city FROM students WHERE city='Namakkal' OR city='Hosur'; 77 | 78 | SELECT name,age,city FROM students WHERE (city='Namakkal' OR city='Hosur') AND age >= 23; 79 | 80 | /* To select unique values in a field:*/ 81 | SELECT DISTINCT city FROM students; 82 | 83 | /* To count unique values in a field:*/ 84 | SELECT COUNT(DISTINCT city) FROM students; 85 | 86 | /* To count unique values in a field with allies name:*/ 87 | 88 | SELECT COUNT(DISTINCT city) AS total FROM students; 89 | 90 | /* To Select N number of recoords:*/ 91 | SELECT * FROM students LIMIT 5; 92 | 93 | /* To Select a range of recoords:*/ 94 | SELECT * FROM students LIMIT 5,15; 95 | 96 | /* To select the very first record from a table:*/ 97 | SELECT * FROM students LIMIT 0,1; 98 | 99 | /* To select the very last record from a table:*/ 100 | SELECT * FROM students ORDER BY id DESC LIMIT 0,1; 101 | 102 | /* To select maximum value in a table:*/ 103 | SELECT MAX(age) FROM students; 104 | 105 | /* To select minimum value in a table:*/ 106 | SELECT MIN(age) FROM students; 107 | 108 | /* To select average of a field:*/ 109 | SELECT AVG(age) FROM students; 110 | 111 | /* To round a float value:*/ 112 | SELECT ROUND(AVG(age),0) FROM students; 113 | 114 | /* To select sum of a field:*/ 115 | SELECT SUM(age) FROM students; 116 | 117 | /* To select group wise records:*/ 118 | SELECT gender,COUNT(id) FROM students GROUP BY gender; 119 | 120 | 121 | /* WILD CARD QUERIES: 122 | To select values starts with some letters:*/ 123 | SELECT NAME FROM students WHERE name LIKE 'Ra%'; 124 | 125 | /* To select values ends with some letters:*/ 126 | SELECT NAME FROM students WHERE name LIKE '%am'; 127 | 128 | /* To select values contains some letters:*/ 129 | SELECT NAME FROM students WHERE name LIKE '%la%'; 130 | 131 | /* To select values having given keywords:*/ 132 | SELECT * FROM STUDENTS WHERE city IN('Salem','Namakkal'); 133 | 134 | /* To select values not having given keywords:*/ 135 | SELECT * FROM STUDENTS WHERE city NOT IN('Salem','Namakkal'); 136 | 137 | /* To select values not starts with some letters:*/ 138 | SELECT NAME FROM students WHERE name NOT LIKE 'Ra%'; 139 | 140 | /* To select values using between keyword:*/ 141 | SELECT name,age FROM students WHERE age BETWEEN 24 AND 30; 142 | 143 | 144 | /* JOIN QUERIES: 145 | 1.Inner Join(To select common values only)*/ 146 | SELECT emp.name,emp.design,salary.sdate,salray.amt FROM emp INNER JOIN salary ON emp.id = salary.id; 147 | 148 | /* 2.Left Join(To select common values and all values from the first table)*/ 149 | SELECT emp.name,emp.design,salary.sdate,salray.amt FROM emp LEFT JOIN salary ON emp.id = salary.id; 150 | 151 | /* 3.Right Join(To select common values and all values from the second table)*/ 152 | SELECT emp.name,emp.design,salary.sdate,salray.amt FROM emp LEFT JOIN salary ON emp.id = salary.id; 153 | 154 | /* To select with cases:*/ 155 | SELECT name,city,(CASE WHEN city='Salem' THEN 100 WHEN city='Namakkal' THEN 200 WHEN city='Chennai' THEN 300 WHEN city='Hosur' THEN 400 ELSE 0 END) AS amt FROM students; -------------------------------------------------------------------------------- /Mysql_Part_2.sql: -------------------------------------------------------------------------------- 1 | /*Multiple Inner Join:*/ 2 | SELECT students.name,students.rollno,course.cname,marks.M1,marks.M2,marks.M3 FROM students INNER JOIN course ON students.cid=course.cid INNER JOIN marks ON students.id=marks.id; 3 | 4 | 5 | 6 | 7 | /*Simple Dynamic Marklist using Queries:*/ 8 | 9 | SELECT students.name,students.rollno, 10 | course.cname as Course, 11 | marks.M1,marks.M2,marks.M3, 12 | (marks.M1,marks.M2,marks.M3) AS Total, 13 | ROUND(((marks.M1,marks.M2,marks.M3)/3),2) AS Average 14 | CASE 15 | WHEN marks.M1 >= 35 AND marks.M2 >= 35 AND marks.M3 >= 35 THEN 'PASS' 16 | ELSE 'FAIL' 17 | END AS Result, 18 | CASE 19 | WHEN marks.M1 >= 35 AND marks.M2 >= 35 AND marks.M3 >= 35 THEN 20 | CASE 21 | WHEN ROUND(((marks.M1,marks.M2,marks.M3)/3),2) >= 90 AND ROUND(((marks.M1,marks.M2,marks.M3)/3),2) < = 100 THEN 'A' 22 | WHEN ROUND(((marks.M1,marks.M2,marks.M3)/3),2) >= 80 AND ROUND(((marks.M1,marks.M2,marks.M3)/3),2) < = 89 THEN 'B' 23 | ELSE 24 | 'C' 25 | END 26 | ELSE 'NO GRADE' 27 | END AS Result, 28 | FROM students INNER JOIN course ON students.cid=course.cid INNER JOIN marks ON students.id=marks.id; 29 | 30 | 31 | 32 | /*To use dynamically Created column names:*/ 33 | 34 | SELECT students.name,students.rollno, 35 | course.cname as Course, 36 | marks.M1,marks.M2,marks.M3, 37 | (marks.M1,marks.M2,marks.M3) AS Total, 38 | ROUND(((marks.M1,marks.M2,marks.M3)/3),2) AS Average 39 | CASE 40 | WHEN marks.M1 >= 35 AND marks.M2 >= 35 AND marks.M3 >= 35 THEN 'PASS' 41 | ELSE 'FAIL' 42 | END AS Result, 43 | CASE 44 | WHEN marks.M1 >= 35 AND marks.M2 >= 35 AND marks.M3 >= 35 THEN 45 | CASE 46 | WHEN ROUND(((marks.M1,marks.M2,marks.M3)/3),2) >= 90 AND ROUND(((marks.M1,marks.M2,marks.M3)/3),2) < = 100 THEN 'A' 47 | WHEN ROUND(((marks.M1,marks.M2,marks.M3)/3),2) >= 80 AND ROUND(((marks.M1,marks.M2,marks.M3)/3),2) < = 89 THEN 'B' 48 | ELSE 49 | 'C' 50 | END 51 | ELSE 'NO GRADE' 52 | END AS Result, 53 | FROM students INNER JOIN course ON students.cid=course.cid INNER JOIN marks ON students.id=marks.id WHERE course.cname='BCA' having Result = 'PASS' AND (Average >= 70 AND Average <= 100); 54 | 55 | 56 | 57 | /*Creating queries as View:*/ 58 | 59 | CREATE VIEW Reports AS 60 | SELECT students.name,students.rollno, 61 | course.cname as Course, 62 | marks.M1,marks.M2,marks.M3, 63 | (marks.M1,marks.M2,marks.M3) AS Total, 64 | ROUND(((marks.M1,marks.M2,marks.M3)/3),2) AS Average 65 | CASE 66 | WHEN marks.M1 >= 35 AND marks.M2 >= 35 AND marks.M3 >= 35 THEN 'PASS' 67 | ELSE 'FAIL' 68 | END AS Result, 69 | CASE 70 | WHEN marks.M1 >= 35 AND marks.M2 >= 35 AND marks.M3 >= 35 THEN 71 | CASE 72 | WHEN ROUND(((marks.M1,marks.M2,marks.M3)/3),2) >= 90 AND ROUND(((marks.M1,marks.M2,marks.M3)/3),2) < = 100 THEN 'A' 73 | WHEN ROUND(((marks.M1,marks.M2,marks.M3)/3),2) >= 80 AND ROUND(((marks.M1,marks.M2,marks.M3)/3),2) < = 89 THEN 'B' 74 | ELSE 75 | 'C' 76 | END 77 | ELSE 'NO GRADE' 78 | END AS Result, 79 | FROM students INNER JOIN course ON students.cid=course.cid INNER JOIN marks ON students.id=marks.id; 80 | 81 | /*Accessing views like a table:*/ 82 | SELECT * FROM Reports; 83 | SELECT * FROM Reports WHERE Result = 'PASS'; 84 | 85 | 86 | /*Update table using Inner Join:*/ 87 | 88 | UPDATE marks INNER JOIN students ON students.id = marks.id SET M1 = 100,M2 = 100,M3 = 100 WHERE students.rollno = 'A1001'; 89 | 90 | 91 | /*Creating Triggers:*/ 92 | CREATE TRIGGER before_products_update 93 | BEFORE UPDATE ON product 94 | FOR EACH ROW 95 | BEGIN 96 | INSERT INTO price_logs(pid,price,new_price) 97 | VALUES(old.pid,old.rate,new.rate); 98 | END$$ --------------------------------------------------------------------------------