You are on page 1of 10

SQL Procedure, Function and

View
Procedure
• create procedure mypro(IN val1 varchar(100))
• Begin
• insert into first (col1) values (val1);
• END
• call mypro('Value')
DELIMITER //
CREATE PROCEDURE GetOfficeByCountry(IN UserName VARCHAR(255))
BEGIN
SELECT *
FROM newtable
WHERE user_name = UserName;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE InserIntoMyTableProcedure(INOUT UserName
VARCHAR(255))
BEGIN
INSERT INTO mytable(user_name) values (UserName);
END //
DELIMITER ;

CALL InserIntoMyTableProcedure('UserNameFromProcedure');
Function Without Where
• DELIMITER //
• CREATE FUNCTION CalcIncome ( starting_value INT )
• RETURNS INT
• BEGIN
• DECLARE income INT;
• SET income = 1000;
• SET income = income + starting_value;
• RETURN income;
• END; //

• DELIMITER ;
FUNCTION
DELIMITER //
CREATE FUNCTION CalcIncome ( starting_value INT )
RETURNS INT
BEGIN
DECLARE income INT;
SET income = 0;
label1: WHILE income <= 3000 DO
SET income = income + starting_value;
END WHILE label1;
RETURN income;
END; //

DELIMITER ;
call function

SELECT
user_name, MarksFunction(10)
FROM
newtable WHERE marks=10;
Views
create view <viewName> as select <columnName1>,<columnName2>
from <tableName>;
ALTER VIEW newview AS SELECT uid,uname,password FROM register
drop view ViewName
INDEX
• Create UNIQUE INDEX index_name ON table_name (column_name1,
column_name2…)

• SHOW INDEX FROM database_name.table_name


Trigger
• DELIMITER //
• CREATE TRIGGER before_employee_update
• BEFORE UPDATE ON employees
• FOR EACH ROW
• BEGIN
• INSERT INTO employees_audit
• SET action = 'update',
• employeeNumber = OLD.employeeNumber,
• lastname = OLD.lastname,
• changedat = NOW();
• END//
• DELIMITER ;

You might also like