Mysql文法、特殊符号及び正規表現の使用詳細


Mysql常用表示コマンド
1、現在のデータベースサーバのデータベースリストを表示します。mysql> SHOW DATABASES;注意:mysqlライブラリにMYSQLのシステム情報があります。暗証番号を変更して、ユーザーを追加します。実はこのライブラリで操作します。
2、データベースに入る:mysql> USE ;2、データベースのデータテーブルを表示します。mysql> SHOW TABLES;3、データテーブルの構造を表示する:mysql> DESCRIBE ;4、データベースを作成する:mysql> CREATE DATABASE ;5、データテーブルを作成する:

mysql> USE   ;
mysql> CREATE TABLE    (    VARCHAR(20),     CHAR(1));
6、データベースの削除:mysql> DROP DATABASE ;7、複数のデータテーブルを削除する:mysql> DROP TABLE , ;8、表のレコードを空にする:mysql> DELETE FROM ;9、表示テーブルの記録:mysql> SELECT * FROM ;10、新しいフィールドを表に挿入します。mysql> alter tabel add column varchar(10);10、表にレコードを挿入する:mysql> INSERT INTO VALUES (”hyq”,”M”);構文:

INSERT [INTO] tbl_name [(col_name,...)] VALUES (PRession,...),…
INSERT [INTO] tbl_name SET col_name=expression, ...
Note:djangoにidフィールドを追加します。INSERT INTOテーブル名VALES(1,'aaa'、'bb')
11、フィールドの種類を変更します。

mysql> alter table    modify column     varchar(12);
11、表のデータを更新する:

mysql-> UPDATE    SET    1='a',   2='b' WHERE    3='c';
12、データをテキストでデータテーブルに読み込みます。

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE   ;
13、導入.sqlファイルコマンド:

mysql> USE     ;
mysql> SOURCE d:/mysql.sql;
14、命令行でrootパスワードを変更する:

mysql> UPDATE mysql.user SET password=PASSWORD('   ') WHERE User='root';
mysql> FLUSH PRIVILEGES;
15、useのデータベース名を表示します。

mysql> SELECT DATABASE();
16、現在のuserを表示します。

mysql> SELECT USER();
ノート:
1.操作はすべてMySQLのプロンプトで行い、各コマンドはセミコロンで終了します。
2.sql文は大文字と小文字に敏感ではない。
MySQLインデックス使用規則
インデックスのための最良の代替データ列は、WHERE子文、join子文、ORDER BY、またはGROUTP BYの子文に現れたものです。
どのような状況でインデックスを構築しないといけませんか?
a.表の記録が少なすぎる
b.よく挿入、削除、修正する表
c.常にメインフィールドと一緒にクエリーを行うが、メインフィールドのインデックス値が比較的多いテーブルフィールド
複合インデックスの作成:
たとえば、ある文はこうです。

