高度な#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;