MySQL进阶(四)——函数

来源:互联网 发布:淘宝男士内衣薄款莱卡 编辑:程序博客网 时间:2024/05/16 11:33

MySQL的一些重要函数


字符函数



      例子:

             SELECT CONCAT(‘HEOOL’,’WORLD’);

             输出   HELLOWORLD

             CONCAT_WS(‘|’,’A’,’B’,’C’);

             输出   A|B|C

             SELECT FORMAT(12345.75,2);

             输出   12345.75

             SELECT FORMAT(12345.75,1);

             输出   12345.8

             SELECT LOWER(‘MySQL’);

             输出   mysql

             SELECT UPPER(‘mysql’);

             输出   MYSQL

             SELECT LEFT(‘MySQL’,2);

             输出   My

             SELECT LOWER(LEFT(‘MySQL’,2));

             输出   my

             SELECT RIGHT(‘MySQL’,3);

             输出   SQL

             SELECT LENGTH(‘MySQL’);

             输出   5

             SELECT LENGTH(‘My SQL’);

             输出   6

             SELECT LENGTH(‘  MySQL  ’);

             输出   9

             SELECT LENGTH(LTRIM(‘  MySQL  ’));

             输出   7

             SELECT LENGTH(RTRIM(‘  MySQL  ’));

             输出   7

             SELECT LENGTH(TRIM(‘  MySQL  ’));

             输出   5

             SELECT TRIM(LEADING ‘?’ FROM ‘??MySQL???’);

             输出   MySQL???

             SELECT TRIM(TRAILING ‘?’ FROM ‘??MySQL???’);

             输出   ??MySQL

             SELECT TRIM(BOTH ‘?’ FROM ‘??MySQL???’);

             输出   MySQL

             SELECT TRIM(BOTH ‘?’ FROM ‘??My??SQL???’);

             输出   My??SQL

             SELECT REPLACE(‘’??My??SQL???’,’?’,’ ’);

             输出   MySQL

             SELECT REPLACE(‘’??My??SQL???’,’?’,’ !*’);

             输出   !*!*My!*!*SQL!*!*!*

             SELECT REPLACE(‘’??My??SQL???’,’??’,’!’);

             输出   !My!SQL!?

             SELECT SUBSTRING(‘MySQL’,1,2);

             输出   My

             SELECT SUBSTRING(‘MySQL’,3);

             输出   SQL

             SELECT SUBSTRING(‘MySQL’,-1);

             输出   L

             SELECT * FROM test WHERE first_name LIKE ‘%1%%’ ESCAPE ‘1’;

             输出   first_name    last_name

                           tom%        123

             %(百分号):代表任意个字符

              _():代表任意一个字符

 

数值运算符与函数


        例子:

               SELECT CEIL(3.01);

               输出   4

               SELECT FLOOR(3.99);

               输出   4

               SELECT 3/4;

               输出  0.7500

               SELECT 3 DIV 4;

               输出   0

               SELECT 5 MOD 3;

               输出   2

               SELECT 5.3 MOD 3;

               输出   2.3

               SELECT POWER(3,3);

               输出   27

               SELECT ROUND(3.6522);

               输出   3.65

               SELECT ROUND(3.6521);

               输出   3.7

               SELECT ROUND(3.6520);

               输出   4

               SELECT TRUNCATE(125.890);

               输出   125

               SELECT TRUNCATE(125.89-1);

               输出   120


比较运算符和函数


         例子:

                 SELECT 15 BETWEEN 1 AND 22;

                 输出    1

                 SELECT 35 NOT BETWEEN 1 AND 22;

                 输出    1

                 SELECT 10 IN(5101520);

                 输出    1

                 SELECT NULL IS NULL;

                 输出    1


日期时间函数

           例子:

                   SELECT NOW();

                   输出   2016-06-28 10:24:54

                   SELECT CURDATE();

                   输出   2016-06-28

                   SELECT CURTIME();

                   输出   10:25:34

                   SELECT DATE_ADD(‘2016-06-28’,INTERVAL 365 DAY);

                   输出   2017-06-28

                   SELECT DATE_ADD(‘2016-06-28’,INTERVAL -365 DAY);

                   输出   2015-06-29

                   SELECT DATEDIFF(‘2016-06-28’,’2017-06-28’);

                   输出   -365

                   SELECT DATE_FORMAT(‘2016-06-28’,’%m/%d/%Y’);

                   输出   06/28/2016


信息函数


          例子:

                  SELECT CONNECTION_ID();

                  输出    3

                  SELECT DATABASE();

                  输出    test


聚合函数


        例子:

                 SELECT AVG(id) FROM test;

                 输出   4.0000


加密函数



自定义函数

       自定义函数的两个必要条件:

            (1)零个或多个参数

            (2)返回值

       函数可以返回任意类型的值,同样可以接收这些类型的参数


创建自定义函数

         CREATE FUNCTION function_name RETURNS {STRING | INTEGER | REAL | DECIMAL} routine_body

         关于函数体

              (1)函数体由合法的SQL语句构成;

              (2)函数体可以是简单的SELECTINSERT语句;

              (3)函数体如果为复合结构则使用BEGIN...END语句;

              (4)复合结构可以包含声明,循环,控制结构。


创建不带参数的自定义函数

          CREATE FUNCTION f1() RETURNS VARCHAR(30)

          RETURN DATE_FORMAT(NOW(),’%Y%m%d%H:%i:%s’);

           调用函数

           SELECT f1();


创建带参数的自定义函数

           CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMQLLINT UNSIGNED)

           RETURNS FLOAT(10,2) UNSIGNED

           RETURN (num1+num2)/2;

          调用函数

          SELECT f2(10,15);


创建具有复合结构函数体的自定义函数

         首先更改MySQL结束符,可以使用//  (根据自己喜好更改),如果按照默认的结束符 " ; " ,在函数体中书写SQL语句的时候," ; "代表的是SQL语句的结束,而不是函数体的结束,导致RETRUN语句没有返回值。

         DELIMITER //

         CREATE FUNCTION adduser(username VARCHAR(20))

         RETURNS INT UNSIGNED

         BEGIN

         INSERT test(username) VALUES(username);

         RETURN LAST_INSERT_ID();

         END

         //

        调用函数

        SELECT adduser(‘Rose’);


删除函数

        DROP FUNCTION [IF EXISTS] function_name


1 0
原创粉丝点击