|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 |
#--------------------------------------------------------------------------------------- Create DataBase DB名; Drop DataBase DB名 [if Exists DB名]; #--------------------------------------------------------------------------------------- Use DB名; #--------------------------------------------------------------------------------------- Show DataBases; Show Tables[ From DB名]; Show Columns[ From 表名]; Show Index From 表名; Show PeocessList; Show Status; Show Variables; #--------------------------------------------------------------------------------------- データ型 #--------------------------------------------------------------------------------------- Char(m) Mバイト/固定長文字列 VarChar(m) M+1バイト可変長文字列 TinyBlob/ TimyText 文字列の長さ+1バイト Blob/ Text 文字列の長さ+2バイト MediumBlob/MediumText 文字列の長さ+3バイト LongBlob/ LongText 文字列の長さ+4バイト Enum(v1,v2...) 1もしくは2バイト(要素数に依存。最大値65535)Enumerate Set(v1,v2...) 1~4バイトもしくは8バイト(要素数に依存。最大要素64)フラグに使用。 NChar(unicode文字列) TinyInt 1バイト SmallInt 2バイト MediumInt 3バイト Int 4バイト BigInt 8バイト Float 4バイト Double 8バイト Decimal/Numerica(m.d) Mバイト パック無し浮動小数点 Date 3バイト YYYY-MM-DD DateTime 8バイト YYYY-MM-DD HH:MM:DD TimeStamp 4バイト YYYY-MM-DD HH:MM:DD Time 3バイト HH:MM:DD Or HHMMDD Year 1バイト Yyyy Null Nullを許す Not Null Nullを許さない Default '0' 初期値 Primary Key 非重複型(プライマリキー)の宣言 Auto_Increment インクリメント型 ZeroFill 上位を0で埋める "%0d"と同じ Unsigned Unsigned Int 指定(-127 - +127 ではなく 0 - 255) #--------------------------------------------------------------------------------------- Desc 表名[ 列名]; Desc 表名[ "job%"; #--------------------------------------------------------------------------------------- Create Table 表名( 列定義 ); Create Table 表名( 列名1 Int, 列名2 Int, Index ID_index(ID_c)); #--------------------------------------------------------------------------------------- Alter[ Ignore] Table 表名 Rename As 新表名 表名の変更 Add 列名 列定義 最後に列の追加 Add 列名 列定義 First 最初に列の追加 Add 列名 列定義 After 列名0 列名0の後に列の追加 Drop 列名 列の削除 Change 列名 列名 VarChar... Change 列名 列名 列名の変更 Change 列名 列名 列定義 列のデータ型、属性の変更(再定義) Modify 列名 列定義 上と同じ 列名を2度書く必要がない Alter 列名 Set Deafault '初期値' 初期値を変更 Alter 列名 Drop Deafault 初期値を削除 Add Index インデックス名(列名) インデックスを追加 Drop Index インデックス名 インデックスを削除 Add Primary Key(列名1,列名2,...) 主キーの追加 Drop Primary Key 主キーの削除 Add Unique インデックス名(列名1,列名2,...) Type=(Isam|MyIsam|Heap|InnoDB) [ CheckSum=数値] Default:MyIsam #--------------------------------------------------------------------------------------- Drop Table 表名(,表名2);/表の削除 Drop Table If Exists 表名;/表の削除 エラーなし #--------------------------------------------------------------------------------------- Optimize Table 表名; #--------------------------------------------------------------------------------------- Kill Thrad_ID; #--------------------------------------------------------------------------------------- Create Function Drop Function #--------------------------------------------------------------------------------------- Create View ビュー名 As Select文;/# 非MySQL Drop View ビュー名 #--------------------------------------------------------------------------------------- Create Unique Index インデックス名 On 表名( 列名[Asc|Desc], ... ) Create Index ID_cmpd_index On Bills( Acount_d, Amount ); Drop Index インデックス名 On 表名 #--------------------------------------------------------------------------------------- Create Index インデックス名 On 表名(列名); インデックスの新規時同時に、カラムに、変更 Drop Index インデックス名 On 表名(列名); 削除 #--------------------------------------------------------------------------------------- Insert [option][ignore][Into] 表名[ ( 列名1,列名2, ...)] Select文;/Select文の結果をテーブルに入れる Ignore 重複データのコピー禁止 Options: Low_Priority 排他制御あり Delayed 排他制御あり Insert Into 表名2 Select * From 表名1 データのコピー Insert Into 表名2(i1,i2,i3) Select I1,i2,i3 From 表名1 データのコピー Insert Into 表名 From DB名.表名 別のDBから Insert Into 表名 Set 列名 = '1', Nnnnnn = 'Strs' Insert Into 表名 ('','') Values( '','',''),('','','') Insert Into 表名 Values( '','',''),('','','') 省略可能// #--------------------------------------------------------------------------------------- UpDate 表名 Set 列名2 = "Str" Where 列名1 = "1" UpDate文は必ずwhereが必要(ないと全てのレコードが変わってしまう) #--------------------------------------------------------------------------------------- Delete From 表名 Where 条件 #--------------------------------------------------------------------------------------- Select [all(default)|distinct ] # Distinct:uniq Sum(列名1) Alias,sum2(列名2) Alias2, ... From ... ;(非MySQL) [表名.](*|列名) Sum(列名) Avg(列名) CurDate() CurTime() Date_Format(birthday,"%m %d,%y") From 列名; Year((curDate))-year(birthday) From 列名; [ As "Str"] # 結果表示時のヘッダ [, ...repeat] From 表名1,表名2 交差結合(ほとんど実用性無し) 表名1,表名1 表名2 自己結合 例2: 表名1 表名2,表名1 T3 表名1 Left Join 表名2 On 列名1 = 列名2 左結合 (左側がNullでも表示) 表名1 Inner Join 表名2[ On 列名1 = 列名2] 内部結合 (左右がNullは非表示) 和結合 Where 表名1.列名1 = 表名2.列名2 結合時 (列名|max(列名)) (>|<|>=|<=|=|<>) 数値 '=='ではない <> = != 列名 Between 5 And 8 5以上8以下を表示 列名 Between "a" And "c" A,b,cを含むデータを表示 列名 In ( 3,6,9 ) 列名 In ( "Str1", "Str2", "Str3" ) 列名 Is Null データがない行を表示 列名 Is Not Null データがある行を表示 列名 Not( ... ) 否定 !() 列名 Like %文字列% あいまい検索 %=* _=? 列名 Like 文字列% あいまい検索 列名 Like %文字列 あいまい検索 _ 任意の1バイト '?' と同じ %___.txt% /% ; 特殊文字のエスケープ "100/%%" And && Or || 列名 Not Like ... Group By 列名 Having 絞込み条件(whereと同じ) Order By 列名[ Asc(初期値)|desc][ Limit [2,]3] 列名1列を基準にソート[ 降順] 2つ飛ばして、それから3つ(3,4,5) #--------------------------------------------------------------------------------------- UnionSelect 集合の和を求める(非MySQL) Union AllSelect 集合の和を求める(非uniq)(非MySQL) IntersectSelect 集合の積を求める(非MySQL) MinusSelect 集合の差を求める(非MySQL) #--------------------------------------------------------------------------------------- Select ... Where 条件1 Having 条件2 Order By 列名; 絞込み Select ... Group By 列名; Distinctと同じだが、集計関数と併用。 Select 列名, Avg(列名2) From 表名 Where 条件 Group By 列名; Select 列名, Avg(列名2) From 表名 Group By 列名 Having 条件; Select ... Group By #--------------------------------------------------------------------------------------- 集計関数 #--------------------------------------------------------------------------------------- Bit_And(Expr) Exprで指定されたカラムのNull値でないデータに、共通のビットを返す Bit_Or(Expr) Exprで指定されたカラムのNull値が持つ全てのビットを返す Std(列名)/StdDev(列名) その列のNull値でないデータの標準偏差を求める Max(列名) Min(列名) Count(*) Count(列名) レコード数(wc) Sum(列名) 合計 #--------------------------------------------------------------------------------------- 比較関数 #--------------------------------------------------------------------------------------- GreaTest(e1,e2,e3,...) 式のうち最大値を返す If(e1,v1,v2) ? : ; IfNull(e1,v1,v2) E1がNullなら Interval(v,v1,v2,v3...) Vがv1以降のどの次の来るかを返す IsNull(e1) Nullかどうか Least(e1,e2,e3...) Greatestの反対 NullIf(e1,e2) E1=e2ならNullを返す StrCmp(s1,s2) S1=s2で-1,0,1を返す #--------------------------------------------------------------------------------------- 文字列関数 #--------------------------------------------------------------------------------------- LTrim(Str) 左側の空白を取り除く RTrim(Str) 左側の空白を取り除く SubStr(Str,offset,length) 文字列の一部を取り出す Ms-sql:subString Upper(列名)ms-sql:ucase Lower(列名)ms-sql:lcase Ascii("あ") → 164 アスキーコードを返す Bin(8) → 1000 10進→2進 Char(50) → 2 Asciiコードを返す Char_Length/ Character_Length("MySQL") → 5 長さを返す Coalesce(s1,s2,s3...) Nullではない最初の文字列を返す Concat(s1,s2,s3...) 文字列の連結 Concat_ws(t,s1,s2,s3...) Join Conv("b",16,10) 16進のbを10進になおす Elt(3,s1,s2,s3...) 3番目(Str3)の文字列を返す Field(s,s1,s2,s3...) Eltの反対。文字列のある3番目を返す Find_In_Set(s,s1) カンマ区切りのs1中のsが何番目にあるか Format(1200,3) → 1200.000 Format(120.123456,3) → 120.123 小数点の位置を返す Hex(12) → C 16進 Insert("987654",3,2,"abcde") → 98abced54 S1中の3番目から2文字をs2全体と入替 InStr("tanaka","n") → 3 文字の位置を返す Locateと似てる LCase(s1) 小文字化 Left("abcdef",3) → Abc 最初から3番目までの文字列 Length Locate("n","tanaka") → 3 Lower LPads("123",10,"ab") → Abababa123 LPads("123",10,"abcdefghijk") → Abcdefg123 LTrim(s1) 先頭の空白を取り除く Make_set( 2,s1,s2,s3) → S2 Make_set( 2|4,s1,s2,s3) → S2,s3 Mid("this Is MySQL",3,10) → "is Is MySQL" V1番目からv2個の文字列を返す Oct(12) → 14 Octet_Length Lengthと同じ Position Locateと同じ Repeat( "abc",4 ) → Abcabcabcabc Replace( "MySQL","my","your") → "yoursql" 置換 Reverse("abc") → Cba Right("right")("abcdefg",4) → "defg" 末尾から4番目までの文字列 RPad("123",10,"ab") → 123abababa 詰める RTrim 右側の空白を除去 SoundEx 発音が似た文字に同じIDを返す Space(100) 空白100個を返す SubString SubString_index("www.123456.co.jp",".",2) → Www.123456 SubString_index("www.123456.co.jp",".",3) → 123456.co.jp SubString_index("www.123456.co.jp","co",1) → Www.123456. Trim 複雑 UCase Upper #--------------------------------------------------------------------------------------- 日付関数 #--------------------------------------------------------------------------------------- Year("2000-06-01") Year("00-06-01") → 2000 Month("2000-09-03") → 9 Hour("13:32:10") → 13 Minutes("13:32:10") → 32 Second("13:32:10") → 10 Date_add = Same As AddDate AddDate('2000-09-31',Interval 1 Month) → 2000-09-30 AddDate('2000-02-23',Interval 9 Day) → 2000-03-03 SubDate() = Date_sub AddDateの逆 SysDate() = Dayname("2000-06-01") → "thursday" 英語の曜日を返す CurDate Current_Date CurTime Current_Time Current_TimeStamp = Now="YYYY-MM-DD HH:MM:SS" Period_add(200005,18) → 200111 数値か月分を足す Period_diff(199905,200002) → -9 差分 Time_Format("13:31:12","%h時%i分" ) 時刻の書式を変更する Date_Format("2000-05-10","%m %d %y") → "may 10th,2000" フォーマット変換 DayOfMonth("2003-09-03") → 3 日付を返す DayOgWeek("2000-06-01") → 5 曜日(1-7(月-土))を返す DayOfYear("2000-12-31") → 366 その年の初めから何日目か MonthName("2000-09-03") → "september" Quater("2000-07-08") → 3 第何四半期か Week("2000-06-11") → 24 何週目か Weekday("2000-06-01") → 3 Dayofweekと似てる。こちらは(0-6(月から日)) Extract(year From "20010-1-11 18:24:19") → 2001 Extract(hour_minute From Now() → 1824 Sec_to_Time(86300) → "23:58:20"; Time_to_Sec("01:00:12") → 3612 From_Days(730700) → "2000-08-03"/グレゴリオ暦0年からの日数 To_Days("2000-01-01") → 730485/from_days()の対 From_UnixTime(1000000000) → "2001-09-09 1046:40" Unix_TimeStamp /from_Unix()の対 #--------------------------------------------------------------------------------------- 算術関数 #--------------------------------------------------------------------------------------- + - * / % Abs() ACos() ASin() ATan() ATan2() Ceiling(8.2) → 9 切り上げ Cos() CoT()cotangent Degress(v) ラジアンを角度に変換 Exp() Floor() Log10() Mod() Pi() Pow, Power() Radians 角度からラジアン Rand 0-1までの乱数 Round(2.56) → 2 Round(2.56125,3) → 2.561 Round(12.56125,-1) → 10 四捨五入 Sign -1 0 1 Sin() Sqrt() Tan() Truncate(1.23456,3) → 1.234 Truncate(1222,-1) → 1220 V1のv2桁以降を切り捨て #--------------------------------------------------------------------------------------- その他の関数 #--------------------------------------------------------------------------------------- BenchMark() Bit_count(1)=1 Bit_count(7)=3 ビットの数を返す Connection_ID() MySQLの接続IDを返す DataBase() 現在のDB名を返す Decode("Str","pass") Encodeの逆 Encode("Str","pass") Dncodeの逆 Blob型のデータのみ挿入可 Encrypt("Str") Get_Lock("Str",Num) 文字列と言う名前のロックを作成し、成功したら1を返す Last_Insert_ID Auto_incrementで最後に発行されたIDを返す 最初は0 Inet_AtoN("192.168.0.1") → 3232235521 Inet_NtoA("3232235521") → "192.168.0.1" Md5("Str") Password("root") → 6747... Release_Lock Get_locknoの反対 Session_User() Systemn_User() User() Version() #--------------------------------------------------------------------------------------- トランザクション #--------------------------------------------------------------------------------------- Set Transaction {read Only|read Write} Begin Transaction Commit Work Commit Transaction RollBack [work]; RollBack Transaction; SavePoint <セーブポイント名> Save Transaction <s..> RollBack to SavePoint <s...> RollBack Transaction Grant Select,ipDate, On Salaries to Jill With Grant Option; AutoCommit Cross Join/( 製品によって実装) #--------------------------------------------------------------------------------------- 入出力 #--------------------------------------------------------------------------------------- Load Data Csvデータのロード Infile 'csv入力ファイル名' [Ignore|replace] Into Table 表名 Fieleds Terminated By ',' デリミタ Ignore 1 Lines 一行目を無視してcsvデータのロード [ Options] Select .... Into Outfile 'csv出力ファイル名' Fields Terminated By ',' #--------------------------------------------------------------------------------------- セキュリティと保守 #--------------------------------------------------------------------------------------- Insert Into User Set User = "name", Password = Password( "12345" ), Host = "localhost"; Set Password = Password( '123' ); UpDate MySQL.user Set Password = Password( "789" ); Set Password = Password( '' ); Grant Select On Addreee_DB.jolist_t to Name Localhost Identified By "name_pass"; Flush Privileges;/# Privilege:特権・特典・権利 Flush (hosts|logs|privileges|status|tables|tables With Read Lock); Grant Select,insert On Address_DB.joblist_t to Name Localhost Identified By "name_pass", Name2 Localhost Identified By "name2_pass"; Grant Select On Address_DB.* to "name"; Grant Select(job_c) On Address_DB.joblist_t to Name Localhost Identified By "name_pass"; Select Job_c From Joblist_t; All Alter Create Delete Drop Index Insert Select UpDate Usage File Grant Process Reload ShutDown Revoke Select,insert On Address_DB.joblist_t From Name Localhost; #--------------------------------------------------------------------------------------- MySQLにないもの #--------------------------------------------------------------------------------------- Full Outer Join 完全外部結合 Exists Any All カーソル// Declare カーソル名 Open Fetch Close DeAllocate #--------------------------------------------------------------------------------------- || 文字列連結演算子 Ceiling(ceilと同じ。製品によって呼称が違う) #--------------------------------------------------------------------------------------- Lock Tables 表名 Write; UnLock Table; #--------------------------------------------------------------------------------------- MySQLでサポートされていないもの(p.24) 外部キーと参照整合性 トランザクション/コミット/ロールバック(処理速度犠牲) ストアドプロシージャ/トリガ(処理速度犠牲) サブクエリー(ほとんどの場合ジョインを使って回避できる) ビュー レコードごとのロック及び権限設定 ユニオン Select...Into Table... #--------------------------------------------------------------------------------------- 外部コマンド #--------------------------------------------------------------------------------------- IsamChk MyIsamChk IsamLog MySQL MySQLAccess MySQLAdmin MySQLBug MySQLD MySQLDump バックアップ MySQLImport MySQLShow Safe_MySQLD MySQL -u Root -p DB名 Password: MySQL -? --help |
SQLリファレンス.txt
MySQL