Custom function programming in mysql

Source: Internet
Author: User

Custom function programming in mysql

Syntax:

New:

Create function function_name (parameter list) returns Return Value Type

Function body

Function name, which must be a valid identifier and should not conflict with an existing keyword.

A function should belong to a database. You can use db_name.funciton_name to execute the database to which the current function belongs. Otherwise, it is the current database.

The parameter section consists of the parameter name and parameter type.

Return Value Type

The function body consists of multiple available mysql statements, process control, and variable declaration statements.

Multiple statements should be included in the begin end statement block.

Note that there must be a return value statement.

Delete:

Dropfunction if existsfunction_name;

View:

Show function status like 'partten'

Show create functionfunction_name;

Modify:

Alter functionfunction_name function option.

Example:

Hello world!

IFStatement

IFSearch_conditionTHEN

Statement_list

[ELSEIFSearch_conditionTHENStatement_list]

...

[ELSEStatement_list] ENDIF;

CASEStatement

CASECase_value

WHENWhen_valueTHENStatement_list

[WHENWhen_valueTHENStatement_list]

...

[ELSEStatement_list]

End case;

Loop:

While

[Begin_label:] WHILESearch_conditionDO

Statement_list

End while [End_label];

If you need to terminate the while loop in advance, you need to use tags. tags must appear in pairs.

Exit Loop

Exiting the entire loop leave is equivalent to break

Exiting the current loop iterate is equivalent to continue

The exit tag determines which loop to exit.

Variable declaration:
Syntax:
DECLARE var_name [,...] type [DEFAULT value]
This statement is used to declare local variables. To provide a DEFAULT value for a variable, include a DEFAULT clause. The value can be specified as an expression and does not need to be a constant. If no DEFAULT clause exists, the initial value is NULL.
Use
Use the set and select into statements to assign values to variables.

Note that global variables (User-Defined variables) @ XXX global variables can be used directly @ XXX without declaration in the function.

Example: obtain the maximum student ID in the current class.

Refer to student table

Create table join_student (

Stu_id int not null auto_increment,

Stu_no char (10 ),

Class_id int not null,

Stu_name varchar (10 ),

Stu_info text,

Primary key (stu_id)

);

Add student ID for Calculation

Drop function if existssno;

Delimiter $ # You can replace the statement Terminator ";" with "$" when a statement block is included"

Create function sno (c_id int) returns char (10)

Begin

Declare last_no char (10); # declare a local variable to save the current largest student ID. If not, it is null.

Declare class_name char (10 );

Select stu_no from join_student where class_id = c_id order by stu_no desc limit 1 into last_no;

If last_no is null then # if it is null, no student in the current class starts from 1 and the class name is obtained.

Return concat (select c_name from join_class where id = c_id into class_name), '001'); # the function of concat () is to connect strings.

Else

Return concat (left (last_no, 7), lpad (right (last_no, 3) + 1, 3, '0 '));

End if;

# Return @ last_no;

End

$

Delimiter;

Obtain the Student name at random.

Drop function if exists sname;

Delimiter $

Create function sname () returns char (2)

Begin

Declare first_name char (16) default 'zhao Qian Sun Li Zhou Wu Zheng Wang Feng Chen Xiaowei Jiang Shen Han yang ';

Declare last_name char (10) default 'jia Yi bingding Wuji Geng Xin qingdece ';

Declare full_name char (2 );

Set full_name = concat (substring (first_name, floor (rand () * 16 + 1), 1), substring (last_name, floor (rand () * 10 + 1 ), 1 ));

Return full_name;

End

$

Delimiter;

========================================================== ========================================================== ==========

Mysql built-in functions

Numeric Functions

Abs (X), absolute value abs (-10.9) = 10

Format (X, D), format the kilobytes (1234567.456, 2) = 1,234,567.46

Ceil (X), rounded up to ceil (10.1) = 11

Floor (X), rounded down to the entire floor (10.1) = 10

Round (X), rounded up

Mod (M, N) M % n m mod n evaluate the remainder 10% 3 = 1

Pi () to obtain the circumference Rate

Pow (M, N) M ^ N

Sqrt (X), arithmetic square root

Rand (), random number

TRUNCATE (X, D) truncates D decimal places

Time and date functions

Now (), current_timestamp (); current date and time

Current_date (); current date

Current_time (); current time

Date ('yyyy-mm-dd HH; ii: ss'); obtain the Date part.

Time ('yyyy-mm-dd HH; ii: ss'); obtain the Time part

Date_format ('yyyy-mm-dd HH; ii: ss', '% D % y % a % d % m % B % J ');

Unix_timestamp (); obtain the unix Timestamp

From_unixtime (); // obtain the time from the timestamp

String Functions

LENGTH (string) // string LENGTH, in bytes

CHAR_LENGTH (string) // number of characters in string

SUBSTRING (str, position [, length]) // starts from the position of str and takes length characters

REPLACE (str, search_str, replace_str) // REPLACE search_str with replace_str in str

INSTR (string, substring) // returns the position where the substring first appears in the string.

CONCAT (string [,...]) // connection string

CHARSET (str) // returns the string Character Set

LCASE (string) // converts it to lowercase.

LEFT (string, length) // take the length from the LEFT of string2

LOAD_FILE (file_name) // read content from the file

LOCATE (substring, string [, start_position]) // same as INSTR, but you can specify the start position

LPAD (string, length, pad) // repeat pad to start with string until the string length is length

LTRIM (string) // removes leading Spaces

REPEAT (string, count) // REPEAT count times

RPAD (string, length, pad) // use pad after str until the length is length.

RTRIM (string) // remove backend Spaces

STRCMP (string1, string2) // compare the size of two strings by character

Process functions:

Case when [condition] THEN result [WHEN [condition] THEN result...] [ELSE result] END multiple branches

IF (expr1, expr2, expr3) Dual branch.

Aggregate functions

Count ()

Sum ();

Max ();

Min ();

Avg ();

Group_concat ()

Other common functions

Md5 ();

Default ();

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.