sql教程7函數(shù)

函數(shù)

mysql> SELECT movie_id,title, UCASE(title)  FROM movies;
+----------+---------------------------+---------------------------+
| movie_id | title                     | UCASE(title)              |
+----------+---------------------------+---------------------------+
|       16 | 67% Guilty                | 67% GUILTY                |
|        6 | Angels and Demons         | ANGELS AND DEMONS         |
|        4 | Code Name Black           | CODE NAME BLACK           |
|        5 | Daddy's Little Girls      | DADDY'S LITTLE GIRLS      |
|        7 | Davinci Code              | DAVINCI CODE              |
|        2 | Forgetting Sarah Marshal  | FORGETTING SARAH MARSHAL  |
|        9 | Honey mooners             | HONEY MOONERS             |
|       19 | movie 3                   | MOVIE 3                   |
|       22 | movie 3                   | MOVIE 3                   |
|       23 | movie 3                   | MOVIE 3                   |
|        1 | Pirates of the Caribean 4 | PIRATES OF THE CARIBEAN 4 |
|       17 | The Great Dictator        | THE GREAT DICTATOR        |
|        3 | X-Men                     | X-MEN                     |
+----------+---------------------------+---------------------------+
13 rows in set (0.03 sec)

mysql> SELECT 23 DIV 6 ;
+----------+
| 23 DIV 6 |
+----------+
|        3 |
+----------+
1 row in set (0.00 sec)

mysql> SELECT 23 / 6 ;
+--------+
| 23 / 6 |
+--------+
| 3.8333 |
+--------+
1 row in set (0.00 sec)

mysql> SELECT 23 - 6 ;
+--------+
| 23 - 6 |
+--------+
|     17 |
+--------+
1 row in set (0.01 sec)

mysql> SELECT 23 + 6 ;
+--------+
| 23 + 6 |
+--------+
|     29 |
+--------+
1 row in set (0.00 sec)

mysql> SELECT 23 * 6 AS multiplication_result;
+-----------------------+
| multiplication_result |
+-----------------------+
|                   138 |
+-----------------------+
1 row in set (0.00 sec)

mysql> SELECT 23 % 6 ;
+--------+
| 23 % 6 |
+--------+
|      5 |
+--------+
1 row in set (0.00 sec)

mysql> SELECT 23 MOD 6 ;
+----------+
| 23 MOD 6 |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

mysql> SELECT FLOOR(23 / 6) AS floor_result;
+--------------+
| floor_result |
+--------------+
|            3 |
+--------------+
1 row in set (0.00 sec)

mysql> SELECT ROUND(23 / 6) AS round_result;
+--------------+
| round_result |
+--------------+
|            4 |
+--------------+
1 row in set (0.00 sec)

mysql> SELECT RAND() AS random_result;
+---------------------+
| random_result       |
+---------------------+
| 0.22114622799786388 |
+---------------------+
1 row in set (0.00 sec)

存儲函數(shù)

  • 語法
CREATE FUNCTION sf_name ([parameter(s)])
   RETURNS data type
   DETERMINISTIC
   STATEMENTS
  • 實例
DELIMITER |
CREATE FUNCTION sf_past_movie_return_date (return_date DATE)
  RETURNS VARCHAR(3)
   DETERMINISTIC
    BEGIN
     DECLARE sf_value VARCHAR(3);
        IF curdate() > return_date
            THEN SET sf_value = 'Yes';
        ELSEIF  curdate() <= return_date
            THEN SET sf_value = 'No';
        END IF;
     RETURN sf_value;
    END|

匯聚函數(shù)

COUNT, SUM, AVG, MIN and MAX.

mysql> SELECT COUNT(movie_id)  FROM movierentals WHERE movie_id = 2;
+-----------------+
| COUNT(movie_id) |
+-----------------+
|               3 |
+-----------------+
1 row in set (0.00 sec)

mysql> SELECT DISTINCT movie_id FROM movierentals;
+----------+
| movie_id |
+----------+
|        1 |
|        2 |
|        3 |
+----------+
3 rows in set (0.00 sec)

mysql> SELECT MIN(year_released) FROM movies;
+--------------------+
| MIN(year_released) |
+--------------------+
|               1920 |
+--------------------+
1 row in set (0.00 sec)

mysql> SELECT MAX(year_released)  FROM movies;
+--------------------+
| MAX(year_released) |
+--------------------+
|               2012 |
+--------------------+
1 row in set (0.00 sec)

mysql> SELECT SUM(amount_paid) FROM payments;
+------------------+
| SUM(amount_paid) |
+------------------+
|            10500 |
+------------------+
1 row in set (0.00 sec)

存儲函數(shù)

DELIMITER |
CREATE FUNCTION sf_past_movie_return_date (return_date DATE)
  RETURNS VARCHAR(3)
   DETERMINISTIC
    BEGIN
     DECLARE sf_value VARCHAR(3);
        IF curdate() > return_date
            THEN SET sf_value = 'Yes';
        ELSEIF  curdate() <= return_date
            THEN SET sf_value = 'No';
        END IF;
     RETURN sf_value;
    END|

mysql> SELECT movie_id,membership_number,return_date,CURDATE() ,sf_date(return_date)  FROM movierentals;
+----------+-------------------+-------------+------------+----------------------+
| movie_id | membership_number | return_date | CURDATE()  | sf_date(return_date) |
+----------+-------------------+-------------+------------+----------------------+
|        1 |                 1 | NULL        | 2020-03-23 | NULL                 |
|        2 |                 1 | 2012-06-25  | 2020-03-23 | Yes                  |
|        2 |                 3 | 2012-06-25  | 2020-03-23 | Yes                  |
|        2 |                 2 | 2012-06-24  | 2020-03-23 | Yes                  |
|        3 |                 3 | NULL        | 2020-03-23 | NULL                 |
+----------+-------------------+-------------+------------+----------------------+
5 rows in set (0.00 sec)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容