MySQLの管理を改善するためのいくつかの詳細

  
MySQLの場合、最初に覚えておかなければならないのは、コマンドの各行がセミコロン(;)で終わっているということですが、MySQLの行がPHPコードに挿入されるときmysql_query(< INSERT INTO tablename(first_name、last_name))VALUES( '$ first_name'、$ last_name ')");これもPHPがセミコロンで終わっているためです。余分なセミコロンは時々PHPのパーサを理解不可能にするので、それを省略するのが良いです。この場合、セミコロンは省略されますが、MySQLコマンドを実行すると、PHPによって自動的に追加されます。次の例を参照するには、連想配列を使用してクエリ結果にアクセスします。$ connection = mysql_connect(" localhost"、" shhh"); mysql_select_db(" winestore"、$ connection); $ result = mysql_query("; SELECT cust_id、surname、firstname FROM customer "、$ connection); while($ row = mysql_fetch_array($ result)){echo" ID:t {$ row ["cust_id"] n "; echo" Surnamet {$ Row [" surname"] n" echo"名:t {$ row [" firstname"]} nn";} function mysql_fetch_array()は、同時に2つの方法で使用できるクエリ結果の行を配列に入れる。 cust_idなどの参照は、2つの方法で使用できます。$ row [" cust_id"]または$ row [0]です。明らかに、前者は後者よりはるかに読みやすいです。複数表連続検査では、2つの列の名前が同じ場合は、別名を使用してそれらを区切ることをお勧めします。SELECT winery.name AS wname、region.name AS rname、FROM winery、region WHERE winery.region_id = region.region_id; $ row [" wname"]および$ row [" rname"]の場合、テーブル名と列名を指定する場合は、列名のみが参照される。SELECT winery.region_idFROM winery列名の参照は次のとおりである。 region_id"集約関数への参照は、参照名:SELECT count(*)FROM customer;列名の参照は、$ row [" count(*)"] TEXT、DATE、およびSETデータ型MySQLデータテーブルフィールドデータ型が定義されている必要があります。約25の選択肢がありますが、そのほとんどは単純明快で、それほど多くはかかりません。しかし言及する必要があることがいくつかあります。 TEXTはデータ型ではありませんが、一部の書籍では言われています。実際には、[LONG VARCHAR]または[MEDIUMTEXT]のいずれかになります。 DATEデータ型の形式は、YYYY-MM-DDです(例:1999-12-08)。 date関数を使用すると、現在のシステム時刻を次の形式で簡単に取得できます。date(" Ym-d")データ型では、減算して日数の差を取得できます。$ age =($ SETは複数の値を保持でき、ENUMは1つの値しか保持できないという点を除いて、ENUMの列挙と多少似ている便利なデータ型です。さらに、SETタイプは最大64個の事前定義値しか持てませんが、ENUMタイプは最大65,535個の事前定義値を処理できます。 64個を超える値を持つコレクションが必要な場合はどうすればよいですか?次に、問題をまとめて解決するために複数のコレクションを定義する必要があります。 mysql_unbuffered_query()を使用して高速なスクリプトを作成するこの機能は、mysql_query()関数の代わりに使用できますが、主な違いは、mysql_unbuffered_query()は、クエリを実行した直後にデータベースを待機またはロックせずに戻ることです。ただし、出力結果セットのサイズが不明なため、返される行数をmysql_num_rows()関数で確認することはできません。ワイルドカードワイルドカードには、' *'と'%'の2つがあります。さまざまな状況で使用されます。たとえば、データベースのすべての内容を表示したい場合は、次のように照会します。SELECT * FROM dbname WHERE USER_ID LIKE '%';ここでは、両方のワイルドカードが使用されます。それらは同じことを意味しますか?それらはあらゆる文字列に一致するために使用されますが、それらは異なるコンテキストで使用されます。 ' *'はフィールド名との一致に使用され、'%'はフィールド値との一致に使用されます。注意を引くのが簡単ではないもう1つの分野は、 "%"と "ワイルドカード"をLIKEキーワードと一緒に使用する必要があることです。ワイルドカード、アンダースコア' _'もあります。これは、上記とは異なるもので、任意の1文字に一致させるために使用されます。 NOT NULLおよび空のレコードユーザーが何も入力せずに送信ボタンを押すとどうなりますか?値が必要な場合は、データ検証にクライアントサイドスクリプトまたはサーバーサイドスクリプトを使用できます。ただし、データベースでは、いくつかのフィールドは空にすることが許可され、何も入力されていません。そのようなレコードに対して、MySQLはそれのために何かをするでしょう:デフォルトのアクションである値NULLを挿入します。フィールド定義でNOT NULLを宣言した場合(このフィールドを作成または変更するとき)、MySQLはこのフィールドを空白のままにし、何もしません。 ENUM列挙型のフィールドの場合、NOT NULLを宣言すると、MySQLは列挙型セットの最初の値をそのフィールドに挿入します。つまり、MySQLは列挙型セットの最初の値をこの列挙型のデフォルトとして使用します。値がNULLのレコードと空のレコードの間にはいくつかの違いがあります。ワイルドカード%は空のレコードと一致しますが、NULLレコードとは一致しません。ある時点で、この違いは意図しない結果を招く可能性があります。私の経験に関する限り、どのフィールドもNOT NULLと宣言するべきです。非常に多くのSELECTクエリが機能します。 NULLを検索するときは、' IS'キーワードを使用する必要があります。LIKEは機能しません。最後に言及することは、新しいフィールドを追加または修正する前にデータベースにレコードがある場合、元のレコードに新しく追加されたフィールドの値はNULLであるか、それが空です。これはMySQLのバグでもあるので、この場合は特別な注意を払ってSELECTクエリを使用してください。 Xiaobian推奨:PHPMyAdmin(MySQLデータベース管理)の公式最新版[system home] www.xp85.comからこの記事をダウンロードしてください
Copyright © Windowsの知識 All Rights Reserved