###この記事は、「MYSQL Must Know and Know」を学習した後、本にない内容を補足するためのものです。この本がMYSQLデータベースの紹介であることを強くお勧めします。!!!!
総括する:
use RUNOOB;このコマンドは、データベースRUNOOBを選択するために使用されます。
set names utf8;コマンドは、使用される文字セットを設定するために使用されます。セット名utf8は、クライアントとサーバー間で文字を転送するためのエンコード規則をUTF8として指定します。
set char set'gbk ';個人的な設定の問題により、中国語を表示および挿入できません。この文を追加する必要があると推定されます。
SELECT * FROMWebsites;データテーブルWebサイトの情報を読み取ります。
注:SQLでは大文字と小文字は区別されません。SELECTとselectは同じです。
最も重要なSQLコマンドのいくつかSELECT-
データベースからデータを抽出する
UPDATE-データベース内のデータを更新するDELETE-
データベースからデータを削除する
INSERTINTO-データベースに新しいデータを挿入する
CREATEDATABASE-新しいデータベースを作成する
ALTERDATABASE-データベースを変更する
CREATETABLE-新しいテーブルの作成ALTERTABLE-
データベーステーブルの変更(変更)
DROPTABLE-テーブルの削除
CREATEINDEX-インデックスの作成(検索キー)
DROPINDEX-インデックスの削除
正規表現で検索
正規表現は、テキストを照合するために使用される特別な文字列(文字セット)です。
正規表現
次のステートメントは、列prod_nameにテキスト12が含まれているすべての行を取得します。
prod_nameを選択します
製品から
ここで、prod_name REGEXP '12 '
ORDER BY prod_name;
注: LIKEとは異なります 。REGEXP「12」は12を含む文字列を参照し、LIKE「12」はprod_name = 12を参照します。
REGEXPに 続くものは、正規表現(テキスト本文12に一致する正規表現)として扱われます。
MySQLでの正規表現の一致では、大文字と小文字は区別されません(つまり、大文字と小文字の両方が一致します)。大文字と小文字を区別するには、WHERE prod_name REGEXP BINARY'JetPack.000 'などのBINARYキーワードを使用できます。
|使用法
2つの文字列(この文字列または他の文字列)のいずれかを検索するには、|を使用します。
正規表現 [123]トン。[123]文字のセットを定義します。これは、1、2、または3に一致することを意味します。
[]はORステートメントの別の形式です。実際、正規表現[123] Tonは[1 | 2 | 3] Tonの略です。
ただし、以下の手順の違いに注意してください
これは期待される出力ではありません。要求された2つの行が取得されましたが、他の3つの行が取得されました。これは、MySQLが「1」または「2」または「3トン」を意味すると想定しているためです。文字|がセットで囲まれていない限り、文字列全体に適用されます。
一致範囲
[0-9] 0-9内の数字に一致します
[az]は任意のアルファベット文字に一致します
特殊文字と一致させるには、\\をリーダーとして使用する必要があります。\\-は検索を意味し、\\。は検索を意味します。
作業を簡単にするために、文字クラスと呼ばれる事前定義された文字セットを使用できます。表9-2に、文字クラスとその意味を示します。
表9-2文字クラス
[クラス]説明
[:alnum:]任意の文字と数字([a-zA-Z0-9]と同じ)
[:alpha:]任意の文字([a-zA-Z]と同じ)
[:blank:]スペースとタブ([\\ t]と同じ)
[:cntrl:] ASCII制御文字(ASCII 0から31および127)
[:digit:]任意の番号([0-9]と同じ)
[:graph:] [:print:]と同じですが、スペースは含まれません
[:lower:]小文字([az]と同じ)
[:print:]印刷可能な文字
[:punct:] [:alnum:]にも[:cntrl:]にも含まれていない文字
[:space:]スペースを含む空白文字([\\ f \\ n \\ r \\ t \\ v]と同じ)
[:upper:]大文字([AZ]と同じ)
[:xdigit:]任意の16進数([a-fA-F0-9]と同じ)
\\((、 [0-9]は任意の数(この例では1と5)に 一致し、 sticks?はsticksとsticksに一致します(?sがsをオプションにした後、 ?はその前の任意の文字の0に一致するか1回出現するため) 、 \\)一致)。いいえ?スティックとスティックを一致させるのは非常に難しいでしょう。
前述のように、 [:digit:]は任意の数字と一致するため、数字のセットです。{4}では、その前の文字(任意の数字)が4回出現する必要があるため、[[:digit:]] {4}は 互いに接続された任意の4桁と一致します。
上記の例は、次のように書くこともできます。
これまでのすべての例は、文字列内の任意の場所のテキストと一致します。特定の場所のテキストを一致させるには、表9-4にリストされているロケーターを使用する必要があります。
数字で始まるすべての製品(小数点で始まる数字を含む)を検索する場合はどうなりますか?[0-9 \\。](または[[:digit:] \\。])の単純な検索は、テキスト内のどこかに一致するものが見つかるため、機能しません。解決策は、以下に示すように、^ロケーターを使用することです。
^ 一致文字列の始まり。したがって、 ^ [0-9 \\。]のみが一致します。または、文字列の最初の文字である場合は任意の数値。^がない場合は、さらに4つの個別の行(中央に数字がある行)を取得する必要があります。
LIKEとREGEXPの違いは、 LIKEは文字列全体に一致し、 REGEXPは部分文字列に一致することです。ロケーターを使用して、各式を^で開始し、各式を$で終了することにより、REGEXPをLIKEと同じにすることができます。
共通の日付と時刻の処理機能
機能説明
AddDate()は日付(日、週など)を追加します
AddTime()時間(時、分など)を追加します
CurDate()は現在の日付を返します
CurTime()は現在の時刻を返します
Date()は、日付と時刻の日付部分を返します
DateDiff()は、2つの日付の差を計算します
Date_Add()非常に柔軟な日付計算関数
Date_Format()は、フォーマットされた日付または時刻の文字列を返します
Day()は、日付の日の部分を返します
DayOfWeek()日付の場合、対応する曜日を返します
Hour()は、時間の一部を返します
Minute()は、時間の分の部分を返します
Month()は、日付の月の部分を返します
Now()は現在の日付と時刻を返します
Second()は時間の2番目の部分を返します
Time()は、日付と時刻の時間部分を返します
Year()は、日付の年の部分を返します
保存されたorder_date値は2005-09-0111:30:05であり、WHERE order_date = '2005-09-01'は失敗します。
このためには、Date()関数を使用する必要があります。Date(order_date) は、列の日付部分のみを抽出するようにMySQLに指示します。これにより、信頼性が向上します。
SELECTステートメントは