データベース管理と高可用性第5章データベース機能とデータベース作成プロセス

データベース管理と高可用性第5章データベース機能とデータベース作成プロセス

1つ:データベース機能

1.1:数学関数

数学関数 説明
abs(x) xの絶対値を返します 絶対値
rand() 0から1までのランダムな数値を返します ランドエッジ
mod(x、y) xの残りをyで割った値を返します 残りを取る
パワー(x、y) xをyの累乗に戻します パワー早送り
round(x) xに最も近い整数を返します ラウンド整数
round(x、y) 丸めた後、xのyを10進位に保つ
sqrt(x) xの平方根を返します sqrt平方ルート
truncate(x、y) 小数点以下y桁に切り捨てられた数値xの値を返します 傍受を切り捨てる
ceil(x) x以上の最小の整数を返します 天井に取り付けられた天井
床(x) x以下の最大整数を返します
最大(x1、x2 ...) コレクション内の最大値を返します
最小(x1、x2 ...) セット内の最小値を返します

1.2:集計関数

集計機能 説明
avg() 指定された列の平均値を返します 平均平均
カウント() 指定された列のNULL以外の値の数を返します カウントカウント
分() 指定された列の最小値を返します
max() 指定された列の最大値を返します
sum(x) 指定された列のすべての値の合計を返します

1.3:文字列関数

文字列関数 説明
長さ(x) 文字列xの長さを返します 長さ
トリム() 指定された形式なしで値を返します トリムトリム、カット、スペースの削除は両端のスペースのみを削除できます
concat(x、y) 提供されたパラメーターxおよびyを文字列に連結します concatマージ
アッパー(x) 文字列xのすべての文字を大文字に変更します アッパー
lower(x) 文字列xのすべての文字を小文字に変更します
left(x、y) 文字列xの最初のy文字を返します 左の値
right(x、y) 文字列xの最後のy文字を返します 右の値
繰り返し(x、y) 文字列をxy回繰り返す リピートリピート
スペース(x) Xスペースが返されます スペーススペース
replace(x、y、z) 文字列xの文字列zを文字列yに置き換えます 交換
strcmp(x、y) xとyを比較すると、戻り値は-1,0,1になり、ASCIIコード比較に変換できます。 strcmpは文字列を比較します
substring(x、y、z) 文字列xのy番目の位置から始まる長さzの文字列を取得します サブストリングインターセプトストリング
reverse(x) 逆ストリングx リバース、リバース

1.4:日付と時刻の関数

文字列関数 説明
curdate() 現在の時刻の年、月、日を返します 現在の日付を取得する
カータイム() 現在の時刻の時、分、秒を返します 現在の時刻を取得する
now() 現在の時刻の日付と時刻を返します 今何時ですか
月(x) 日付xの月の値を返します
週(x) 返却日xは年の最初の数週間です
時間(x) 時間の値をxで返します
分(x) 分の値をxで返します
second(x) xの秒値を返します
曜日(x) 戻り値xは曜日、1日曜日、2月曜日です
dayofmonth(x) 計算日xは月の日です
dayofyear(x) 計算日xはその年の日です

1.5:保存された手順

//フォーマット
#defineストアドプロシージャ

delimiter $$
create procedure存储过程名(in 参数名 参数类型)
begin
#定义变量
declare变量名变量类型
#变量赋值
set 变量名 = 值
sql语句1;
sql语句2;
..
sql语句n;
end $$
delimiter ;

#ストアドプロシージャの
呼び出しストアドプロシージャ名の呼び出し(実際のパラメータ);
#ストアドプロシージャのクエリ
show procedure status where db = 'database';
#ストアドプロシージャの
削除ドロッププロシージャストアドプロシージャ名;

例:1

mysql> delimiter $$
mysql> create procedure myrole()                   //创建存储过程,名字为myrole
    -> begin
    -> select name,score from accp;
    -> end $$
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql> call myrole();

例:2

mysql> delimiter $$
mysql> create procedure myschool(in my_name varchar(10))
    -> begin
    -> select name score from accp where name=my_name;
    -> end$$
Query OK, 0 rows affected (0.01 sec)

mysql> delimiter ;
mysql> show procedure status where db='school';

例3:

mysql> delimiter $$
mysql> create procedure myupdate(in my_score decimal(5,2))
  -> begin
    -> declare hob int(3);
    -> if my_score >= 80 then
    -> set hob = 1;
    -> else
    -> set hob = 2;
    -> end if;
    -> update accp set score=my_score,hobby=hob where name='zhangsan';
    -> end$$
Query OK, 0 rows affected (0.06 sec)
//修改名为张三的分数和hobby,修改zhangsan的hobby=2,score=75
mysql> delimiter ;
mysql> call myupdate(75);

おすすめ

転載: blog.51cto.com/14625831/2547973