「MYSQLは知っている必要があります」詳細な補足コンテンツはありません

###この記事は、「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ステートメントは

 

おすすめ

転載: blog.csdn.net/zangba9624/article/details/103888637