select * from users where area='beijing' and age=22;
私たちがaraとageで別々にインデックスを作成すると、mysqlクエリは毎回一つのインデックスしか使えないので、インデックスを作らない時は全表スキャンで多くの効率を上げますが、ara、ageの二列に複合インデックスを作成するとより高い効率をもたらします。
私たちが複合インデックスを作成した場合、(ara、age、salary)、(ara、age、salary)、(are、age)、(ara)の3つのインデックスが作成されたのに相当します。これは、最適な左プレフィックスと呼ばれます。
コンポジットの確立および最左プレフィックスの原則:
索引の文字列データ列が必要な場合は、任意の適切な場合に、プレフィックスの長さを指定したほうがいいです。CHAR、VRCHARR、BINARY、VRBINARY、BLOB、TEXTデータ列のプレフィックスをインデックスできます。
表のstate、city、zipデータ列に複合インデックスを作成したと仮定します。インデックスのデータ行はstate/city/zip順に並べられていますので、自動的にstate/city/zip順に並べられます。これは、クエリーでstate値のみを指定しても、またはstateとcity値を指定しても、MySQLはこのインデックスを使用することができます。したがって、このインデックスは、次のようなデータ列の組み合わせを検索するために使用されます。(state、city、zip)(state、city)(state)
インデックスにはNULL値の列は含まれません。
列にNULL値が含まれている限り、インデックスには含まれません。コンポジットにはNULL値が一列ある限り、このコンポジットは無効です。したがって、データベースの設計において、フィールドのデフォルト値をNULLとしないようにします。
mysql検索は一つの索引だけを使います。
したがって、where子文にインデックスが使用されていると、order byの列はインデックスを使用しません。したがって、データベースのデフォルトの並べ替えは、順序付け操作を使用しないでください。複数の列の並べ替えはなるべく含まないでください。これらの列に複合インデックスを作成するのが一番いいです。
普通はlike操作を奨励しません。
どうしても使わなければいけないなら、どうやって使うかも問題です。like「%a%」はインデックスではなくlike「aaa%」はインデックスで使用できます。
列で演算しないでください。
NOT INを使わない操作:
NOT INはインデックスを使わずに全表スキャンします。NOT INはNOT EXISTSで代替できます。
mysql特殊記号
%(パーセント):
任意の長さ(長さ0)を表す文字列例:a%bはaで始まり、bで終わる任意の長さの文字列を表します。acb、addgb、abなどのように、このマッチングストリングを満足させます。下の横線):
任意の1文字を表す例:a_bはaで始まり、bで終わる長さ3の任意の文字列を示す。acb、afbなどはこのマッチングを満足します。
文字列引用符:
SQLでは、文字列の引用符を表します。単引用符(')を使用することを強く推奨します。MySQL(PHPとの最適な組み合わせ)もダブルクォーテーションマーク(「)を使用できますが、sql server(WINDOWSプラットフォーム上の強力なデータベースプラットフォーム)とOracle(大手サイトデータベースプラットフォーム)を統合するために、シングルクォーテーションマークを使用することを提案します。文字列にシングルクォーテーションマークがある場合は、SQLの中でシングルクォーテーションマーク(')に置換する必要があり、DBMSはシングルクォーテーションマークと解釈します。
SQLの改行と文字列のコネクタ:
MySQL(PHPとの最適な組み合わせ)、sql server(WINDOWSプラットフォーム上の強力なデータベースプラットフォーム)とOracle(大規模ウェブサイトデータベースプラットフォーム)では異なりますが、以下にリストで表示されます。MySQL(PHPとの最適な組み合わせ)sql server(WINDOWSプラットフォーム上の強力なデータベースプラットフォーム)Oracle(大手ウェブサイトデータベースプラットフォーム)改行または\rまたはCHAR(10)CHR(13)文字列コネクタCONCAT()+||またはCONCAT()
マクロ変数識別子(&):
Oracle(大手サイトデータベースプラットフォーム)には特殊な意味があります。マクロ変数識別子です。SQLPLTSでSELECT'AAA BBB'AS STR FROM DUALを実行すると、マクロ変数値を入力するようにヒントが与えられます。SQLに(&)があれば、SELECT'AAA'||||ビ|||||;|||;|;|;;;|;;;;;;;;|;;;;;;;;BBB'AS STR FROM DUALは提示しません。
mysql正規表現
replace、regexpの使い方

0 Comments | This entry was posted on Apr 08 2010
mysql replaceの使い方
1.replace into

replace into table (id,name) values('1′,'aa'),('2′,'bb')
この文の役割はテーブルテーブルテーブルに2つのレコードを挿入することです。メインキーのIDが1か2が存在しない場合
に相当します

insert into table (id,name) values('1′,'aa'),('2′,'bb')
同じ値があるとデータは挿入されません。
2.replace(object、search、replace)
objectに出現するsearchの全てをreplaceに置き換えます。

select replace('www.163.com','w','Ww')―>WwWwWw.163.com
例:テーブルテーブルテーブルのnameフィールドのaaをbbに置き換える

update table set name=replace(name,'aa','bb')
―――――――――――――――――――C
正規表現を拡張
MySQLによって提供されるパターンマッチングの他のタイプは拡張正規表現を使用する。これらのモードをマッチングテストするとき、REGEXPとNOT REGEXPのオペレータ(またはRLIKEとNOT RLIKEとは同義語である)を使用する。
正規表現を拡張するいくつかの文字は以下の通りです。
・'''は任意の文字にマッチします。
・文字類「...」は、四角い括弧内の任意の文字にマッチします。例えば、「[a b c]」は、「a」、「b」、または「c」に整合する。文字の名前を付ける範囲に「-」を使います。a-z''は任意の文字にマッチし、「0-9」は任意の数字にマッチします。
・「*」は0文字以上の前の文字にマッチします。例えば、「x*」は任意の数の「x」文字にマッチし、「0-9」は任意の数の数字にマッチし、「.*」は任意の数の文字にマッチします。
REGEXPモードがテストされた値のどこかに整合すると(LIKEモードとは違って全体の値と一致するだけでモードが一致する)モードが一致します。
パターンを特定するためには、テストされた値の開始または終了に一致しなければならず、モードの開始に「^」またはモードの最後に「$」を使用する。
拡張正規表現がどのように動作するかを説明するために、REGEXPを使って上記のLIKEクエリを書き換えます。
「b」で始まる名前を探すために、「^」を使って名前に合うスタートです。

mysql> SELECT * FROM pet WHERE name REGEXP ‘^b';
[mysql正規表現]
[mysqlデータベースから削除します。JPで始まるテーブルではありません。]
締め括りをつける
以上は小编が绍介したMysql文法、特殊符号及び正规表式の使い方です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。