<!...............MySQL Introduction...........................!
>
MYSQL is a database management system. A database is a collection of data stored in a format that can
easily be accessed.
to fill the form and submit the form data in a server or database.
DBMS software:
Oracle, MySQL, MS SQL server, PostgreSQL, MongoDB
types of database:
[Link] Database
whole data is save in a separate [Link] use SQL(structured query language)
[Link] Database
NOSQL is not a a Table-based [Link] is a document [Link] example MongoDB, Redis, Cassandra
etc.
Advantages of MYSQL:
MYSQL is a cross platform. means code is done on any OS.
it is used with multiple popular languages (PHP, NodeJS, Python, C#).
MySQL software is a open source. (not payed monthly or yearly)
MYSQL is RDBMS
MYSQL database server is fast, reliable , scalable and easy to use. Mysql server works in client/server or
embeded systems.
Popular Websites using MYSQL
Facebook, Twitter, Goggle, Wikipedia, Youtube, Flicker, Pinterest
Content Management System using MySQL
Wordpress, Joomla, Drupal, Magento, phpBB, TYPO3, MODx
What we will learn in this Course:??
Create Database and Tables in database
Add Data in database.
Update data in database.
Read data and delete data from database by SQL Commandas.
<!...............MySQL Installation...........................!>
install any software:
XAMPP,WAMP,MAMP.
OR
MySQL server community server
MYSQL Server workbench
creat Database databasName;
creat Database test;
<!...............MySQL Create Table...........................!>
CREATE TABLE tablename(
column1 datatype ,
column2 datatype ,
column3 datatype ,
column4 datatype
);
Datatypes in MYSQL
3 types of Category in Database
[Link]
[Link]
[Link] and Time
[Link]
[Link](size) length(0 to 255)
[Link](size) length(0 to 65535)
[Link](size) yes or no.
[Link](size) yes or no.
[Link] length(255 characters)
[Link](sixe) 65535 bytes
[Link] length(16,777,215 characters)
[Link] length(4,294,967,295 characters)
[Link](size) 255 bytes
[Link](size) 65,535 bytes
[Link](size) 16,777,215 bytes
[Link](size) 4,294,967,295 bytes
[Link](val1,val2,val3,...) gives color list upto 65535 values
[Link](val1,val2,val3,...) list upto 64 values
[Link]
[Link](size) length(1 to 64)
[Link] (size) length(-128 to 127)
[Link](size) length(-2147483648 to 2147483648)
[Link](size)
[Link](size) length(-32768 to 32767)
[Link](size) length(-8388608 to 8388608)
[Link](size)
[Link]
[Link] 0/1
10. FLOAT(p)
[Link](size,d) 255.568
[Link](size,d) size=60,d=30
[Link](size,d)
[Link] and Time
1-DATE FORMAT: '1000-01-01' to '9999-12-31'
1-DATETIME(fsp) FORMAT: YYYY-MM-DD hh:mm:ss
[Link](fsp) FORMAT: YYYY-MM-DD hh:mm:ss
[Link](fsp) FORMAT: hh:mm:ss
5. YEAR FORMAT: four digit format: 1901
Use database-name;
use test;
CREATE TABLE personal (
id INT ,
name VARCHAR(50) ,
birth_date DATE,
phone VARCHAR(15),
gender VARCHAR(1)
);
CREATE TABLE product(
pid INT ,
pname VARCHAR(50) ,
pcompany VARCHAR(50),
price INT
);
//show data
SELECT * FROM [Link];
<!...............MySQL Insert...........................!>
Create Table
CREATE TABLE personal (
id INT ,
name VARCHAR(50) ,
birth_date DATE,
phone VARCHAR(15),
gender VARCHAR(1)
);
Insert Data in personal table
INSERT INTO tablename (column1,column2,....)
VALUES ( value1, value2,....);
INSERT INTO personal ( id, name, birth_date, phone, gender)
VALUES ( 1,"Abdullah", "1990-07-15", "9977664422", "M" );
INSERT INTO personal ( id, name, birth_date, phone, gender)
VALUES ( 2,"Meera Khan", "1991-02-10", "9988552211", "F" );
INSERT INTO personal ( id, name, birth_date, phone, gender)
VALUES ( 1,"Anil Kapoor", "1993-10-05", "9484542414", "M" );
SQL
<!...............Insert Multiple Data in perosnal table...........................!>
Create Table
CREATE TABLE personal (
id INT ,
name VARCHAR(50) ,
birth_date DATE,
phone VARCHAR(15),
gender VARCHAR(1)
);
Insert Multiple Data in perosnal table
INSERT INTO personal ( id, name, birth_date, phone, gender)
VALUES
( 3,"Anil Kapoor", "1993-10-05", "9484542414", "M" ),
( 4,"Juhi Chawla", "1992-03-15", "9477884421", "F" ),
( 5,"John Abraham", "1992-02-07", "947584421", "M" );
<!...............MySQL Constraints...........................!>
CONSTRAINTS means restrictions on column.
List of Constraint in MYSQL
[Link] NULL (column entry is not null)
[Link] (remove duplicasy)
[Link] (default 'Agra')
[Link] (age>=18)
[Link] KEY
[Link] KEY
Create Table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
Test NOT NULL by skip gender column value
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(2,"Sarita","18","4015155","Agra");
Test DEFAULT value by skip city column value
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(3,"Salman Khan","20","M","4012155");
Test UNIQUE value by add same phone number
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(4,"Juhi Chawla","21","F","4016155");
Test constraints on AGE
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(5,"John","17","F","4017755");
<!...............MySQL SELECT & WHERE...........................!>
Create Table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
Insert Records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi");
SQL
Select Query Examples
SELECT * FROM personal;
SELECT id,name,phone FROM personal;
SELECT id AS Id,name AS Student,phone AS Phone FROM personal;
SELECT id AS Id,name AS "Student Name",phone AS Phone FROM personal;
SQL
Select with Where
SELECT * FROM personal WHERE gender = "F";
SELECT * FROM personal WHERE age<20;
SELECT * FROM personal WHERE city != "Agra";
SELECT * FROM personal WHERE city = "Agra";
SELECT id, name FROM personal WHERE city < > "Agra";
Comparison Operator Description
= Equal
<=> Equal (Safe to compare NULL values)
<> Not Equal
!= Not Equal
> Greater Than
>= Greater Than or Equal
< Less Than
<= Less Than or Equal
IN ( ) Matches a value in a list
NOT Negates a condition
BETWEEN Within a range (inclusive)
IS NULL NULL value
IS NOT NULL Non-NULL value
LIKE Pattern matching with % and _
EXISTS Condition is met if subquery returns at least one row
<!...............MySQL AND, OR, NOT...........................!>
Create Table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
Insert Records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi");
SQL
AND, OR, NOT
SELECT * FROM personal WHERE age >= 18 AND age <= 21;
SELECT * FROM personal WHERE age <= 20 AND gender = "M";
SELECT * FROM personal WHERE age <= 20 OR city = "Agra";
SELECT * FROM personal WHERE (city = "Bhopal" OR city = "Agra") AND gender = "M";
SELECT * FROM personal WHERE NOT (city = "Bhopal" OR city = "Agra");
SELECT * FROM personal WHERE NOT age >= 20;
<!...............MySQL IN & NOT IN...........................!>
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
Insert Records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi");
Scheme
IN & NOT IN
SELECT * FROM personal WHERE age IN(18,21);
SELECT * FROM personal WHERE age IN(18,21,19);
SELECT * FROM personal WHERE age NOT IN(18,21,19);
SELECT * FROM personal WHERE city IN("Delhi","Bhopal");
SELECT * FROM personal WHERE city NOT IN("Delhi","Bhopal");
SELECT * FROM personal WHERE id IN(1,3,4);
<!...............MySQL BETWEEN & NOT BETWEEN...........................!>
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
insert records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi");
SQL
BETWEEN & NOT BETWEEN
SELECT * FROM personal WHERE age BETWEEN 18 AND 20;
SELECT * FROM personal WHERE age NOT BETWEEN 18 AND 20;
SELECT * FROM personal WHERE id BETWEEN 2 AND 5;
SELECT * FROM personal WHERE id NOT BETWEEN 2 AND 5;
SELECT * FROM personal WHERE name BETWEEN "a" AND "k";
SELECT * FROM personal WHERE name BETWEEN "anil" AND "kamal";
SELECT * FROM personal WHERE date BETWEEN "a" AND "k";
SQL
Create new database "test" for use BETWEEN with date EXAMPLE
Create table "persons" under "test" database
CREATE TABLE persons(
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
birth_date DATE NOT NULL
);
SQL
insert records in "persons" table
INSERT INTO persons(id,name,birth_date)
VALUES
(1,"Ram","1995-02-10"),
(2,"Madan","1995-11-03"),
(3,"Salman","1996-06-12"),
(4,"Shoiab","1995-04-21"),
(5,"juhi","1996-09-25");
SQL
BETWEEN & NOT BETWEEN with date
SELECT * FROM persons WHERE birth_date BETWEEN "1995-01-01" AND "1995-06-30";
<!...............MySQL LIKE Operator & Wildcards...........................!>
where Name LIKE "s%" ; means start with s and % means unlimited character after s.
% Percentage sign: Represents zero, one, or multiple characters.
_ underscore: Represents a single character
Pattern Description
LIKE 'a%' start with "a"
LIKE '%a' End with "a"
LIKE '%am%' Have "am" in any position
LIKE 'a%m' start with "a" and Ends with "m"
LIKE '_a%' "a" in the second position
LIKE '__a%' "a" in the third position
LIKE '_oy' "o" in the second and "y" in the third position
Select with like operator syntax
select column1, column2, column3,
from table_name
where column_name LIKE pattern;
Select with Not like operator syntax
select column1, column2, column3,
from table_name
where column_name NOT LIKE pattern;
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
insert records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi");
SQL
LIKE Operator & Wildcards
SELECT * FROM personal WHERE name LIKE "s%";
SELECT * FROM personal WHERE name LIKE "a%";
SELECT * FROM personal WHERE name LIKE "ram%";
SELECT * FROM personal WHERE name LIKE "rm%";
SELECT * FROM personal WHERE name LIKE "%am%";
SELECT * FROM personal WHERE name LIKE "r%" OR name LIKE "s%";
SELECT * FROM personal WHERE name NOT LIKE "r%";
SELECT * FROM personal WHERE BINARY name LIKE "r%";
Binary means start with exacltly small letter 'r', means check case sensitive;
SELECT * FROM personal WHERE name LIKE "%r";
SELECT * FROM personal WHERE name LIKE "%ar";
SELECT * FROM personal WHERE phone LIKE "%21";
SELECT * FROM personal WHERE name NOT LIKE "%21";
SELECT * FROM personal WHERE name LIKE "s%n";
SELECT * FROM personal WHERE name LIKE "r%r";
SELECT * FROM personal WHERE name LIKE "_am%";
SELECT * FROM personal WHERE name LIKE "__m%";
SELECT * FROM personal WHERE name LIKE "__l%";
SELECT * FROM personal WHERE name LIKE "r_m%";
SQL
<!...............MySQL Regular Expression...........................!>
Sign Pattern Description
^ '^ra' Beginning of string
$ 'an$' End of string
[...] '[rms]' any character listed between
the square brackets
[a-z] '[a-h]e' Match with in the range
p1|p2|p3 'tom|dick|harry' matches any of the patterns p1,p2 or p3
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
insert records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi");
SQL
Regular Expression
SELECT * FROM personal WHERE name REGEXP 'ra';
SELECT * FROM personal WHERE name REGEXP 'ta';
SELECT * FROM personal WHERE name REGEXP 'man';
SELECT * FROM personal WHERE name REGEXP '^ra';
SELECT * FROM personal WHERE name REGEXP '^sa';
SELECT * FROM personal WHERE name REGEXP 'an$';
SELECT * FROM personal WHERE name REGEXP 'ram|kapoor|khan';
SELECT * FROM personal WHERE name REGEXP 'ram|poor|khan';
SELECT * FROM personal WHERE name REGEXP '^ram|poor|^khan';
SELECT * FROM personal WHERE name REGEXP '^ram|poor|khan$';
SELECT * FROM personal WHERE name REGEXP '[is]';
SELECT * FROM personal WHERE name REGEXP '[rm]';
SELECT * FROM personal WHERE name REGEXP '[rm]a';
SELECT * FROM personal WHERE name REGEXP '[rmh]a';
SELECT * FROM personal WHERE name REGEXP '^[rs]';
SELECT * FROM personal WHERE name REGEXP '[rs]$';
SELECT * FROM personal WHERE name REGEXP '[ra]$';
SELECT * FROM personal WHERE name REGEXP 'r[am]';
SELECT * FROM personal WHERE name REGEXP '[a-j]r';
<!...............MySQL ORDER BY & DISTINCT...........................!>
Ascending or descending Order (ASC or DESC)
Default order is Asecending
Select with Order By syntax
select column1, column2, column3,
from table_name
ORDER BY column1,column2,.... ASC | DESC;
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
insert records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi");
SQL
ORDER BY
SELECT * FROM personal ORDER BY name;
SELECT * FROM personal ORDER BY name DESC;
SELECT * FROM personal WHERE city = "Agra" ORDER BY name DESC;
SELECT * FROM personal WHERE city = "Agra" ORDER BY name;
SELECT * FROM personal ORDER BY age;
SELECT * FROM personal ORDER BY city;
SELECT * FROM personal ORDER BY name,city;
SQL
DISTINCT
Distinct means remove duplicasy or gives unique value and gives only mentioned column.
Syntax:select DISTINCT column1, column2,.. from table_name;
SELECT DISTINCT city FROM personal;
SELECT DISTINCT age FROM personal;
SELECT DISTINCT age FROM personal ORDER BY age;
<!...............MySQL IS NULL & IS NOT NULL...........................!>
Syntax: select column1,column2, column3 FROM table_name WHERE column IS NULL;
select column1,column2, column3 FROM table_name WHERE column IS NOT NULL;
Create table
CREATE TABLE persons(
id INT NOT NULL UNIQUE,
name VARCHAR(50),
birth_date DATE
);
SQL
nsert records
INSERT INTO persons(id,name,birth_date)
VALUES
(1,"Ram","1995-02-10"),
(2,"Madan","1995-11-03"),
(3,"Salman","1996-06-12"),
(4,"Shoiab","1995-04-21"),
(5,"juhi","1996-09-25"),
(6,"Raman",NULL),
(7,NULL,"1996-08-10");
SQL
IS NULL & NOT NULL
SELECT * FROM persons WHERE Age IS NULL;
SELECT * FROM persons WHERE birth_date IS NULL;
SELECT * FROM persons WHERE name IS NULL;
SELECT * FROM persons WHERE name IS NOT NULL;
<!...............MySQL LIMIT & OFFSET...........................!>
select * from table_name
where condition
LIMIT number;
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name 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'
);
SQL
insert records
INSERT INTO personal(id,name,age,gender,phone,city)
VALUES
(1,"Ram Kumar","13","M","4022155","Agra"),
(2,"Sarita Kumari","21","F","4034421","Delhi"),
(3,"Salman Khan","20","M","4056221","Agra"),
(4,"Juhi Chawla","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","22","M","4025221","Agra"),
(6,"John Abraham","21","M","4056776","Delhi"),
(7,"Shahid Kapoor","20","M","4022784","Agra");
SQL
Limit
SELECT * FROM personal LIMIT 2;
SELECT * FROM personal LIMIT 3;
SELECT * FROM personal WHERE city = "Agra" LIMIT 3;
SELECT * FROM personal
WHERE city = "Agra"
ORDER BY name
LIMIT 3;
Offset
SELECT * FROM personal LIMIT offset, limit number;
offset means start after 3. means pehly 3 record skip kr dy ga.
SELECT * FROM personal LIMIT 3, 3;
SELECT * FROM personal LIMIT 6, 3;
SELECT * FROM personal LIMIT 0, 3;
<!...............MySQL Count, Sum, Min, Max, Avg...........................!>
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
percentage INT 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'
);
SQL
insert records
INSERT INTO personal(id,name,percentage,age,gender,phone,city)
VALUES
(1,"Ram Kumar","45","13","M","4022155","Agra"),
(2,"Sarita Kumari","56","21","F","4034421","Delhi"),
(3,"Salman Khan","62","20","M","4056221","Agra"),
(4,"Juhi Chawla","47","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","74","22","M","4025221","Agra"),
(6,"John Abraham","64","21","M","4056776","Delhi"),
(7,"Shahid Kapoor","52","20","M","4022784","Agra");
SQL
COUNT
SELECT COUNT(name) FROM personal;
SELECT COUNT(*) FROM personal;
SELECT COUNT(DISTINCT city) FROM personal;
SELECT COUNT(DISTINCT city) AS Count FROM personal;
SQL
MAX
SELECT MAX(percentage) AS Percentage FROM personal;
SQL
MIN
SELECT MIN(percentage) AS Percentage FROM personal;
SELECT MIN(percentage) AS Percentage,name,city FROM personal;
SQL
SUM
SELECT SUM(percentage) AS Total FROM personal;
SQL
AVG
SELECT AVG(percentage) AS Average FROM personal;
<!...............MySQL UPDATE...........................!>
syntax: UPDATE table_name
SET column1_name=value1, column2_name=value2
WHERE condition;
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
percentage INT 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'
);
SQL
insert records
INSERT INTO personal(id,name,percentage,age,gender,phone,city)
VALUES
(1,"Ram Kumar","45","13","M","4022155","Agra"),
(2,"Sarita Kumari","56","21","F","4034421","Delhi"),
(3,"Salman Khan","62","20","M","4056221","Agra"),
(4,"Juhi Chawla","47","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","74","22","M","4025221","Agra"),
(6,"John Abraham","64","21","M","4056776","Delhi"),
(7,"Shahid Kapoor","52","20","M","4022784","Agra");
SQL
UPDATE
UPDATE personal SET phone = "4055555" WHERE id = 1;
UPDATE personal SET percentage = 66 WHERE id = 2;
UPDATE personal SET age = 18 WHERE id IN (2,3);
UPDATE personal SET age = 19;
<!...............MySQL COMMIT & ROLLBACK...........................!>
rollback work with only three commands Insert,Update,Delete.
roll back return to his original form when the data is updated.
rollback not work when commit is not working.
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
percentage INT 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'
);
SQL
insert records
INSERT INTO personal(id,name,percentage,age,gender,phone,city)
VALUES
(1,"Ram Kumar","45","13","M","4022155","Agra"),
(2,"Sarita Kumari","56","21","F","4034421","Delhi"),
(3,"Salman Khan","62","20","M","4056221","Agra"),
(4,"Juhi Chawla","47","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","74","22","M","4025221","Agra"),
(6,"John Abraham","64","21","M","4056776","Delhi"),
(7,"Shahid Kapoor","52","20","M","4022784","Agra");
SQL
COMMIT & ROLLBACK
SELECT * FROM personal;
COMMIT;
UPDATE personal SET percentage = 60 WHERE id = 2;
ROLLBACK;
SQL
SELECT * FROM personal;
COMMIT; when commit command runs then no roll-back apply.
UPDATE personal SET age = 20 WHERE id = 4;
UPDATE personal SET percentage = 60 WHERE id = 2;
ROLLBACK;
SQL
SELECT * FROM personal;
UPDATE personal SET age = 20 WHERE id = 4;
COMMIT;
UPDATE personal SET percentage = 60 WHERE id = 2;
ROLLBACK;
<!...............MySQL DELETE...........................!>
Syntax: DELETE FROM table_name
WHERE condition;
DELETE FROM table_name;
create table
CREATE TABLE personal(
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
percentage INT 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'
);
SQL
insert records
INSERT INTO personal(id,name,percentage,age,gender,phone,city)
VALUES
(1,"Ram Kumar","45","13","M","4022155","Agra"),
(2,"Sarita Kumari","56","21","F","4034421","Delhi"),
(3,"Salman Khan","62","20","M","4056221","Agra"),
(4,"Juhi Chawla","47","18","F","4022155","Bhopal"),
(5,"Anil Kapoor","74","22","M","4025221","Agra"),
(6,"John Abraham","64","21","M","4056776","Delhi"),
(7,"Shahid Kapoor","52","20","M","4022784","Agra");
SQL
DELETE
//COMMIT;
DELETE FROM personal WHERE id = 4;
DELETE FROM personal WHERE gender = 'F';
DELETE FROM personal WHERE age > 20;
DELETE FROM personal;
//ROLLBACK;
<!...............MySQL PRIMARY KEY & FOREIGN KEY...........................!>
List of Constraints in MYSQL
Not Null
Unique
Default
Check
Primary Key:Primary key always has unique [Link] between Uniqe key and primary
key is unique key can store null value but
primay key cannot store null value.a table can contain only one primary key constraints.
But we can use unique key with every column.
When creat new table then set primary key
Syntax: Creat table table_name(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
city VARCHAR(10) NOT NULL,
PRIMARY KEY(id)
);
set primary key to existing table with ALTER command.
ALTER TABLE table_name
ADD PRIMARY KEY (id);
Foreign Key:
a foreign key is a key used to link two tables together.
a foreign key in one table used to point PRIMARY Key in another table.
Syntax: Creat table table_name(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
city VARCHAR(10) NOT NULL,
PRIMARY KEY(id),
FOREIGN KEY (city) REFERENCES City (cid)
);
set Foreign key to existing table with ALTER command.
ALTER TABLE table_name
ADD FOREIGN KEY(city) REFERENCES City(cid);
create table "city"
CREATE TABLE city(
cid INT NOT NULL AUTO_INCREMENT,
cityname VARCHAR(50) NOT NULL,
PRIMARY KEY (cid)
);
SQL
insert records in "city" table
INSERT INTO city(cityname)
VALUES('Agra'),
('Delhi'),
('Bhopal'),
('Jaipur'),
('Noida');
SQL
create table "personal" and insert records
CREATE TABLE personal(
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,
PRIMARY KEY (id),
FOREIGN KEY (city) REFERENCES City (cid)
);
INSERT INTO personal(id,name,percentage,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);
<!...............MySQL INNER JOIN...........................!>
Types of JOINS in MYSQL
[Link] JOIN :INNER JOIN work between two tables. The inner join selects records that
have matching values in both tables.
[Link] JOIN
[Link] JOIN
[Link] JOIN
Syntax of Inner Join:
SELECT columns(*)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
create table "personal" and insert records
CREATE TABLE personal(
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,
PRIMARY KEY (id),
FOREIGN KEY (city) REFERENCES City (cid)
);
INSERT INTO personal(id,name,percentage,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);
SQL
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');
SQL
INNER JOIN
SELECT * FROM personal INNER JOIN city
ON [Link] = [Link];
Creat Alias of table_name:
SELECT * FROM personal p INNER JOIN city c
ON [Link] = [Link];
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p INNER JOIN city c
ON [Link] = [Link];
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p INNER JOIN city c
ON [Link] = [Link]
WHERE [Link] = "Agra";
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p INNER JOIN city c
ON [Link] = [Link]
WHERE [Link] = "Agra"
ORDER BY [Link];
Join and Inner Join has same Meaning:
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p JOIN city c
ON [Link] = [Link]
WHERE [Link] = "Agra"
ORDER BY [Link];
<!...............MySQL LEFT JOIN & RIGHT JOIN...........................!>
[Link] JOIN :The LEFT JOIN returns all records from the left table(table1),
and the matched records from the right table (table2).
Syntax: SELECT columns
FROM table1(left table)
LEFT JOIN table2(Right table)
ON table1.column_name=table2.column_name;
[Link] JOIN :The RIGHT JOIN returns all records from the right table(table2),
and the matched records from the left table (table1).
Means show whole record of right table and show matched data from left table;
Syntax: SELECT columns
FROM table1(left table)
RIGHT JOIN table2(Right table)
ON table1.column_name=table2.column_name;
create table "personal" and insert records
CREATE TABLE personal(
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,
PRIMARY KEY (id),
FOREIGN KEY (city) REFERENCES City (cid)
);
INSERT INTO personal(id,name,percentage,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);
SQL
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');
SQL
LEFT JOIN
SELECT * FROM personal LEFT JOIN city
ON [Link] = [Link];
SELECT * FROM personal INNER JOIN city
ON [Link] = [Link];
SELECT * FROM personal p LEFT JOIN city c
ON [Link] = [Link];
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p LEFT JOIN city c
ON [Link] = [Link];
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p LEFT JOIN city c
ON [Link] = [Link]
WHERE gender = "M";
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p LEFT JOIN city c
ON [Link] = [Link]
WHERE gender = "M"
ORDER BY name;
SQL
RIGHT JOIN: Gives matched and unmatched data.
SELECT * FROM personal RIGHT JOIN city
ON [Link] = [Link];
SELECT * FROM personal p RIGHT JOIN city c
ON [Link] = [Link];
SELECT [Link],[Link],[Link],[Link],[Link],[Link]
FROM personal p RIGHT JOIN city c
ON [Link] = [Link];
<!...............MySQL CROSS JOIN...........................!>
cross join is the technique to join every record of first table with record of second table.
Means if table1 has 4 rows data and table2 has 3 row of [Link] cross joint of
both tables contains 12 rows of data. 4x3=12
has be
Syntax: SELECT *
FROM table1 CROSS JOIN table2;
create table "personal" and insert records
CREATE TABLE personal(
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,
PRIMARY KEY (id),
FOREIGN KEY (city) REFERENCES City (cid)
);
INSERT INTO personal(id,name,percentage,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);
SQL
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');
SQL
CROSS JOIN
SELECT *
FROM personal CROSS JOIN city;
SELECT [Link],[Link],[Link]
FROM personal p CROSS JOIN city c;
SELECT [Link],[Link] AS Name,[Link] AS City
FROM personal p CROSS JOIN city c;
SELECT [Link],[Link] AS Name,[Link] AS City
FROM personal p , city c;
<!...............MySQL JOIN MULTIPLE TABLES...........................!>
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name
INNER JOIN table3
ON table1.column_name=table3.column_name;
create table "personal" and insert records
CREATE TABLE personal(
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 personal(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);
SQL
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');
SQL
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');
SQL
Join Multiple Tables
SELECT * FROM personal p INNER JOIN city c
ON [Link] = [Link];
SELECT * FROM personal p INNER JOIN city c
ON [Link] = [Link]
INNER JOIN courses cr
ON [Link] = cr.course_id;
SELECT [Link],[Link],[Link],[Link],[Link],[Link],cr.course_name
FROM personal p INNER JOIN city c
ON [Link] = [Link]
INNER JOIN courses cr
ON [Link] = cr.course_id;
SELECT [Link],[Link],[Link],[Link],[Link],[Link],cr.course_name
FROM personal p INNER JOIN city c
ON [Link] = [Link]
INNER JOIN courses cr
ON [Link] = cr.course_id
WHERE [Link] = "Agra";
<!...............MySQL GROUP BY & HAVING...........................!>
The GROUP BY clause is used in conjunction with the SELECT statement and
Aggrgate functions(sum,min,max etc)
to group rows together by common column values.
Syntax –
SELECT column1,column2,columnn
FROM table_name
where condition
GROUP BY column_name(s);
For multiople tables:
Syntax –
SELECT column1,column2,columnn
FROM table1 INNER JOIN table2
ON table1.column_name=table2.column_name
where condition
GROUP BY column_name(s);
Having Clause is just the aggregate function used with the GROUP BY clause.
The HAVING clause is used instead of WHERE with aggregate functions.
While the GROUP BY Clause groups rows that have the same values into summary rows.
The having clause is used with the where clause in order to find rows with certain conditions.
The having clause is always used after the group By clause.
Syntax –
SELECT column1,column2,columnn
FROM table_name
GROUP BY column_name
HAVING aggregate_function(column_name) condition;
Example Query:
Consider the food database:
Select food items with cost greater than 200
SELECT food_item
from food
GROUP BY(food_item)
HAVING SUM(cost) > 200;
Result:
Item : cakes
Item : chocoss
Item : fry
Item : milk
create table "personal" and insert records
CREATE TABLE personal(
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 personal(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);
SQL
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');
SQL
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');
SQL
GROUP BY
SELECT city,COUNT(city)
FROM personal
GROUP BY city;
SELECT [Link],COUNT([Link])
FROM personal p INNER JOIN city c
ON [Link] = [Link]
GROUP BY city;
SELECT [Link],COUNT([Link]) AS Total
FROM personal p INNER JOIN city c
ON [Link] = [Link]
GROUP BY city;
SELECT [Link],COUNT([Link]) AS Total
FROM personal p INNER JOIN city c
ON [Link] = [Link]
WHERE [Link] >= 20
GROUP BY city;
SELECT [Link],COUNT([Link]) AS Total
FROM personal p INNER JOIN city c
ON [Link] = [Link]
GROUP BY city
ORDER BY COUNT([Link]);
SELECT [Link],COUNT([Link]) AS Total
FROM personal p INNER JOIN city c
ON [Link] = [Link]
GROUP BY city
ORDER BY COUNT([Link]) DESC;
SQL
HAVING
SELECT [Link],COUNT([Link]) AS Total
FROM personal p INNER JOIN city c
ON [Link] = [Link]
GROUP BY city
HAVING COUNT([Link]) > 3
ORDER BY COUNT([Link]) DESC;
<!...............MySQL SubQuery With EXISTS & NOT EXISTS...........................!>
syntax; select columns
from table1
where
columns=(select columns from table2 where condition);
create table "personal" and insert records
CREATE TABLE personal(
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 personal(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);
SQL
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');
SQL
use SubQuery
SELECT name FROM personal
WHERE courses = (SELECT course_id FROM courses WHERE course_name = "MBA");
SELECT course_id FROM courses WHERE course_name = "MBA";
'IN operator matches multiple values';
SELECT name FROM personal
WHERE courses IN (SELECT course_id FROM courses WHERE course_name IN ("MBA","Btech"));
SQL
Syntax of Exists & Not Exists:
select columns
from table1
where
EXISTS(selct columns from table2 where condition);
*Exists(selct columns from table2 where condition)->if any single record exists
then Parent command show results.
*Not Exists(selct columns from table2 where condition)->if not any single record exists
then Parent command show results.
Exists & Not Exists
SELECT name FROM personal
WHERE EXISTS (SELECT course_id FROM courses WHERE course_name IN ("MBA"));
SELECT name FROM personal
WHERE EXISTS (SELECT course_id FROM courses WHERE course_name IN ("Mtech"));
SELECT name FROM personal
WHERE NOT EXISTS (SELECT course_id FROM courses WHERE course_name IN ("Mtech"));
SELECT name FROM personal
WHERE NOT EXISTS (SELECT course_id FROM courses WHERE course_name IN ("MBA"));
<!...............MySQL UNION & UNION ALL...........................!>
Syntax:select column1, column2 from table1
UNION/UNION ALL
select column1, column2 from table2;
Rules:Each SELECT statement within UNION must have the same number of columns
[Link] columns must also have similar data types.
[Link] columns in each select statement must also be in the same order.
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);
SQL
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');
SQL
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');
SQL
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);
SQL
UNION & UNION ALL
SELECT * FROM students
UNION
SELECT * FROM lecturers;
SELECT name FROM students
UNION
SELECT name FROM lecturers;
*Union All show duplicate Entry;
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 [Link],[Link], [Link]
FROM students s
INNER JOIN city c
ON [Link] = [Link]
WHERE [Link] = "Delhi"
UNION ALL
SELECT [Link],[Link],[Link]
FROM lecturers l
INNER JOIN city ci ON [Link] = [Link]
WHERE [Link] = "Delhi";
<!...............MySQL IF & CASE Statement..........................!>
Syntax of IF: select column1,column2
if(condition,TRUE Result, FALSE Result) AS alias_name
FROM table_name;
Syntax of Case Clause:
select column1,column2
CASE
WHEN Condition1 THEN result1
WHEN Condition2 THEN result2
WHEN Condition3 THEN result3
ELSE result alias_name
END AS alias_name
FROM table_name;
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);
SQL
IF Clause
SELECT id,name,percentage,
IF(percentage >= 33,"Pass","Fail") AS Result
FROM students;
SQL
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 %" //wrong entry
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);
<!...............MySQL Arithmetic Functions...........................!>
LIST of Arithmetic Function in MYSQL :
*PI() *SIN()
*ROUND() *COS()
*CEIL() *TAN()
*FLOOR() *ASIN()
*POW() *ACOS()
*SQRT() *ATAN()
*RAND(random number between o and 1) *ATAN2()
*ABS() :(-6.2,6.2)ROMOVE NEGATIVE VALUE: GIVES 6.2 *COT()
*SIGN(NUMBER) *RADIANS()
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);
SQL
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);
<!...............MySQL String Function...........................!>
Function Description
ASCII Returns the ASCII value for the specific character
CHAR_LENGTH Returns the length of a string (in characters)
CHARACTER_LENGTH Returns the length of a string (in characters)
CONCAT Adds two or more expressions together
CONCAT_WS Adds two or more expressions together with a separator
FIELD Returns the index position of a value in a list of values
FIND_IN_SET Returns the position of a string within a list of strings
FORMAT Formats a number to a format like "#,###,###.##", rounded to a
specified number of decimal places
INSERT Inserts a string within a string at the specified position and for a certain
number of characters
INSTR Returns the position of the first occurrence of a string in another string
LCASE Converts a string to lower-case
LEFT Extracts a number of characters from a string (starting from left)
LENGTH Returns the length of a string (in bytes)
LOCATE Returns the position of the first occurrence of a substring in a string
LOWER Converts a string to lower-case
LPAD Left-pads a string with another string, to a certain length
LTRIM Removes leading spaces from a string
MID Extracts a substring from a string (starting at any position)
POSITION Returns the position of the first occurrence of a substring in a string
REPEAT Repeats a string as many times as specified
REPLACE Replaces all occurrences of a substring within a string, with a
new substring
REVERSE Reverses a string and returns the result
RIGHT Extracts a number of characters from a string (starting from right)
RPAD Right-pads a string with another string, to a certain length
RTRIM Removes trailing spaces from a string
SPACE Returns a string of the specified number of space characters
STRCMP Compares two strings
SUBSTR Extracts a substring from a string (starting at any position)
SUBSTRING Extracts a substring from a string (starting at any position)
SUBSTRING_INDEX Returns a substring of a string before a specified number of
delimiter occurs
TRIM Removes leading and trailing spaces from a string
UCASE Converts a string to upper-case
UPPER Converts a string to upper-case
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);
SQL
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;
<!...............MySQL 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("[Link]",".",1) AS Name;
SELECT SUBSTRING_INDEX("[Link]",".",2) AS Name;
SELECT SUBSTRING_INDEX("[Link]","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;
<!...............MySQL 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;
<!...............MySQL 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;
<!...............MySQL Time Function...........................!>
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;
<!...............MySQL 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);
SQL
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');
SQL
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;
<!...............MySQL 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);
SQL
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');
SQL
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');
SQL
DROP & TRUNCATE
TRUNCATE TABLE courses;
DROP TABLE courses;
<!...............MySQL 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);
SQL
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');
SQL
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');
SQL
VIEW Examples
/* Create view */
CREATE VIEW studentdata
AS
SELECT id,name,course_name FROM students s
INNER JOIN courses c ON [Link] = 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 [Link] = c.course_id
INNER JOIN city ci ON [Link] = [Link];
/* Another way to alter */
CREATE OR REPLACE VIEW studentdata
AS
SELECT id,name,course_name,cityname FROM students s
INNER JOIN courses c ON [Link] = c.course_id
INNER JOIN city ci ON [Link] = [Link];
/* rename view */
RENAME TABLE studentdata
TO studentcourse;
/* show view */
SELECT * FROM studentcourse;
/* Delete/Drop view */
DROP VIEW studentcourse;
<!...............MySQL INDEX...........................!>
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);
SQL
INDEX Examples
SELECT * FROM students
WHERE dob > "1999-01-01";
/* create index*/
CREATE INDEX studdob ON students (dob);
/* show index */
SHOW INDEX FROM students;
/* delete index */
DROP INDEX studdob ON students;
CREATE TABLE `tbl_student` (
`employee_id` int(15) NOT NULL AUTO_INCREMENT,
`id_number` varchar(18) NOT NULL UNIQUE,
`first_name` varchar(30) NOT NULL,
`last_name` varchar(30) NOT NULL,
`middle_name` varchar(30) NOT NULL,
`gender` varchar(8) NOT NULL,
`department_id` int(11) NOT NULL,
`contact_number` varchar(15) NOT NULL,
`email_address` varchar(50) NOT NULL,
`username` varchar(30) NOT NULL,
`password` int(15) NOT NULL,
`account_status` varchar(15) NOT NULL,
PRIMARY KEY(employee_id),
FOREIGN KEY (department_id) REFERENCES tbl_department (department_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;