MySQL 建立函數(Function)

來源:互聯網
上載者:User

標籤:

目標

怎麼樣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
  1. IN:表示輸入參數。
  2. OUT:表示輸出參數;
  3. INOUT:表示既能夠輸入也能夠輸出;
  4. param_name:表示參數的名稱;
  5. 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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.