データベース管理と高可用性第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);