SQL

/* 01 - In Mac , connect database */-- -- open terminal type mysql -u root -p --enter password */ qwerty123
/* 02 - Showing database List */ SHOW DATABASES;
/* 03 - Create database */ CREATE DATABASE rajat;
/* 04 - Select database */ -- syntax, USE Data Base Name USE rajat;
/* 05 - Create table and column name in database */ -- syntax - CREATE TABLE table ( column name datatype); CREATE TABLE raj5( id INT NOT NULL UNIQUE, nam VARCHAR(50) NOT NULL, age INT NOT NULL CHECK(age >= 18), gender VARCHAR(1) NOT NULL, phone VARCHAR(10) NOT NULL UNIQUE, city VARCHAR(15) NOT NULL DEFAULT 'Agra' );
/* 06 - INSERT data in table one by one */ -- syntax - INSERT INTO table (column1, column2) VALUES (value1, value2); INSERT INTO raj5 ( id, nam, age, gender, phone, city) VALUES ( 1,"Ram Kumar", "23", "M", "0001","Meerut" ); --or INSERT INTO raj5 ( id, nam, age, gender, phone, city) VALUES ( 2,"Meera Khan", "22", "F", "0002","Delhi" ); --or INSERT INTO raj5 ( id, nam, age, gender, phone, city) VALUES ( 3,"Anil Kapoor", "21", "M", "0003","Mumbai" );
/* 07 - INSERT multiple data */ -- syntax - INSERT INTO table (column1) VALUES (value1), (value2), (value3); INSERT INTO raj5 ( id, nam, age, gender, phone, city) VALUES (4,"Ram Kumar","23","M","0004","Agra"), (5,"Sarita Kumari","21","F","0005","Mawana"), (6,"Salman Khan","20","M","0006","Agra"), (7,"Juhi Chawla","28","F","0007","Bhopal"), (8,"Anil Kapoor","22","M","0008","Agra"), (9,"John Abraham","21","M","0009","Delhi"); -- CHECK FOR NOT NULL, gender value not inserted INSERT INTO raj5( id, nam, age, gender, phone, city) VALUES (10,"SSarita","18","4015155","Agra"); -- -error column count doesnot match value count -- DEFAULT, city emter meerut, Already Defined INSERT INTO raj5(id, nam, age, gender, phone) VALUES(11,"Rajat Singh", "20", "M", "49873214"); -- -error column count doesnot match value count -- UNIQUE, Duplicate phone number INSERT INTO raj5(id, nam, age, gender, phone, city) VALUES(12,"Juhi Chawla","21","F","0009","Agra"); -- -ERROR 1062 (23000): Duplicate entry '0009' for key 'raj5.phone' -- Conditon Check, age INSERT INTO raj5(id, nam, age, gender, phone, city) VALUES(13,"John","17","F","4017755","Agra"); -- ERROR 3819 (HY000): Check constraint 'raj5_chk_1' is violated.
/* 08 - Select Data from tabel */ -- select all column SELECT * FROM raj5; -- select name,phone FORM column SELECT nam, phone FROM raj5; -- where clause (conditional base search) -- Condition meet SELECT * FROM raj5 WHERE gender = "F"; SELECT * FROM raj5 WHERE age<20; SELECT * FROM raj5 WHERE city != "Agra"; --NOT SELECT * FROM raj5 WHERE city = "Agra"; SELECT Id, Student Name FROM raj5 WHERE city <> "Agra"; --NOT SELECT * FROM raj5 WHERE age >= 18 AND age <= 21; SELECT * FROM raj5 WHERE age <= 20 AND gender = "M"; SELECT * FROM raj5 WHERE (city = "Bhopal" OR city = "Agra") AND gender = "M"; SELECT * FROM raj5 WHERE NOT (city = "Bhopal" OR city = "Agra"); SELECT * FROM raj5 WHERE NOT age >= 20; -- IN & NOT IN SELECT * FROM raj5 WHERE age IN(18,21); --find only 18 & 21 SELECT * FROM raj5 WHERE age IN(18,21,19); -- SELECT * FROM raj5 WHERE age NOT IN(18,21,19); SELECT * FROM raj5 WHERE city IN("Delhi","Bhopal"); -- BETWEEN, AND SELECT * FROM raj5 WHERE age BETWEEN 18 AND 20; --INCLUDE 18 & 22 SELECT * FROM raj5 WHERE age NOT BETWEEN 18 AND 20; SELECT * FROM raj5 WHERE id BETWEEN 2 AND 5; SELECT * FROM raj5 WHERE id NOT BETWEEN 2 AND 5; SELECT * FROM raj5 WHERE nam BETWEEN "a" AND "k"; SELECT * FROM raj5 WHERE nam BETWEEN "anil" AND "kamal"; -- first characters -- LIKE, %, _, SELECT * FROM raj5 WHERE nam LIKE "s%"; -- start from word s SELECT * FROM raj5 WHERE nam LIKE "ram%"; -- start from ram SELECT * FROM raj5 WHERE nam LIKE "%am%"; -- am in between, last first , no matter SELECT * FROM raj5 WHERE nam LIKE "r%" OR nam LIKE "s%"; -- starts with r or s SELECT * FROM raj5 WHERE nam NOT LIKE "r%"; SELECT * FROM raj5 WHERE BINARY nam LIKE "r%"; -- only small case SELECT * FROM raj5 WHERE nam LIKE "%r"; -- value end with chracter r SELECT * FROM raj5 WHERE nam LIKE "r%r"; -- like ram kumar SELECT * FROM raj5 WHERE nam LIKE "_am%"; -- only have 1 character at starting, and am at end of that word SELECT * FROM raj5 WHERE nam LIKE "__m%"; -- only have 2 characters at starting of character m, and no character at end SELECT * FROM raj5 WHERE nam LIKE "r_m%"; -- start with =r, one character in middle, end with =m -- Regular Expression ' ', ^, $, [], SELECT * FROM raj5 WHERE nam REGEXP 'ra'; -- return the world which contain ra,middle last or start SELECT * FROM raj5 WHERE nam REGEXP '^ra'; -- starting form ra SELECT * FROM raj5 WHERE nam REGEXP 'an$'; -- end with an word SELECT * FROM raj5 WHERE nam REGEXP 'ram|kapoor|khan'; -- multiple search SELECT * FROM raj5 WHERE nam REGEXP 'ram|poor|khan'; -- same as above SELECT * FROM raj5 WHERE nam REGEXP '^ram|poor|^khan'; -- starting with ram, and poor word, and starting with khan SELECT * FROM raj5 WHERE nam REGEXP '^ram|poor|khan$'; -- check khan at the end SELECT * FROM raj5 WHERE nam REGEXP '[xt]'; -- check each value SELECT * FROM raj5 WHERE nam REGEXP '[rm]a'; -- combination of ra and ma SELECT * FROM raj5 WHERE nam REGEXP 'r[am]'; -- combination ra and rm SELECT * FROM raj5 WHERE nam REGEXP '^[rs]'; -- start with r or s SELECT * FROM raj5 WHERE nam REGEXP '[rs]$'; -- end with r or s SELECT * FROM raj5 WHERE nam REGEXP '[a-b]r'; -- range with r end ( ar,br) -- ORDER BY SELECT * FROM raj5 ORDER BY nam; -- alphabetic order SELECT * FROM raj5 ORDER BY nam DESC; -- descending order SELECT * FROM raj5 WHERE city = "Agra" ORDER BY nam DESC; -- WHERE, ORDER BY, DESC SELECT * FROM raj5 WHERE city = "Agra" ORDER BY nam; -- WHERE, ORDER BY, DESC SELECT * FROM raj5 ORDER BY age; -- order by using numbers SELECT * FROM raj5 ORDER BY city; SELECT * FROM raj5 ORDER BY nam,city; -- multiple order -- DISTINCT ( show only single apperence values , no duplicate ) SELECT DISTINCT city FROM raj5; SELECT DISTINCT age FROM raj5; SELECT DISTINCT age FROM raj5 ORDER BY age; -- null SELECT * FROM raj5 WHERE city IS NULL; -- it doesnot means empty SELECT * FROM raj5 WHERE nam IS NULL; SELECT * FROM raj5 WHERE nam IS NOT NULL; -- LIMIT & OFFSET (NEED TO SEE THE DATA IN LIMITED FORM ) SELECT * FROM raj5 LIMIT 2; -- starting two values SELECT * FROM raj5 WHERE city = "Agra" LIMIT 3; -- limited to 3 result SELECT * FROM raj5 WHERE city = "Agra" ORDER BY nam LIMIT 3; -- Offset SELECT * FROM raj5 LIMIT 3, 2; -- leave starting 3 entry and then only show 2 entry SELECT * FROM raj5 LIMIT 6, 3; SELECT * FROM raj5 LIMIT 0, 3;
/* 09 - ALIAS , AS make it more readable */ -- syntax -- SELECT ID AS CustomerID FROM table; -- SELECT CustomerID ID FROM tabel; AS optional -- create column CREATE TABLE raj5( id INT NOT NULL UNIQUE, nam VARCHAR(50) NOT NULL, age INT NOT NULL CHECK(age >= 18), gender VARCHAR(1) NOT NULL, phone VARCHAR(10) NOT NULL UNIQUE, city VARCHAR(15) NOT NULL DEFAULT 'Agra' ); -- enter the data INSERT INTO raj5 ( id, nam, age, gender, phone, city) VALUES (14,"Kumar","23","M","0014","Agra"), (25,"Sarita","21","F","0015","Mawana"), (16,"swati","30","F","0016","Doon"), (17,"guddi","28","F","0017","Mussoorie"), (18,"Anil Kapoor","22","M","0018","Agra"), (19,"shilpi","21","F","0019","Rishikesh"); -- for making it more readible SELECT id AS "Student Id",nam AS "Student Name",phone AS "Phone Number" FROM raj5 WHERE city = "Agra"; SELECT id AS "Student Id",nam AS "Student Name" FROM raj5 WHERE city = "Agra"; --if two word ,then use double quotes
/* 10 - count, max, min, sum, avg */ -- COUNT SELECT COUNT(nam) FROM raj5; -- count name only SELECT COUNT(*) FROM raj5; SELECT COUNT(DISTINCT city) FROM raj5; -- count only unique city SELECT COUNT(DISTINCT city) AS Count FROM raj5; -- (Alis) give name to the heading -- MAX SELECT MAX(age) AS age FROM raj5; -- MIN SELECT MIN(age) AS AGE FROM raj5; -- SUM SELECT SUM(age) AS Total FROM raj5; -- AVG SELECT AVG(age) AS Average FROM raj5;
/* 11 - Update */ -- syntax - update table set value where condition meet UPDATE raj5 SET phone = "4055555" WHERE id = 1; -- update phoen whre id = 1 UPDATE raj5 SET age = 66 WHERE id = 2; UPDATE raj5 SET age = 55 WHERE id IN (2,4); -- select id 2 and 4 only UPDATE raj5 SET age = 19; -- cant chage the whole table value in safe mode
/* 12 - commit and rollback */ -- first commit it . otherwise every data will delete, before commit , roll back not posssible -- if not working , SET autocommit = 0; SET autocommit = 0; -- Example-1 SELECT * FROM raj5; UPDATE raj5 SET percentage = 60 WHERE id = 2; ROLLBACK; -- ( successfully roll back the entry ) -- Example-2 SELECT * FROM raj5; UPDATE raj5 SET percentage = 60 WHERE id = 2; COMMIT; ROLLBACK; -- ( can not roll back the entry ) -- Example-3 SELECT * FROM raj5; UPDATE raj5 SET percentage = 50 WHERE id = 2; SELECT * FROM raj5; -- just for check COMMIT; ROLLBACK; -- not effect UPDATE raj5 SET percentage = 00 WHERE id = 2; ROLLBACK; -- rollback
/* 13 - Delete row */ DELETE FROM raj5 WHERE id = 37; DELETE FROM raj5 WHERE gender = 'F'; -- can not delete you are using a safe mode DELETE FROM raj5 WHERE age > 20; -- can not delete you are using a safe mode DELETE FROM raj5; -- delete the entir database, but not the databasse name
/* 14 - Delete Column */ ALTER TABLE Customers DROP COLUMN ContactName;
/* 15 - Foregin Key in one go */ -- sql14.png -- create table "city" CREATE TABLE city( cid INT NOT NULL AUTO_INCREMENT, -- id of the table auto-increment cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) -- must at last ); -- insert records in "city" table INSERT INTO city(cityname) -- id is auto incremental VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- create table "raj5" and insert records CREATE TABLE raj5( id INT NOT NULL, nam VARCHAR(50) NOT NULL, percent INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid) -- foreign key = save another table value( must have primary key ) in this column -- reference key = other table_name & columan_name (where to match) ); -- FOREIGN KEY (table name) = make city columan as foreign key INSERT INTO raj5(id, nam, percent, age, gender, city) -- manually store the foregin key VALUES (1,"Ram Kumar","45","23","M",1), (2,"Sarita Kumari","56","21","F",2), (3,"Salman Khan","62","20","M",1), (4,"Juhi Chawla","47","18","F",3), (5,"Anil Kapoor","74","22","M",1), (6,"John Abraham","64","21","M",2), (7,"Shahid Kapoor","52","20","M",1);
/* 16 - Foregin Key one by one by one */ -- create table "city1" and insert record CREATE TABLE city1( cid INT NOT NULL AUTO_INCREMENT, cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) ); --insert INSERT INTO city1(cityname) VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- create table "raj6" and insert records CREATE TABLE raj6( id INT NOT NULL, nam VARCHAR(50) NOT NULL, percent INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, PRIMARY KEY (id) ); -- insert INSERT INTO raj6(id, nam, percent, age, gender, city) VALUES (1,"Ram Kumar","45","23","M",1), (2,"Sarita Kumari","56","21","F",2), (3,"Salman Khan","62","20","M",1), (4,"Juhi Chawla","47","18","F",3), (5,"Anil Kapoor","74","22","M",1), (6,"John Abraham","64","21","M",2), (7,"Shahid Kapoor","52","20","M",1); -- add foregin key to the raj6 tabel ALTER TABLE raj6 ADD FOREIGN KEY (city) REFERENCES City1(Cid);
/* 17 - INNER JOIN : Basic */ --pic -- SYNTAX : SELECT column FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; -- Example - 1 --student CREATE TABLE student( student_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, PRIMARY KEY (student_id) ); INSERT INTO student(name) VALUES('Alice'), ('Bob'), ('Charlie'); -- courses CREATE TABLE courses( course_id INT NOT NULL, student_id INT NOT NULL, course_name VARCHAR(50) NOT NULL ); INSERT INTO courses(course_id, student_id, course_name) VALUES(101,1,'Math'), (102,2,'Science'), (103,3,'English'), (104,1,'History'); -- inner join SELECT student.name, courses.course_name FROM student INNER JOIN courses ON student.student_id = courses.student_id;
/* 18 - LEFT JOIN & RIGHT JOIN : Basic */ -- SYNTAX : SELECT column FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; -- Example - 1 --student CREATE TABLE student( student_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, PRIMARY KEY (student_id) ); INSERT INTO student(name) VALUES('Alice'), ('Bob'), ('Charlie'), ('David'); --courses CREATE TABLE courses( course_id INT NOT NULL, student_id INT NOT NULL, course_name VARCHAR(50) NOT NULL ); INSERT INTO courses(course_id, student_id, course_name) VALUES(101,1,'Math'), (102,2,'Science'), (103,3,'English'), (104,1,'History'), (105,5,'Hindi'); -- left join SELECT student.name, courses.course_name FROM student LEFT JOIN courses ON student.student_id = courses.student_id; -- right join SELECT student.name, courses.course_name FROM student RIGHT JOIN courses ON student.student_id = courses.student_id;
/* 19 - INNER JOIN : MORE */ -- create table jcity and insert data CREATE TABLE jcity( cid INT NOT NULL AUTO_INCREMENT, cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) ); -- insert INSERT INTO jcity(cityname) VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- create table doon and insert data CREATE TABLE doon( id INT NOT NULL, nam VARCHAR(50) NOT NULL, perce INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES jcity (cid) ); -- insert INSERT INTO doon(id, nam, perce, age, gender, city) VALUES (1,"Ram Kumar","45","13","M",1), (2,"Sarita Kumari","56","21","F",2), (3,"Salman Khan","62","20","M",1), (4,"Juhi Chawla","47","18","F",3), (5,"Anil Kapoor","74","22","M",1), (6,"John Abraham","64","21","M",2), (7,"Shahid Kapoor","52","20","M",1); -- inner join SELECT * FROM doon INNER JOIN jcity -- tabel1, tabel2 ON doon.city = jcity.cid; -- tabel1 column = tabel2 column -- inner join + alias SELECT * FROM doon Dd INNER JOIN jcity Cc ON Dd.city = Cc.cid; -- multiple table SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon Dd INNER JOIN jcity Cc ON Dd.city = Cc.cid; -- Where clause SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon Dd INNER JOIN city Cc ON Dd.city = Cc.cid WHERE Cc.cityname = "Agra"; -- Order by SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon Dd INNER JOIN city Cc ON Dd.city = Cc.cid WHERE Cc.cityname = "Agra" ORDER BY Dd.nam; -- join only( instead of innerjoin) SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon Dd JOIN city Cc ON Dd.city = Cc.cid WHERE Cc.cityname = "Agra" ORDER BY Dd.nam;
/* 20 - LEFT JOIN & RIGHT JOIN : MORE */ --LEFT JOIN (show all first table, & comman values form both tables) SELECT * FROM doon LEFT JOIN jcity ON doon.city = jcity.cid; -- using alias SELECT * FROM doon Dd LEFT JOIN jcity Cc ON Dd.city = Cc.cid; -- selected column SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon Dd LEFT JOIN jcity Cc ON Dd.city = Cc.cid; -- where SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon p LEFT JOIN jcity Cc ON p.city = Cc.cid WHERE gender = "M"; -- order by SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon Dd LEFT JOIN jcity Cc ON Dd.city = Cc.cid WHERE gender = "M" ORDER BY name; --RIGHT JOIN ( show all second table value with comman values form both table ) SELECT * FROM doon RIGHT JOIN jcity ON doon.city = city.cid; SELECT * FROM doon Dd RIGHT JOIN jcity Cc ON Dd.city = Cc.cid; SELECT Dd.id, Dd.nam, Dd.perce, Dd.age, Dd.gender, Cc.cityname FROM doon Dd RIGHT JOIN jcity Cc ON Dd.city = Cc.cid;
/* 21 - CROSS_JOIN */ -- first value of first table pair with all the value of second table, same process start with second value of first table ans so on -- sql25.png --CROSS JOIN SELECT Dd.id,Dd.nam,Cc.cityname FROM doon Dd CROSS JOIN jcity Cc; -- alias SELECT Dd.id, Dd.nam AS Name, Cc.cityname AS City FROM doon Dd CROSS JOIN jcity Cc; SELECT Dd.id, Dd.nam AS Name, Cc.cityname AS City FROM doon Dd , jcity Cc;
/* 22 - JOIN MULTIPLE TABLES */ -- create table "city2" and insert records -- CREATE TABLE city2( cid INT NOT NULL AUTO_INCREMENT, cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) ); INSERT INTO city2(cityname) VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- create table "courses" and insert records -- CREATE TABLE courses( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, PRIMARY KEY (course_id) ); INSERT INTO courses(course_name) VALUES('Btech'), ('BCA'), ('MBA'); -- create table "tOne1" and insert records -- CREATE TABLE tOne1( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); -- insert INSERT INTO tOne1(id, name, percentage, age, gender, city, courses) VALUES (1,"Ram Kumar","45","13","M",1,1), (2,"Sarita Kumari","56","21","F",2,2), (3,"Salman Khan","62","20","M",1,1), (4,"Juhi Chawla","47","18","F",3,1), (5,"Anil Kapoor","74","22","M",1,3), (6,"John Abraham","64","21","M",2,2), (7,"Shahid Kapoor","52","20","M",1,3); -- Join Multiple Tables -- -- syntax tabel1 inner join tabel2 ON cond. inner join table3 ON cond. SELECT * FROM tOne1 Tt INNER JOIN city Cc ON Tt.city = Cc.cid; -- pic sql20.png SELECT * FROM tOne1 Tt INNER JOIN city Cc ON Tt.city = Cc.cid INNER JOIN courses Cr ON Tt.courses = Cr.course_id; SELECT Tt.id, Tt.name, Tt.percentage, Tt.age, Tt.gender, Cc.cityname, Cr.course_name FROM tOne1 Tt INNER JOIN city Cc ON Tt.city = Cc.cid INNER JOIN courses Cr ON Tt.courses = Cr.course_id; SELECT Tt.id, Tt.name, Tt.percentage, Tt.age, Tt.gender, Cc.cityname, Cr.course_name FROM tOne1 Tt INNER JOIN city Cc ON Tt.city = Cc.cid INNER JOIN courses Cr ON Tt.courses = Cr.course_id WHERE Cc.cityname = "Agra";
/* 23 - GROUP BY & HAVING : Basic */ -- employees table CREATE TABLE employees( employees_id INT NOT NULL, name VARCHAR(50) NOT NULL, department VARCHAR(50) NOT NULL, salary INT NOT NULL ); INSERT INTO employees(employees_id, name, department, salary) VALUES(1,'Alice','HR',5000), (2,'Bob','IT',6000), (3,'Charlie','HR',5500), (4,'David','IT',7000), (5,'Eve','Finance',4500); -- query goupby SELECT department, SUM(salary) AS total_salary FROM employees GROUP BY department; // result department total_salary 'HR', '10500' 'IT', '13000' 'Finance', '4500' -- having SELECT department, SUM(salary) AS total_salary FROM employees GROUP BY department HAVING SUM(salary) > 10000; // result department total_salary 'HR', '10500' 'IT', '13000' -- You can use WHERE to filter rows before grouping and HAVING to filter groups after aggregation. SELECT department, SUM(salary) AS total_salary FROM employees WHERE salary > 4500 GROUP BY department HAVING SUM(salary) > 10000; // result department total_salary 'HR', '10500' 'IT', '13000' -- course table CREATE TABLE courses( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, PRIMARY KEY (course_id) ); INSERT INTO courses(course_name) VALUES('Btech'), ('BCA'), ('MBA'); -- tOne table CREATE TABLE tOne( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO tOne(id,name,percentage,age,gender,city,courses) VALUES (1,"Ram Kumar","45","13","M",1,1), (2,"Sarita Kumari","56","21","F",2,2), (3,"Salman Khan","62","20","M",1,1), (4,"Juhi Chawla","47","18","F",3,1), (5,"Anil Kapoor","74","22","M",1,3), (6,"John Abraham","64","21","M",2,2), (7,"Shahid Kapoor","52","20","M",1,3); -- group city id and their count SELECT city,COUNT(city) FROM tOne GROUP BY city; -- group city name and their count SELECT c.cityname,COUNT(p.city) FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city; -- use above with alias SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city; -- above with WHERE SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid WHERE p.age >= 20 GROUP BY city; -- above ORDER BY SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city ORDER BY COUNT(p.city); -- above ORDER BY and DESC SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city ORDER BY COUNT(p.city) DESC; -- HAVING (use for applying conditions on the table came after the group by options) SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city HAVING COUNT(p.city) > 3 ORDER BY COUNT(p.city) DESC;
/* 24 - GROUP BY & HAVING : MORE */ -- city table CREATE TABLE city( cid INT NOT NULL AUTO_INCREMENT, cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) ); INSERT INTO city(cityname) VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- course table CREATE TABLE courses( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, PRIMARY KEY (course_id) ); INSERT INTO courses(course_name) VALUES('Btech'), ('BCA'), ('MBA'); -- tOne table CREATE TABLE tOne( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO tOne(id,name,percentage,age,gender,city,courses) VALUES (1,"Ram Kumar","45","13","M",1,1), (2,"Sarita Kumari","56","21","F",2,2), (3,"Salman Khan","62","20","M",1,1), (4,"Juhi Chawla","47","18","F",3,1), (5,"Anil Kapoor","74","22","M",1,3), (6,"John Abraham","64","21","M",2,2), (7,"Shahid Kapoor","52","20","M",1,3); -- group city id and their count SELECT city,COUNT(city) FROM tOne GROUP BY city; -- group city name and their count SELECT c.cityname,COUNT(p.city) FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city; -- use above with alias SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city; -- above with WHERE SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid WHERE p.age >= 20 GROUP BY city; -- above ORDER BY SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city ORDER BY COUNT(p.city); -- above ORDER BY and DESC SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city ORDER BY COUNT(p.city) DESC; -- HAVING (use for applying conditions on the table came after the group by options) SELECT c.cityname,COUNT(p.city) AS Total FROM tOne p INNER JOIN city c ON p.city = c.cid GROUP BY city HAVING COUNT(p.city) > 3 ORDER BY COUNT(p.city) DESC;
/* 25 - SUBQUERY WITH EXISTS & NOT EXISTS */ -- ex-1 Use SubQuery SELECT name FROM tOne WHERE courses = (SELECT course_id FROM courses WHERE course_name = "MBA"); -- ex-2 SELECT course_id FROM courses WHERE course_name = "MBA"; -- ex-3 SELECT name FROM tOne WHERE courses IN (SELECT course_id FROM courses WHERE course_name IN ("MBA","Btech")); -- Exists & Not Exists SELECT name FROM tOne WHERE EXISTS (SELECT course_id FROM courses WHERE course_name IN ("MBA")); SELECT name FROM tOne WHERE EXISTS (SELECT course_id FROM courses WHERE course_name IN ("Mtech")); SELECT name FROM tOne WHERE NOT EXISTS (SELECT course_id FROM courses WHERE course_name IN ("Mtech")); SELECT name FROM tOne WHERE NOT EXISTS (SELECT course_id FROM courses WHERE course_name IN ("MBA"));
/* 26 - UNION & UNION ALL : Basics */ -- students_2023 CREATE TABLE students_2023( student_id INT NOT NULL, name VARCHAR(50) NOT NULL ); INSERT INTO students_2023(student_id,name) VALUES (1,"Alice"), (2,"Bob"), (3,"Charlie"); -- students_2023 CREATE TABLE students_2024( student_id INT NOT NULL, name VARCHAR(50) NOT NULL ); INSERT INTO students_2024(student_id,name) VALUES (2,"Bob"), (4,"David"); -- UNION : combine and no duplicate SELECT student_id, name FROM students_2023 UNION SELECT student_id, name FROM students_2024; -- UNION ALL : combine and duplicate SELECT student_id, name FROM students_2023 UNION ALL SELECT student_id, name FROM students_2024;
/* 27 - UNION & UNION ALL : MORE */ -- create table "students" and insert records -- CREATE TABLE students( id INT NOT NULL, name VARCHAR(50) NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO students(id,name,age,gender,city,courses) VALUES (1,"Ram Kumar","19","M",1,1), (2,"Sarita Kumari","22","F",2,2), (3,"Salman Khan","20","M",1,1), (4,"Juhi Chawla","18","F",3,3), (5,"Anil Kapoor","22","M",1,3), (6,"John Abraham","21","M",2,2), (7,"Shahid Kapoor","20","M",1,1); -- create table "city" and insert records -- CREATE TABLE city( cid INT NOT NULL AUTO_INCREMENT, cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) ); INSERT INTO city(cityname) VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- create table "courses" and insert records -- CREATE TABLE courses( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, PRIMARY KEY (course_id) ); INSERT INTO courses(course_name) VALUES('Btech'), ('BCA'), ('MBA'); -- create table "lecturers" and insert records -- CREATE TABLE lecturers( id INT NOT NULL, name VARCHAR(50) NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO lecturers(id,name,age,gender,city,courses) VALUES (1,"Raj Kapoor","37","M",1,2), (2,"Sadhna","39","F",4,3), (3,"Ram Kumar","38","M",2,1), (4,"Salim Khan","45","M",3,2), (5,"Nagma","42","F",2,1); -- UNION & UNION ALL -- SELECT * FROM students UNION SELECT * FROM lecturers; SELECT name FROM students UNION SELECT name FROM lecturers; SELECT name FROM students UNION ALL SELECT name FROM lecturers; SELECT name,age FROM students UNION ALL SELECT name,age FROM lecturers; SELECT name,age FROM students WHERE gender ="M" UNION ALL SELECT name,age FROM lecturers WHERE gender ="M"; SELECT name,age FROM students WHERE gender ="M" UNION ALL SELECT name,age FROM lecturers WHERE gender ="F"; SELECT name,age FROM students WHERE city =2 UNION ALL SELECT name,age FROM lecturers WHERE city = 2; SELECT name,age FROM students WHERE city = (SELECT cid FROM city WHERE cityname = "Delhi") UNION ALL SELECT name,age FROM lecturers WHERE city = (SELECT cid FROM city WHERE cityname = "Delhi"); SELECT s.name,s.age, c.cityname FROM students s INNER JOIN city c ON s.city = c.cid WHERE c.cityname = "Delhi" UNION ALL SELECT l.name,l.age,ci.cityname FROM lecturers l INNER JOIN city ci ON l.city = ci.cid WHERE ci.cityname = "Delhi";
/* 28 - IF & CASE STATEMENT : Basics */ -- perform conditional logic within your queries -- create sales CREATE TABLE sales ( sale_id INT PRIMARY KEY, amount DECIMAL(10, 2), sale_date DATE ); INSERT INTO sales (sale_id, amount, sale_date) VALUES (1, 1500, '2024-01-15'), (2, 3000, '2024-01-20'), (3, 500, '2024-02-15'), (4, 2500, '2024-02-20'); -- query SELECT sale_id, amount, IF(amount > 2000, 'High', 'Low') AS amount_level FROM sales; // result sale_id, amount, amount_level '1', '1500.00', 'Low' '2', '3000.00', 'High' '3', '500.00', 'Low' '4', '2500.00', 'High' -- case -- The CASE statement is more flexible and can handle multiple conditions. SELECT sale_id, amount, CASE WHEN amount <= 1000 THEN 'Low' WHEN amount > 1000 AND amount <= 2000 THEN 'Medium' WHEN amount > 2000 THEN 'High' ELSE 'Unknown' END AS amount_level FROM sales; -- Running the Aggregation with CASE Example SELECT COUNT(CASE WHEN amount <= 1000 THEN 1 END) AS low_sales, COUNT(CASE WHEN amount > 1000 AND amount <= 2000 THEN 1 END) AS medium_sales, COUNT(CASE WHEN amount > 2000 THEN 1 END) AS high_sales FROM sales;
/* 29 - IF & CASE STATEMENT : MORE */ -- create table "students" and insert records -- CREATE TABLE students( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO students(id,name,percentage,age,gender,city,courses) VALUES (1,"Ram Kumar","45","19","M",1,1), (2,"Sarita Kumari","85","22","F",2,2), (3,"Salman Khan","29","20","M",1,1), (4,"Juhi Chawla","47","18","F",3,3), (5,"Anil Kapoor","74","22","M",1,3), (6,"John Abraham","64","21","M",2,2), (7,"Shahid Kapoor","120","20","M",1,1); -- IF Clause -- SELECT id,name,percentage, IF(percentage >= 33,"Pass","Fail") AS Result FROM students; -- CASE Clause -- SELECT id,name,percentage, CASE WHEN percentage >= 80 AND percentage <=100 THEN "Merit" WHEN percentage >= 60 AND percentage <=80 THEN "Ist Division" WHEN percentage >= 45 AND percentage <=60 THEN "IInd Division" WHEN percentage >= 33 AND percentage <=45 THEN "IIIrd Division" WHEN percentage < 33 THEN "Fail" ELSE "Not Correct %" END AS Grade FROM students; UPDATE students SET percentage = (CASE id WHEN 3 THEN 39 WHEN 7 THEN 62 END) WHERE id IN (3,7);
/* 30 - ARITHMETIC FUNCTIONS */ -- create table "students" and insert records -- CREATE TABLE students( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO students(id,name,percentage,age,gender,city,courses) VALUES (1,"Ram Kumar","45","19","M",1,1), (2,"Sarita Kumari","85","22","F",2,2), (3,"Salman Khan","29","20","M",1,1), (4,"Juhi Chawla","47","18","F",3,3), (5,"Anil Kapoor","74","22","M",1,3), (6,"John Abraham","64","21","M",2,2), (7,"Shahid Kapoor","120","20","M",1,1); -- Arithmetic Functions -- SELECT 5 + 6; SELECT 5 + 6 AS Total; SELECT 5 - 6 AS Total; SELECT 5 * 6 AS Total; SELECT 15 / 6 AS Total; SELECT 15 DIV 6 AS Total; SELECT 15 % 6 AS Total; SELECT 15 MOD 6 AS Total; SELECT id,name,percentage FROM students; SELECT id,name,(percentage + 5) FROM students; SELECT id,name,(percentage + 5) AS "NEW Percentage" FROM students; SELECT id,name,(percentage * 5) AS "NEW Percentage" FROM students; SELECT PI(); SELECT ROUND(4.51); SELECT ROUND(4.49); SELECT ROUND(-4.49); SELECT ROUND(-4.55); SELECT ROUND(1234.987); SELECT ROUND(1234.987,2); SELECT CEIL(1.23); SELECT CEIL(1.56); SELECT CEIL(4.23); SELECT FLOOR(4.56); SELECT FLOOR(4.40); SELECT POW(2,2); SELECT POW(2,3); SELECT POW(4,3); SELECT SQRT(16); SELECT SQRT(4); SELECT SQRT(5); SELECT ROUND(SQRT(5)); SELECT RAND(); SELECT RAND() * 100; SELECT ROUND(RAND() * 100); SELECT FLOOR(7 + (RAND() * 6)); SELECT FLOOR(1 + (RAND() * 5)); SELECT id,name,percentage,RAND() FROM students; SELECT id,name,percentage FROM students ORDER BY RAND(); SELECT ABS(-56); SELECT ABS(-56.25); SELECT ABS(56.25); SELECT SIGN(25); SELECT SIGN(0); SELECT SIGN(-25); SELECT SIGN(-3.25);
/* 31 - STRING FUNCTIONS */ -- create table "students" and insert records -- CREATE TABLE students( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO students(id,name,percentage,age,gender,city,courses) VALUES (1,"Ram Kumar","45","19","M",1,1), (2,"Sarita Kumari","85","22","F",2,2), (3,"Salman Khan","29","20","M",1,1), (4,"Juhi Chawla","47","18","F",3,3), (5,"Anil Kapoor","74","22","M",1,3), (6,"John Abraham","64","21","M",2,2), (7,"Shahid Kapoor","120","20","M",1,1); -- String Functions -- SELECT id, UPPER(name) AS Name , percentage FROM students; SELECT id, UCASE(name) AS Name , percentage FROM students; SELECT id, LOWER(name) AS Name , percentage FROM students; SELECT id, LCASE(name) AS Name , percentage FROM students; SELECT id, name,CHARACTER_LENGTH(name) AS Characters FROM students; SELECT id, name,CHAR_LENGTH(name) AS Characters FROM students; SELECT id, name,LENGTH(name) AS Characters FROM students; SELECT id, CONCAT(name, " " ,percentage) AS Name FROM students; SELECT id, CONCAT(name, " - " ,percentage) AS Name FROM students; SELECT CONCAT("Yahoo","Baba","Youtube","Channel") AS Name; SELECT CONCAT_WS("Yahoo","Baba","Youtube","Channel") AS Name; SELECT CONCAT_WS(" - ","Baba","Youtube","Channel") AS Name; SELECT " Yahoo Baba " AS Name; SELECT LTRIM(" Yahoo Baba ") AS Name; SELECT " Yahoo Baba " AS Name; SELECT RTRIM(" Yahoo Baba ") AS Name; SELECT TRIM(" Yahoo Baba ") AS Name; SELECT POSITION("Baba" IN "Yahoo Baba") AS Name; SELECT POSITION("Baba" IN "Yahoo Baba Baba") AS Name; SELECT POSITION("a" IN "Yahoo Baba Baba") AS Name; SELECT INSTR("Yahoo Baba Baba","a") AS Name; SELECT INSTR("Yahoo Baba Baba","Baba") AS Name; SELECT INSTR("Yahoo Baba Baba","hoo") AS Name; SELECT LOCATE("hoo","Yahoo Baba Baba") AS Name; SELECT LOCATE("a","Yahoo Baba Baba") AS Name; SELECT LOCATE("a","Yahoo Baba Baba",3) AS Name;
/* 32 - STRING FUNCTIONS - II */ SELECT SUBSTRING("Yahoo Baba",3); SELECT SUBSTRING("Yahoo Baba",3) AS Name; SELECT SUBSTRING("Yahoo Baba",5) AS Name; SELECT SUBSTRING("Yahoo Baba",3,6) AS Name; SELECT SUBSTRING("Yahoo Baba",-6,3) AS Name; SELECT SUBSTR("Yahoo Baba",-6,3) AS Name; SELECT MID("Yahoo Baba",-6,3) AS Name; SELECT SUBSTRING_INDEX("www.yahoobaba.net",".",1) AS Name; SELECT SUBSTRING_INDEX("www.yahoobaba.net",".",2) AS Name; SELECT SUBSTRING_INDEX("www.yahoobaba.net","o",2) AS Name; SELECT LEFT("Yahoo Baba",3) AS Name; SELECT LEFT("Yahoo Baba",5) AS Name; SELECT RIGHT("Yahoo Baba",5) AS Name; SELECT RIGHT("Yahoo Baba",3) AS Name; SELECT RPAD("Yahoo Baba",20,"-") AS Name; SELECT RPAD("Yahoo Baba",20,"ABC") AS Name; SELECT LPAD("Yahoo Baba",20,"*") AS Name; SELECT SPACE(100) AS Name; SELECT REVERSE("Yahoo Baba") AS Name; SELECT REPLACE("Yahoo Baba","Baba","Wow") AS Name; SELECT REPLACE("Yahoo Baba Yoo Baba","Baba","Wow") AS Name; SELECT STRCMP("Yahoo Baba","yahoo baba") AS Name; SELECT STRCMP("Yahoo Baba","yahoo ") AS Name; SELECT STRCMP("Yahoo ","yahoo baba") AS Name; SELECT FIELD("a","X","a","k") AS Name; SELECT FIELD("a","X","A","k") AS Name; SELECT FIELD(5,0,1,2,3,4,5) AS Name; SELECT FIELD("ram","Ram","Mohan","Shyam") AS Name; SELECT FIND_IN_SET("ram","Ram,Mohan,Shyam") AS Name; SELECT FIND_IN_SET("Mohan","Ram, Mohan, Shyam") AS Name; SELECT FIND_IN_SET("Mohan","Ram,Mohan,Shyam") AS Name; SELECT FORMAT(255.3568,2) AS Value; SELECT FORMAT(255.3568,3) AS Value; SELECT HEX("Yahoo Baba") AS Value;
/* 33 - DATE FUNCTIONS */ SELECT CURRENT_DATE(); SELECT CURDATE(); SELECT SYSDATE(); SELECT NOW(); SELECT DATE("2019-10-15 09:34:21") AS DATE; SELECT MONTH("2019-10-15 09:34:21") AS DATE; SELECT MONTHNAME("2019-10-15 09:34:21") AS DATE; SELECT YEAR("2019-10-15 09:34:21") AS DATE; SELECT QUARTER("2019-10-15 09:34:21") AS DATE; SELECT QUARTER("2019-03-15 09:34:21") AS DATE; SELECT DAY("2019-10-15 09:34:21") AS DATE; SELECT DAYOFMONTH("2019-10-15 09:34:21") AS DATE; SELECT DAYNAME("2019-06-15 09:34:21") AS DATE; SELECT DAYOFWEEK("2019-03-15 09:34:21") AS DATE; SELECT DAYOFYEAR("2019-06-15 09:34:21") AS DATE; SELECT WEEK("2019-06-15 09:34:21") AS DATE; SELECT WEEKDAY("2019-03-15 09:34:21") AS DATE; SELECT YEARWEEK("2019-06-15 09:34:21") AS DATE; SELECT LAST_DAY("2019-02-15 09:34:21") AS DATE; SELECT EXTRACT(MONTH FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(DAY FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(YEAR FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(WEEK FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(HOUR FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(MINUTE FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(SECOND FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(MICROSECOND FROM "2019-03-15 09:34:21") AS DATE; SELECT EXTRACT(HOUR_MINUTE FROM "2019-03-15 09:34:21") AS DATE;
/* 34 - DATE FUNCTIONS - II */ SELECT ADDDATE("2019-06-15",INTERVAL 10 DAY) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 50 DAY) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 1 MONTH) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 1 WEEK) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 1 YEAR) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 1 QUARTER) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 12 HOUR) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 24 HOUR) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 500 MINUTE) AS Date; SELECT ADDDATE("2019-06-15",INTERVAL 5000 MINUTE) AS Date; SELECT DATE_ADD("2019-06-15",INTERVAL 5000 MINUTE) AS Date; SELECT MAKEDATE(2019,3); SELECT MAKEDATE(2016,3); SELECT SUBDATE("2019-06-15",INTERVAL 1 DAY) AS Date; SELECT SUBDATE("2019-06-15",INTERVAL 10 DAY) AS Date; SELECT SUBDATE("2019-06-15",INTERVAL 10 MONTH) AS Date; SELECT DATEDIFF("2019-06-15","2019-02-10") AS Date; SELECT DATEDIFF("2019-06-15","2019-06-01") AS Date; SELECT DATEDIFF("2019-06-15","2018-06-01") AS Date; SELECT TO_DAYS("2019-06-15") AS Date; SELECT FROM_DAYS("685000") AS Date; SELECT PERIOD_ADD("685000",5) AS Date; SELECT PERIOD_DIFF("685000","695000") AS Date; SELECT DATE_FORMAT("2019-06-15","%Y") AS Date; SELECT DATE_FORMAT("2019-06-15","%d/%b/%Y") AS Date; SELECT DATE_FORMAT("2019-06-15","%d-%c-%Y") AS Date; SELECT DATE_FORMAT("2019-06-15","%d/%b/%y") AS Date; SELECT DATE_FORMAT("2019-06-15","%d-%c-%y, %W") AS Date; SELECT DATE_FORMAT("2019-06-15 02:30:50:20","%d-%c-%y, %h:%i") AS Date; SELECT STR_TO_DATE("July 10 2019","%M %d %Y") AS Date;
/* 35 - TIME FUNCTIONS */ SELECT CURRENT_TIME(); SELECT CURTIME(); SELECT CURRENT_TIMESTAMP(); SELECT LOCALTIME(); SELECT LOCALTIMESTAMP(); SELECT TIME("2019-06-15 13:15:20") AS Time; SELECT HOUR("2019-06-15 13:15:20") AS Time; SELECT MINUTE("2019-06-15 13:15:20") AS Time; SELECT SECOND("2019-06-15 13:15:20") AS Time; SELECT MICROSECOND("2019-06-15 13:15:20") AS Time; SELECT TIMEDIFF("18:10:11","13:15:20") AS Time; SELECT TIMEDIFF("14:10:11","13:15:20") AS Time; SELECT ADDTIME("2019-06-15 05:30:20.000001","5:5.000003") AS Time; SELECT ADDTIME("2019-06-15 05:30:20.000001","2:10:5.000003") AS Time; SELECT ADDTIME("2019-06-15 05:30:20.000001","5 2:10:5.000003") AS Time; SELECT SUBTIME("2019-06-15 05:30:20.000001","5 2:10:5.000003") AS Time; SELECT MAKETIME(16,15,20) AS Time; SELECT TIMESTAMP("2019-06-15","13:15:20") AS Time; SELECT TIME_FORMAT("13:15:20","%H") AS Time; SELECT TIME_FORMAT("13:15:20","%H %i %s") AS Time; SELECT TIME_FORMAT("13:15:20","%H-%i-%s") AS Time; SELECT TIME_FORMAT("13:15:20","%H-%i-%s %p") AS Time; SELECT SEC_TO_TIME("1") AS Time; SELECT SEC_TO_TIME("5454") AS Time;
/* 36 - ALTER */ -- create table "students" and insert records -- CREATE TABLE students( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, dob DATE NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO students(id,name,percentage,dob,age,gender,city,courses) VALUES (1,"Ram Kumar","45","2000-05-10","19","M",1,1), (2,"Sarita Kumari","85","1997-02-03","22","F",2,2), (3,"Salman Khan","29","1999-11-12","20","M",1,1), (4,"Juhi Chawla","47","2001-07-16","18","F",3,1), (5,"Anil Kapoor","74","1997-01-03","22","M",1,3), (6,"John Abraham","64","1998-08-10","21","M",2,2), (7,"Shahid Kapoor","62","1999-12-08","20","M",1,3); -- create table "courses" and insert records -- CREATE TABLE courses( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, PRIMARY KEY (course_id) ); INSERT INTO courses(course_name) VALUES('Btech'), ('BCA'), ('MBA'); -- ALTER Examples -- ALTER TABLE students ADD Email varchar(255); ALTER TABLE students MODIFY Email varchar(255) AFTER name; ALTER TABLE students MODIFY Email INT(10); ALTER TABLE students ADD UNIQUE (Email); ALTER TABLE students CHANGE Email Email_id carchar(255); ALTER TABLE students DROP COLUMN Email_id; ALTER TABLE students RENAME studentss; ALTER TABLE studentss RENAME students; ALTER TABLE courses AUTO_INCREMENT = 4;
/* 37 - DROP & TRUNCATE */ -- create table "students" and insert records -- CREATE TABLE students( id INT NOT NULL, name VARCHAR(50) NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO students(id,name,age,gender,city,courses) VALUES (1,"Ram Kumar","19","M",1,1), (2,"Sarita Kumari","22","F",2,2), (3,"Salman Khan","20","M",1,1), (4,"Juhi Chawla","18","F",3,3), (5,"Anil Kapoor","22","M",1,3), (6,"John Abraham","21","M",2,2), (7,"Shahid Kapoor","20","M",1,1); -- create table "city" and insert records -- CREATE TABLE city( cid INT NOT NULL AUTO_INCREMENT, cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) ); INSERT INTO city(cityname) VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- create table "courses" and insert records -- CREATE TABLE courses( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, PRIMARY KEY (course_id) ); INSERT INTO courses(course_name) VALUES('Btech'), ('BCA'), ('MBA') ('BA') ('BCOM'); -- DROP & TRUNCATE -- TRUNCATE TABLE courses; DROP TABLE courses;
/* 38 - VIEW */ --create table "students" and insert records -- CREATE TABLE students( id INT NOT NULL, name VARCHAR(50) NOT NULL, percentage INT NOT NULL, dob DATE NOT NULL, age INT NOT NULL, gender VARCHAR(1) NOT NULL, city INT NOT NULL, courses INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (city) REFERENCES City (cid), FOREIGN KEY (courses) REFERENCES Courses (course_id) ); INSERT INTO students(id,name,percentage,dob,age,gender,city,courses) VALUES (1,"Ram Kumar","45","2000-05-10","19","M",1,1), (2,"Sarita Kumari","85","1997-02-03","22","F",2,2), (3,"Salman Khan","29","1999-11-12","20","M",1,1), (4,"Juhi Chawla","47","2001-07-16","18","F",3,1), (5,"Anil Kapoor","74","1997-01-03","22","M",1,3), (6,"John Abraham","64","1998-08-10","21","M",2,2), (7,"Shahid Kapoor","62","1999-12-08","20","M",1,3); -- create table "courses" and insert records -- CREATE TABLE courses( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, PRIMARY KEY (course_id) ); INSERT INTO courses(course_name) VALUES('Btech'), ('BCA'), ('MBA'); -- create table "city" and insert records -- CREATE TABLE city( cid INT NOT NULL AUTO_INCREMENT, cityname VARCHAR(50) NOT NULL, PRIMARY KEY (cid) ); INSERT INTO city(cityname) VALUES('Agra'), ('Delhi'), ('Bhopal'), ('Jaipur'), ('Noida'); -- VIEW Examples -- -- Create view -- CREATE VIEW studentdata AS SELECT id,name,course_name FROM students s INNER JOIN courses c ON s.courses = c.course_id; -- show view -- SELECT * FROM studentdata; -- Alter view -- ALTER VIEW studentdata AS SELECT id,name,course_name,cityname FROM students s INNER JOIN courses c ON s.courses = c.course_id INNER JOIN city ci ON s.city = ci.cid; -- Another way to alter -- CREATE OR REPLACE VIEW studentdata AS SELECT id,name,course_name,cityname FROM students s INNER JOIN courses c ON s.courses = c.course_id INNER JOIN city ci ON s.city = ci.cid; -- rename view -- RENAME TABLE studentdata TO studentcourse; -- show view -- SELECT * FROM studentcourse; -- Delete/Drop view -- DROP VIEW studentcourse;
/* 39 - important queries */ -- show weather a column is auto-incremented or not */ SHOW COLUMNS FROM your_table_name LIKE 'your_column_name'; --If the column is auto-incremented, you'll see auto_increment in the Extra column. -- make existing column, auto-incremented ALTER TABLE your_table_name MODIFY COLUMN book_id INT AUTO_INCREMENT PRIMARY KEY; -- change existing table name by another name RENAME TABLE current_table_name TO new_table_name; -- change existing column name by column name ALTER TABLE table_name CHANGE old_column_name new_column_name data_type; -- delete the foreign key from a COLUMN ALTER TABLE record DROP FOREIGN KEY your_foreign_key_name; --Replace your_foreign_key_name with the actual name of your foreign key constraint.
If you don't know the name of the foreign key, you can usually find it by querying the information_schema database:
SELECT constraint_name FROM information_schema.key_column_usage WHERE table_name = 'record' AND column_name = 'record_state_i'; -- above will show the name and type of constraint ( in my case, constraint_name = record_ibfk_2 ) -- for remove the constraint ALTER TABLE record DROP FOREIGN KEY your_foreign_key_name; -- find the column ,if it has some foreign key constraint or not */ SELECT COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'kbpro' AND TABLE_NAME = 'record' AND COLUMN_NAME = 'record_gword_i'; -- in my case the result is as below -- COLUMN_NAME CONSTRAINT_NAME REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -- record_gword_i record_ibfk_2 gword gword_id -- add an column to existing table */ -- syntax ALTER TABLE database-name.column-name ADD COLUMN new-column-name data-type; -- Example ALTER TABLE kbpro.record ADD COLUMN record_user_i INT; -- add foregin key to exsisting column */ -- syntax ALTER TABLE table-1 ADD FOREIGN KEY (column-name-of-table-1) REFERENCES table-2 (column-name-of-table-2); -- Example ALTER TABLE Student ADD FOREIGN KEY (City) REFERENCES City(Cid); -- ADD MULTIPLE JOIN TO SAME TABLE */ $sql = "SELECT * FROM $tableName INNER JOIN state ON $tableName.edustate = state.state_id INNER JOIN class ON $tableName.educlass = class.class_id INNER JOIN book ON $tableName.edubook = book.book_id INNER JOIN artical ON $tableName.eduartical = artical.artical_id ORDER BY $columnid DESC LIMIT {$offset},{$limit}"; -- sample books tBLES FOR PRACTICE */ INSERT INTO book (book_n ) VALUE ("In Search of Lost Time by Marcel Proust" ), ("Ulysses by James Joyce" ), ("Don Quixote by Miguel de Cervantes" ), ("One Hundred Years of Solitude by Gabriel Garcia Marquez" ), ("The Great Gatsby by F. Scott Fitzgerald" ), ("Moby Dick by Herman Melville" ), ("War and Peace by Leo Tolstoy" ), ("Hamlet by William Shakespeare" ), ("The Odyssey by Homer" ), ("Madame Bovary by Gustave Flaubert" ); -- sample state */ INSERT INTO state (state_n ) VALUE ("Bihar" ), ("Chhattisgarh" ), ("Goa" ), ("Gujarat" ), ("Haryana" ), ("Himachal Pradesh" ), ("Jharkhand" ), ("Karnataka" ), ("Maharashtra" ), ("Mizoram" ); -- sample class */ INSERT INTO class (class_n ) VALUE ("first" ), ("second" ), ("third" ), ("fourth" ), ("fifth" ), ("sixth" ), ("seventh" ), ("eighth" ), ("ninth" ), ("tenth" ); -- sample artical */ INSERT INTO artical (artical_n ) VALUE ("Cinderella" ), ("Beauty and the Beast." ), ("Rapunzel" ), ("Snow White and the Seven Dwarfs." ), ("Little Red Riding Hood." ), ("Jack and the Beanstalk." ), ("Sleeping Beauty." ), ("Puss in Boots." ), ("Hansel and Gretel" ), ("Frog Prince" ); -- sample groupword */ INSERT INTO gword (gword_n, gword_Pid, gword_cid ) VALUE ("cat",1,2 ), ("dog",3,4 ), ("abb",3,5 ), ("add",4,4 ), ("app",2,2 ), ("bee",5,34 ), ("cab",22,43 ), ("ass",12,23 ), ("mic",22,52 ), ("boat",31,36 );
Home PREVIOUS STOP