0% found this document useful (0 votes)
56 views

Mysql All - Queries

This document contains SQL commands to create a database called viji_db, along with tables for departments, courses, staff, students, and marks. It then inserts sample data into the tables and performs various SELECT queries on the tables to retrieve and analyze the data. Stored procedures, functions, and other advanced SQL features are also demonstrated.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

Mysql All - Queries

This document contains SQL commands to create a database called viji_db, along with tables for departments, courses, staff, students, and marks. It then inserts sample data into the tables and performs various SELECT queries on the tables to retrieve and analyze the data. Stored procedures, functions, and other advanced SQL features are also demonstrated.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

create database if not exists viji_db;

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;

create table course(cid varchar(5),primary key(cid),cname varchar(20),dur varchar(2),did


varchar(5),foreign key fkcid(did)references department(did),fees numeric(5),strength numeric(3),major
varchar(20));
describe course;

create table staff(stid varchar(5),primary key(stid),sname varchar(20),adr varchar(20),qualify


varchar(20),did varchar(5),foreign key fkstid(did)references department(did),dob date);

describe staff;

create table student(sid varchar(5),primary key(sid),name varchar(20),dob date,adr varchar(20),cid


varchar(5),foreign key fksid(cid)references course(cid));
describe student;

create table marks(sid varchar(5),foreign key fksid(sid)references student(sid),m1 numeric(3),m2


numeric(3),m3 numeric(3),m4 numeric(3),m5 numeric(3),sem numeric(2),batch varchar(10));

insert into viji_db.department values('SS','Computer Application','First Floor','Mrs. Saraswathi',5);


insert into viji_db.department values('CS','Computer Science','Second Floor','Mr. Gunalan',3);
insert into viji_db.department values('BT','Bio Technology','First Floor','Mrs. Saralabai',3);
insert into viji_db.department values('MAT','Mathematics','Second Floor','Mrs. Girija',3);
select * from viji_db.department;

insert into viji_db.course values('SSC','Msc Software System',5,'SS',16700,27,'Software');


insert into viji_db.course values('CSS','Bsc Computer System',3,'CS',12000,27,'Computer Science');
insert into viji_db.course values('BTY','Bsc Bio Technology',3,'BT',10500,27,'Cell Biology');
insert into viji_db.course values('Mats','Bsc Maths',3,'Mat',15000,20,'Discrete Maths');
select * from viji_db.course;
insert into viji_db.staff values('0MSS1','Sumithra. R','21 Kumar St','MCA, MPhil','SS','1979-07-04');
insert into viji_db.staff values('0BSC1','Arul. P','19 Kamal St','MSc, B.Ed, MPhil','CS','1975-07-05');
insert into viji_db.staff values('0BIO1','Latha. S','11/12,Rainbow Colony','MSc, MPhil','BT','1974-04-07');
insert into viji_db.staff values('0Mat1','Vidhya Menon','13 Ravi St','MA, MPhil','Mat','1979-12-24');
select * from viji_db.staff;

describe viji_db.staff

insert into viji_db.student values('MSS27','Vijayalakshmi','1991-07-21','11/14, Thomas puram','SSC');


insert into viji_db.student values('Bsc15','Thilaga','1991-08-06','21, RTO Office','CSS');
insert into viji_db.student values('Bio21','Krishna','1991-06-12','15, Priya St,','Bty');
insert into viji_db.student values('Mat10','Yashoda','1991-06-07','14, Kala St','Mats');
select * from viji_db.student;

insert into viji_db.marks values('MSS27',68,88,76,70,50,1,6);


insert into viji_db.marks values('BSC15',75,74,80,88,55,1,3);
insert into viji_db.marks values('BIO21',70,71,85,81,40,2,5);
insert into viji_db.marks values('Mat10',71,84,70,65,48,3,4);
select * from viji_db.marks;

select * from department;


