Mysql All - Queries
Mysql All - Queries
use viji_db;
create table department(did varchar(5),primary key(did),dname varchar(20),locate varchar(20), hod
varchar(20),ncourse numeric(3));
describe department;
describe staff;
describe viji_db.staff
describe categories;
describe members;
describe movierentals;
describe movies;
describe payments;
/*order by*/
SELECT * FROM members ORDER BY date_of_birth DESC;
SELECT * FROM `members` ORDER BY `gender`;
/*Group By---Having */
SELECT `gender` FROM `members` GROUP BY `gender`;
SELECT `category_id`,`year_released` FROM `movies` GROUP BY `category_id`,`year_released`;
SELECT `gender`,COUNT(`membership_number`) FROM `members` GROUP BY `gender`;
SELECT * FROM `movies` GROUP BY `category_id`,`year_released` HAVING `category_id` = 8;
/*wildcardEntries
Type
1. Like
2. _underscore
3. Not Like
4. Escape Keyword
*/
/*REGEXP*/
SELECT * FROM `movies` WHERE `title` REGEXP 'code';
SELECT * FROM `movies` WHERE `title` REGEXP '^[abcd]';
SELECT * FROM `movies` WHERE `title` REGEXP '^[^abcd]';
SELECT * FROM movies WHERE title REGEXP 'li*';
SELECT * FROM `members` WHERE `postal_address` REGEXP '[A-Z]';
SELECT * FROM `members` WHERE `postal_address` REGEXP '[a-z]';
SELECT * FROM `members` WHERE `contact_number` REGEXP '[0-9]' ;
SELECT * FROM `movies` WHERE `title` REGEXP '^[cd]|^[u]';
SELECT * FROM `movies` WHERE `title` REGEXP '[[:<:]]for';
SELECT * FROM `movies` WHERE `title` REGEXP 'ack[[:>:]]';
/*functions*/
DELIMITER |
CREATE FUNCTION age(a int)
RETURNS varchar(10)
DETERMINISTIC
BEGIN
DECLARE s VARCHAR(10);
IF a>=18
THEN SET s='Eligible';
ELSE
SET s= 'NotEligi';
END IF;
RETURN s;
END|
/*Unions*/
SELECT `membership_number`,`full_names` FROM `members`
UNION All
SELECT `movie_id`,`title` FROM `movies`;
/*Joins
1. Self Join
2. Cross Join
3. Inner Join
4. Left Join
5. Right Join
*/
SELECT
a.cid, a.id, a.m1, a.m2, b.m3, b.tot, b.avg, b.grade
FROM calc a
INNER JOIN calc b
ON a.cid = b.cid;
/* Sub queries*/
SELECT name FROM sample WHERE id =( SELECT id from calc where cid=14 and m1=10);
/* Stored Procedure*/
delimiter |
create procedure sele()
begin
select * from sample;
end |
call sele();
drop procedure sele;
/*Local VAriable*/
DELIMITER |
CREATE PROCEDURE localvariable()
BEGIN /* declare local variables */
DECLARE a INT DEFAULT 10;
DECLARE b, c INT; /* using the local variables */
SET a = a + 100;
SET b = 2;
SET c = a + b;
SELECT a, b, c;
END|
call localvariable();
/*In VAriable*/
DELIMITER |
CREATE PROCEDURE variablein (IN var1 INT)
BEGIN
SELECT * FROM calc LIMIT var1;
END|
call variablein(2)
/*OUT VAriable*/
DELIMITER |
CREATE PROCEDURE outvariable (OUT t INT)
BEGIN
SELECT MAX(tot)into t FROM calc ;
END|
call outvariable(@p);
SELECT @p|;
/*INOUT VAriable*/
DELIMITER |
CREATE PROCEDURE inout_variable (INOUT count1 INT, IN mm int)
BEGIN
SELECT COUNT(m1) INTO count1 FROM calc WHERE m1 = mm;
END|
CALL inout_variable(@C,90)|
SELECT @C|
DELIMITER |
create PROCEDURE getname (INOUT sname varchar(16),IN idd int)
BEGIN
DECLARE uname varchar(16);
SELECT name INTO uname
FROM sample
WHERE id = idd;
IF idd = 1
THEN
SET sname = "Subi";
ELSEIF idd = 2
THEN
SET sname = "Viji";
ELSEIF idd = 3
THEN
SET sname = "Dinesh";
END IF;
END|
CALL getname(@A,2)|
SELECT @A|
DELIMITER |
CREATE PROCEDURE select_case(INOUT g varchar(20), IN avgg INT)
BEGIN
CASE
WHEN (avgg>=90) THEN (SELECT grade INTO g FROM calc where id=2);
WHEN (avgg>=50) THEN (SELECT grade INTO g FROM calc);
ELSE (SELECT grade INTO g FROM calc);
END CASE;
END|
CALL select_case(@C,90);
SELECT @C;
DELIMITER |
CREATE PROCEDURE repeater (IN n INT)
BEGIN
SET @sum = 0;
SET @x = 1;
REPEAT
IF mod(@x, 2) = 0
THEN
SET @sum = @sum + @x;
END IF;
SET @x = @x + 1;
UNTIL @x > n
END REPEAT;
END |
call repeater(5);
SELECT @sum;
DELIMITER |
CREATE PROCEDURE dowhileloop(IN n INT)
BEGIN
SET @sum = 0;
SET @x = 1;
WHILE @x<n
DO
IF mod(@x, 2) <> 0 THEN
SET @sum = @sum + @x;
END IF;
SET @x = @x + 1;
END WHILE;
END|
CALL dowhileloop(5);
SELECT @sum;
/*update calc set tot=(select (c.m1+c.m2+c.m3) from calc c inner join calc d on c.id=d.id)where id=1;*/
select * from calc where cid=all(cid);
DELIMITER |
CREATE FUNCTION tt(a int,b int,c int)
RETURNS int(5)
DETERMINISTIC
BEGIN
DECLARE s int(5);
Set s=a+b+c;
RETURN s;
END|
DELIMITER |
CREATE FUNCTION average(a int)
RETURNS int(5)
DETERMINISTIC
BEGIN
DECLARE s int(5);
Set s=a/3;
RETURN s;
END|
DELIMITER |
CREATE FUNCTION grade(g int)
RETURNS varchar(5)
DETERMINISTIC
BEGIN
DECLARE s VARCHAR(5);
IF g>=90
THEN SET s = 'A+';
ELSEIF g>=80
THEN SET s = 'B+';
ELSEIF g>=60
THEN SET s = 'C+';
ELSEIF g>=35
THEN SET s = 'D+';
ELSE
SET s = 'Fail';
END IF;
RETURN s;
END
DELIMITER |
CREATE FUNCTION alll(g int)
RETURNS varchar(5)
DETERMINISTIC
BEGIN
DECLARE t,ag int(5);
Set t=a+b+c;
Set ag=a/3;
IF ag>=90
THEN SET s = 'A+';
ELSEIF ag>=80
THEN SET s = 'B+';
ELSEIF ag>=60
THEN SET s = 'C+';
ELSEIF ag>=35
THEN SET s = 'D+';
ELSE
SET s = 'Fail';
END IF;
RETURN s;
END
update test1 set des=ce1((select salary from test2 where id=2)) where id=2;
select * from test1;
DELIMITER |
CREATE FUNCTION ce1(s int)
RETURNS varchar(50)
DETERMINISTIC
BEGIN
DECLARE ag varchar(50);
IF s>=1000 and s<=1999
THEN SET ag = 'Trainee';
ELSEIF s>=2000 and s<=2999
THEN SET ag = 'Team Lead';
ELSEIF s>=3000 and s<=3999
THEN SET ag = 'Project Lead';
ELSEIF s>=4000
THEN SET ag = 'Team Coordinate';
ELSE
SET ag = 'Nil';
END IF;
RETURN ag;
END
/*Views*/
use calc;
create view first as select * from calc;
select * from first;
/* Index
a. While creating table
b. After creating table
*/
CREATE TABLE `members_indexed` (
`membership_number` int(11) NOT NULL AUTO_INCREMENT,
`full_names` varchar(150) DEFAULT NULL,
`gender` varchar(6) DEFAULT NULL,
`date_of_birth` date DEFAULT NULL,
`physical_address` varchar(255) DEFAULT NULL,
`postal_address` varchar(255) DEFAULT NULL,
`contact_number` varchar(75) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`membership_number`),INDEX(full_names)
) ENGINE=InnoDB;
/* Cursor
-> Read only
-> aSensitive and inSensitive
-> nonscroll*/
DELIMITER |
CREATE FUNCTION city_list() RETURNS VARCHAR(255)
BEGIN
get_city: LOOP
FETCH city_cur INTO city_name;
IF finished THEN
LEAVE get_city;
END IF;
SET list = CONCAT(list,", ",city_name);
END LOOP get_city;
CLOSE city_cur;
RETURN SUBSTR(list,3);
END|