mysql--共通機能

高度な#4:共通機能

/ *
コンセプト:メソッドは、メソッドにカプセル化された論理ステートメントのセットのJavaに似て、外部被ばくのメソッド名

利点:1、非表示の実装の詳細。図2は、コードの再利用性向上のために
コールを:表から関数名(引数リスト)を選択
特性:①関数名
    ②機能機能
カテゴリ:①ウェイ関数
        等:などの連結、IFNULL、長さ、
        値の値に戻りを渡す
    ②グループ機能(統計関数、集合関数、関数のセット)
        機能:統計的に使用される
        パス値のセットを、戻り値

* /

一方向関数 

文字関数
#lengthはパラメータのバイト数を取得します

SELECT LENGTH('join');            #4
SELECT LENGTH('张三丰hahaha');        #15,一个汉字占三个字节,一个字母一个字节

SHOW VARIABLES LIKE '%char%';        #显示当前系统支持的字符集

#concatの文字列の連結

SELECT CONCAT(last_name,'_',first_name)
FROM employees;

#上位/下位

SELECT UPPER('join');    #将参数变为大写
SELECT LOWER('JOIN');    #将参数变为小写

ケース#1:大文字で変数名は、名前の変更を小文字

SELECT CONCAT(UPPER(last_name),LOWER(first_name)) AS 姓名
FROM employees;

#SUBSTR /サブ#撮影した文字を
、残りのすべての文字から撮影が描かれています

SELECT SUBSTR('李莫愁爱上了路展元',7) AS output;    -- 索引从1开始

指定されたインデックス、指定された長さで始まる撮影の文字

SELECT SUBSTR('李莫愁爱上了陆展元',1,3) output;


ケース#:名前の最初の文字を大文字、その他の文字は、小文字下線のスプライシングを表示しました

USE myemployees;

SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2)),LOWER(first_name))
FROM employees;

ノーリターン場合#instr(STR1、STR2)は、str1はSTR2、および0で最古の位置を返します。

SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷六侠') AS output;

#trim   文字列を削除し、デフォルト削除スペースを指定しない場合は、特殊文字は中間を削除することはできません、指定された文字の前と後

SELECT TRIM('   李乐  0612') AS output;
SELECT TRIM('l' FROM 'llllllllllllllllll李lll乐lllll') AS output;

        

#lpadは(STR1、I、STR2)が  充填されたまま残さ指定STR2で指定された長さIのSTR1に充填されています。
#丈詰め私はあまりi番目の文字で左から右に取らstr1はSTR1を超える場合 

SELECT LPAD('殷素素',10,'*') AS output;
SELECT LPAD('殷素素',1,'*') AS output;

       

#rpad(STR1、I、STR2)右パディング    STR2 STR1指定された長さIする権利を指定で満たさ。
#丈詰め私はあまりi番目の文字で左に右に取らstr1はSTR1を超える場合 

SELECT RPAD('殷素素',10,'*') AS output;
SELECT RPAD('殷素素',1,'*') AS output;

       

余分なSTR2がある場合#replace(STR1、STR2、STR3)STR3は、すべての代替、その後、str1はSTR2の交換に置き換えます

SELECT REPLACE('张无忌爱上了周芷若','周芷若','赵敏') output;

 

 

第二に、数学関数

#round丸め

SELECT ROUND(3.14);
SELECT ROUND(3.54);
SELECT ROUND(-3.14);
SELECT ROUND(-3.54);

#round(x、i)はiは小数予約X、丸め

SELECT ROUND(3.14,1);

#ceilは切り上げ、以上の最小の整数パラメータに等しい戻ります

SELECT CEIL(-3.14);

#floor丸いダウン、戻り未満または最大整数パラメータに等しいです

SELECT FLOOR(-3.14);

#truncate(NUM1、I)カットオフ機能、小数点以下の桁数は、予約で指定
NUM1位予約I小数点以下を切り捨て

SELECT TRUNCATE(3.14,1);

#mod陽性の結果が肯定的であった被除数とし(a、b)はモジュロ/余り、被除数が負で、結果が否定的である
ABは、その結果でもある場合AA / B * BA / Bの整数である。#結果は整数

SELECT MOD(10,3);    #10%3==1
SELECT MOD(10,-3);    #10%-3==1
SELECT MOD(-10,3);    #-10%3==-1
SELECT MOD(-10,-3);    #-10%-3==-1

第三に、日付関数

現在のシステム日付+時間を返すために使用#1、

SELECT NOW();

#curdateは、現在のシステム日付を返します。

SELECT CURDATE();

#curtimeは、現在のシステム時刻を返します。

SELECT CURTIME();#获取指定的部分:年、月、日、小时、分钟、秒
SELECT YEAR(NOW());    #显示年份
SELECT YEAR('1997-06-12');    #显示指定字符串中的年份

USE myemployees;
SELECT YEAR(hiredate)
FROM employees;

SELECT MONTH(NOW());    #显示当前月份
SELECT MONTHNAME(NOW());    #显示当前月份的英文名称

SELECT SECOND(NOW());    #显示当前时间的秒数

#str_to_date(STR1、STR2)#を簡単にフォーマットに従ってSTR1のSTR2日付を解析します

SELECT STR_TO_DATE('1997-06-12','%Y-%d-%m');

一般的なフォーマット変換文字

指定された形式で文字に日付を変換#date_formate

SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日');


ケース#:従業員やクエリエントリー日(XX年/ XX月/ XX日)のボーナスがあります。

SELECT last_name,DATE_FORMAT(hiredate,'%Y年/%m月/%d日'),commission_pct
FROM employees
where not(commission_pct is null); #以下方法均可使用
WHERE commission_pct IS NOT NULL;

发布了132 篇原创文章 · 获赞 8 · 访问量 1万+

おすすめ

転載: blog.csdn.net/qq_41825534/article/details/104680818