mysqlストレージプロセス学習ノート(1)

5626 ワード

最近テストの需要のため、データベースの中で大量のアナログデータを挿入する必要があって、組織はストレージの過程を使うことを要求して、だからこの2日間ずっとこれを見て、以下はこの2日間の学習の心得をみんなに分かち合います
1.自分の最初のprocedureを作成します(空で、何もできません)
CREATEPROCEDURE `NewProcedure`(`Param` int(11))

BEGIN

END;

2.ブロック定義
1)常用:
    BEGIN

    END;

2)ブロックに別名を付けることもできます.
    myLable:BEGIN

    END myLable;

注意:leave myLableを使用してブロックを飛び出し、ブロック以降のコードを実行できます.
3)条件文:
    If   then

    Statement1

    Else

    Statement2

    End if;

解析:条件が成立すればstatement 1;そうでない場合はstatement 2を実行し、宣言条件文の終了を表示します.
4)循環文
A.While文
    [label:] while expression do

    Statements

    End while[label];

解析:expression条件が成立するとdo statements;宣言while文の終了を表示します.
B.Loopサイクル
    [label:]Loop

    Statements

    End Loop[label];

解析:statementsをループし、ループを終了します.(どんな状況で終わるかわからなかった)
C.Repeat untilサイクル
    [label:]REPEAT

    Statements

    UNTIL expression

    END REPEAT [label];

解析:expressionが成立するまでstatementsを繰り返し、ループrepeatを終了する.
5)その他のコマンド
1)ストアド・プロシージャの呼び出し
call sp_name()

注:ストレージ・プロシージャのパラメータが渡されない場合でも、ストレージ・プロシージャ名の後にカッコを付ける必要があります.
2)ストレージ・プロシージャの削除
drop procedure sp_name

注:1つのストレージ・プロシージャで別のストレージ・プロシージャを削除することはできません.別のストレージ・プロシージャのみを呼び出すことができます.
3)ストアド・プロシージャの情報の表示
show procedure status

所属するデータベース、ストアド・プロシージャ名、作成時間など、データベースに格納されているすべてのストアド・プロシージャの基本情報を表示します.
show create procedure sp_name

ストレージ・プロシージャの詳細を表示
3.オペレータ
1)演算子
+ - */div %
解析:divは除去を表します./表示されます.
2)比較演算子
>,
<,
<=,
>=,
BETWEEN : EX: 5 BETWEEN 1 AND 10 àtrue
NOT BETWEEN ,EX: 5 not between 1 and10 àfalse
IN集合中5 in(1,2,3,4)àfalse
NOT IN
=//は等しいことを表します(賦値を表しません;賦値を表す場合はsetキーワードを付けます)
<>,!=//等しくない
<=>2つのnull値が等しいかどうかを厳密に比較null<=>>nullàtrue
LIKE単純モードマッチング「guy Harrison」like「guy%」àtrue
REGEXP正規マッチング"guy Harrison"regexp"[gg]reg"àfalse
IS NULLが空のex:0 isnullàfalse
IS NOT NULLは空ではありませんex:0 isnot nullàtrue
 
3)論理演算子
AND,OR,XOR(异或),
4)ビット演算子
|,&,<,>,~(位によって逆を取る)
4.Mysqlストアド・プロシージャの基本関数(コメントが書かれていないものもありますが、理解していない場合はbaidu下)
1)文字列クラス
Charset(str)
Concat(string 2[,...])/接続文字列
Instring(string,substring)/substringが初めてstringに現れた位置を返し、ゼロを返す存在はありません
Lcase(string 2)/小文字を回す
Left(string 2,lengh)/string 2の左からlength文字を取る
Length(stirng)
Load_file(file_name)//ファイルからコンテンツを読み込む
Locate(substring,string[,start_position])/instrと同じですが、開始位置を指定できます
Ltrim(stirng 2)/フロントエンドスペースの除去
Repeat(string 2,count)/count回繰り返す
Replace(str,search_str,replace_str)//strでreplace_str置換search_str
Rpad(string 2,length,pad)/strの後にpadで長さがlengthになるまで補充する
Rtrim(string 2)/バックエンドスペースの除去
Strcmp(string 1,string 2)/文字ごとに2文字列のサイズを比較
Substring(str,position[,length])//strのpositionからlength文字をとる
Ucase(string 2)/大文字に変換
Right(string 2,length)/string 2最後のlength文字を取ります.
Space(count)//count個のスペースを生成
Trim([[both|leading|trailing][padding]from]string 2)/指定した位置の指定文字を除去します.
注意:mysqlの文字列のフッターは1から始まります.
2)数字類
ABS(number 2)//絶対値
Bin(deaimal_number)//10進数変換バイナリ
Ceiling(number 2)//上向き
Conv(number 2,from_base,to_base)/進数変換
Floor(number 2)//下向き
Format(number 2,decimal_places)/小数位数保持
Hex(decimalNumber)/16進法に移行
注意:hex()は文字列を入力でき、asc-11コードを返します.
Last(number,number 2[,...])/最小値を求める
Mod(numerator,denominator)/余を求める
Power(number,power)//指数を求めます
Rand([seed])/乱数
Round(number[,decimals])/四捨五入、decimalsは小数位数である.decimalを書かない場合は、0ビットの小数位を保持します.
Sign(number 2)/戻り記号、正負または0
Sqrt(number 2)//開平方
3)日付クラス
Addtime(date 2,time_interval)/time_をintervalをdate 2に追加
Convert_tz(datetime 2,fromTZ,toTZ)/変換タイムゾーン
Current_date()/現在の日付
Current_time()/現在時刻
Current_timestamp()/現在のタイムスタンプ
Date(datetime)//datetimeの日付部分を返す
Date_add(date 2,intervald_valued_type)//date 2に日付または時間を加算
Date_format(datetime,formatCodes)/formatcodes形式でdatetimeを表示する
Date_sub(date 2,intervald_valued_type)/date 2から1時間減算
Datediff(date 1,date 2)/2つの日付差
Day(date)//日付を返す日
Dayname(date)/英語日付
Dayofweek(date)/曜日(1-7)、7は日曜日
Dayofyear(date)/一年の何日目
Extract(interval_name from date)/dateの最初の日付の指定部分から.
Makedate(year,day)/年および年の日付を指定し、日付列を生成
Maketime(hour,minute,seond)/時間列の生成
Monthname(date)/英語月名
Now()/現在時刻
Sec_to_time(seconds)/秒数を時間に変換しformat形式で表示
Timediff(datetime 1,datetime 2)/2時間差
Time_to_sec(time)/時間回転秒数
Week(date_time[,start_of_week])/何週目
Year(datetime)/年
Dayofmonth//月の何日目
Hour(datetime)//時間
Last_day//dateの月の最終日
Microsecond(datetime)/月
Minute(datetime)/分
付:INTERVALで使用可能なタイプDAY,DAY_HOUR ,DAY_MINUTE ,DAY_SECOND ,HOUR ,HOUR_MINUTE ,HOUR_SECOND ,MINUTE,MINUTE_SECOND,MONTH ,SECOND ,YEAR 
5.javaでストアド・プロシージャを呼び出す方法(試したことがないので、先に抜粋)
Connection connection = DriverManager.getConnection(url,username,password);  
· String procedure = “{  = call myProc(,)}”;  
· CallableStatement statement = connection.prepareCall(procedure);  
·  statement.setString(2,×××);  
· statement.setFloat(3,×××);   
· statement.registerOutParameter(1,Types.INTEGER);   
· statement.execute();   
· int row = statement.getInt(1);