標籤:
目標
怎麼樣MySQL建立資料庫功能(Function)
文法
CREATE FUNCTION func_name ( [func_parameter] ) //括弧是必須的,參數是可選的RETURNS type[ characteristic ...] routine_body
- CREATE FUNCTION 用來建立函數的keyword;
- func_name 表示函數的名稱;
- func_parameters為函數的參數列表,參數列表的形式為:[IN|OUT|INOUT] param_name type
- IN:表示輸入參數。
- OUT:表示輸出參數;
- INOUT:表示既能夠輸入也能夠輸出;
- param_name:表示參數的名稱;
- type:表示參數的類型,該類型能夠是MySQL資料庫中的隨意類型;
- RETURNS type:語句表示函數返回資料的類型;
- characteristic: 指定儲存函數的特性,取值與預存程序時同樣,具體請訪問-MySQL預存程序使用;
示範範例
建立示範範例資料庫、示範範例表與插入範例資料指令碼:
create database hr;use hr;create table employees(employee_id int(11) primary key not null auto_increment,employee_name varchar(50) not null,employee_sex varchar(10) default '男',hire_date datetime not null default current_timestamp,employee_mgr int(11),employee_salary float default 3000,department_id int(11));insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('David Tian','男',10,7500,1);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Black Xie','男',10,6600,1);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Moses Wang','男',10,4300,1);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Rena Ruan','女',10,5300,1);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Sunshine Ma','女',10,6500,2);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Scott Gao','男',10,9500,2);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Warren Si','男',10,7800,2);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Kaishen Yang','男',10,9500,3);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Simon Song','男',10,5500,3);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Brown Guan','男',10,5000,3);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Eleven Chen','女',10,3500,2);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Cherry Zhou','女',10,5500,4);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Klause He','男',10,4500,5);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Maven Ma','男',10,4500,6);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Stephani Wang','女',10,5500,7);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Jerry Guo','男',10,8500,1);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Gerardo Garza','男',10,25000,8);insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Derek Wu','男',10,5500,5);select * from employees;
建立函數-依據ID擷取員工姓名與員工工資
DELIMITER //CREATE FUNCTION GetEmployeeInformationByID(id INT)RETURNS VARCHAR(300)BEGINRETURN(SELECT CONCAT('employee name:',employee_name,'---','salary: ',employee_salary) FROM employees WHERE employee_id=id);END//DELIMITER ;
調用函數
在MySQL——函數的用法與MySQL內建函式的用法一樣。
<很多其它精彩內容。見後面更新...>
假設您們在嘗試的過程中遇到什麼問題或者My Code有錯誤的地方,請給予指正,很感謝!
連絡方式:[email protected]
著作權@:轉載請註明出處。
著作權聲明:本文部落格原創文章,部落格,未經同意,不得轉載。
MySQL 建立函數(Function)