select dname'DEPARTMENT NAME' from department where ncourse=3;
select distinct ncourse from department where ncourse=3;
select dname,hod from department where did='BT' and ncourse=3;
select dname,hod from department where did='BT' and ncourse<>5;
select dname,hod from department where did='SS' and ncourse>4;
select dname,hod from department where locate='Second Floor' or ncourse>4;
select * from department order by hod desc limit 1,2;
select * from marks;
select * from marks where sem in (1,2);
select * from marks where m1 between 70 and 80 and sem=1;

select * from department where dname like 'C%';


select * from department where dname like '%n';
select * from department where dname like '%a%';
use viji_db;
select avg(m1) from marks where sem=1;

select sname from staff order by dob desc;


select greatest(1,2,3,4,5) as 'Greatest' from dual;
use viji_db;

describe categories;
describe members;
describe movierentals;
describe movies;
describe payments;

select * from members;

/*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
*/

SELECT * FROM movies WHERE title LIKE '%code%';


SELECT * FROM movies WHERE year_released LIKE '200_';
SELECT * FROM movies WHERE year_released NOT LIKE '200_';
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';

/*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|

select * from movies where vote=age(18);


select * from movies ;

/*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;

SELECT * FROM sample CROSS JOIN calc;

SELECT sample.name,sample.adr, calc.m1,calc.m2,calc.m3 FROM sample INNER JOIN calc WHERE


sample.`id` = calc.id;

SELECT sample.name,sample.adr, calc.m1,calc.m2,calc.m3 FROM sample LEFT JOIN calc ON sample.`id`


= calc.id;

SELECT sample.name,sample.adr, calc.m1,calc.m2,calc.m3 FROM sample RIGHT JOIN calc ON


sample.`id` = calc.id;

/* 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|

/*Flow Control Statements


1. IF
2. CASE
3. LEAVE
4. LOOP
5. WHILE
6. REPEAT
7. While*/

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;

create table number1 (id int);


DELIMITER |
CREATE PROCEDURE Looping (IN num INT)
BEGIN
DECLARE x INT;
SET x = 0;
loop_label:
LOOP
INSERT INTO number1 VALUES (x);
SET x = x + 1;
IF x >= num
THEN
LEAVE loop_label;
END IF;
END LOOP;
END |
CALL Looping(3);

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;

create table calc(cid int,primary key(cid),id int,foreign key fg_jk(id)references sample(id),m1


numeric(3),m2 numeric(3),m3 numeric(3),tot numeric(5),avg numeric(5),grade varchar(5));
use practice_db;
delete m1,m2,m3,tot,avg,grade from calc where id=1;
update calc set grade=grade(avg);
select * from calc;
create table sample(id int auto_increment,primary key(id),name varchar(20),m1 numeric(3),m2
numeric(3),m3 numeric(3),tot numeric(5),avg numeric(5),grade varchar(5));
describe sample;
insert into sample(name,m1,m2,m3) values('subi',0,10,10);
select * from sample;
alter table sample drop column grade;

select * from calc;

insert into calc(cid,id,m1,m2,m3) values(14,1,10,10,10);

/*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;

CREATE or replace VIEW second AS


SELECT m.id,m.name,m.adr,n.m1,n.m2,n.m3,n.tot FROM sample AS m
INNER JOIN
calc AS n ON m.id= n.id;

select * from second;


drop view if exists second;

/* 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;

CREATE INDEX `title_index1` ON `members_indexed`(`gender`);

SHOW INDEXES FROM `members_indexed`;


DROP INDEX ` title_index1` on `members_indexed`;
desc members_indexed;

/* Cursor
-> Read only
-> aSensitive and inSensitive
-> nonscroll*/

DELIMITER |
CREATE FUNCTION city_list() RETURNS VARCHAR(255)
BEGIN

DECLARE finished INTEGER DEFAULT 0;


DECLARE city_name VARCHAR(50) DEFAULT "";
DECLARE list VARCHAR(255) DEFAULT "";
DECLARE city_cur CURSOR FOR SELECT city FROM employee;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
OPEN city_cur;

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|

SELECT city_list() AS cities;

You might also like