Pythonのデータベース・インフラストラクチャ

1.データ・タイプ:(原理:行に十分な、可能な小)の範囲の

整数:int型、ビット
小数10進
文字列:VARCHAR(可変長)、CHAR(固定長の文字列)
日付時刻:日付、時刻、日時
列挙型(列挙型)
特別な情報
2制約(上限)
主要:
主キー主キー:物理ストレージ順序
非空nullでない空間に充填させた
ユニークなユニークが:複製することができない
デフォルトのデータ項目:デフォルトデフォルト
外部キー外部キー:別のテーブルの主キーを格納するフィールド
その他:
符号なし符号なしの
自動インクリメントインクリメント
4.共通の用語:
データベース:データベースは、関連テーブルの集まりです。
データ:表は、行列データです。データベーステーブルでは、簡単なスプレッドシートのように見えます。
カラム:1(データ要素)は、郵便番号と同じデータを含みます。
行:1(=タプルまたはレコード)は、ユーザ・サブスクリプション・データのような関連データのグループです。
冗長性:ストアは2倍のデータの冗長性、パフォーマンスが低下しますが、データのセキュリティを向上させます。
主キー:主キーはユニークです。データテーブルは、1つのプライマリキーを含めることができます。あなたは、データを照会するために、主キーを使用することができます。
外部キー:2つのテーブルを関連付けるための外部キー。
複合キー:複合キー(キーの組み合わせ)は、典型的には、複合インデックスに使用される複数の列としてインデックスキー、。
インデックス:インデックスを使用すると、すぐにデータベーステーブル内の特定の情報にアクセスすることができます。データベースのインデックス値は、テーブル内の1つまたは複数の列が構成をソートされています。類似した図書のカタログ。
参照整合性:関係の整合性は、参照エンティティーが存在しない要件を参照するには許可されていません。整合性は、目的がデータの一貫性を確保することである、満たされなければならない実体関連モデルの整合性制約です。
5.Mysqlデータベースエンジン:
INNODB支持トランザクション(データ要素が改変された場合に全体のデータ要素をロックするための)行レベルのロック
を超えるサポートしていないのMyISAM

前記共通のコマンドライン・コマンドとステートメント
注意:「 - 」
のパラメータ名後の二つのパラメータで、さまざまな状況のために間違われることなくパラメータの整合性を確保するために、「〜」の追加

のmysql -uユーザ名-pパスワード:クライアントへの

表示をすべてのデータベース:ショーのデータベースを、

すべての時間を示しています。今選択();

表示バージョン:選択バージョン();

データベースを作成する:
デフォルトパラメータを作成する:データベースのデータベース名を作成する
データ符号化フォーマットを指定する:文字セット=エンコーディングフォーマット名のデータベースのデータベース名を作成して

表示データベース(パラメータ)を作成する:ショーの作成データベースのデータベース名が作成されました。

データベースを削除します。データベースを削除:ドロップデータベースデータベース名を、

現在使用されているデータベースを選択したデータベースを(参照);

指定されたデータベースを入力します。データベース名を使用して、

テーブルのテーブル名(フィールド型の制約[、フィールドの型制約を])を作成したデータテーブルを作成し、

表示データ構造のテーブル項目:; DESC名は、

現在のデータベースのすべての名前を表示する:表示テーブルと、

指定されたテーブルにデータを挿入:テーブル値(フィールド値列(表によって定義された順序))に挿入するには、
テーブルの構造を示します。showテーブルのテーブル名を作成します。
すべてのデータ指定されたテーブルを選択:テーブル名から選択*;
時間監視機能に:= 1セットプロファイリングを、
履歴照会や実行時間のステートメントを示します。showプロファイル;
7.データシートを変更します。
フィールドを追加します。変更しますテーブルデータテーブルには記載されている種類を追加、
変更されたフィールド(非改称):リストされているタイプと制約を変更するテーブルデータテーブルを変更し、
(名前の変更)変更されたフィールド:表データテーブルは、新しい列名のタイプの元の列名を変更するには、ALTER制約;
フィールドを削除:ドロップテーブルの列名のテーブル名を変更し、
テーブルを削除:テーブル名をドロップします。
8.テーブル内のデータを変更します によると:
ヌルまたはデフォルト、主キーをインクリメントし、値が0を埋めることができ、テーブルの値(フィールド値の配列)に挿入:挿入データ
部分的に挿入された(非空のフィールドと他のフィールド)の値(フィールド値系列)テーブルに挿入する
複数インサートライン:で囲まれた値の複数の配列「」分離された

削除データ:
物理削除:テーブルから削除し、[条件]、使用しない方が良いのすべてのデータを削除した後に条件なし主要ドロップ
墓石ました:フィールドの値の更新により、フラグフィールドデータを変更した追加
一般的に用いられている墓石は、
データを変更する:ここで、条件更新テーブルセットフィールド名=フィールドの値が、(ここで、テーブルにすべてのデータを変更することなく文)
クエリデータ:
SELECT *テーブル名から[条件がどこ]; *すべてのフィールド(列)を意味する
[別名として] SELECT Nameフィールド、フィールド名[別名として]テーブルから[ここで、条件];フィールド名を逆にしてもよい

9データベースクエリを:
条件クエリ:
比較演算子> 、> =、<= ,! =、=(<>)
論理演算子ANDまたは
ファジー問い合わせ:のような条件フィールドの値のようなフィールド名
%値は「小」の文字を終了するような「小%」名前のフィールド名(ワード名前欄の冒頭に「小さい」)「小さな%」のような1つまたは複数の名前の交換は
_「__」(名前フィールド値のような名前を置き換えます)のような名前二つの単語が存在しなければならない「__%」名フィールドは、少なくとも2つの文字が含まれ
たクエリにマッチする正規表現:正規表現文字列のようなRLIKEフィールド名

範囲クエリ:
)値のセット(フィールド名:中に
いないで
BETWEENと:値1と値2との間のフィールド名
ではない間:フィールド名ではない値1と値2との間には(不ないの間でエラーを回避するために括弧缶の後覚え)
ヌル/ヌル決意フィールドの値がNULLでないかどうかである

10並べ替え:最後のクエリのフィールド名に加えて、下降DESCを昇順により、デフォルトの順序で、ソートされたフィールドの値が主ソートキーによると、同一である、
複数のソート条件:名フィールドによって1つのオーダー、2フィールド名、フィールド最後に、一次ソートキー昇順によれば、基準値フィールドに等しい場合、図3に示すように、そう1の同じフィールド値をプッシュする場合には、フィールド値2に従って分類した

:11集計関数
カウント数:選択します COUNT(*)テーブルから[別名として]ここで、条件;
最大値max:最大値(フィールド名)テーブルから[条件]を選択し、
総合計:選択和(フィールド名)テーブルから[条件]、
最小値MIN:テーブルからミニ(フィールド名)を選択し、[条件];
平均平均:テーブルからの平均(フィールド名)を選択し、[WHERE条件];テーブルから合計(フィールド名)/ COUNT(*)を選択するために同等の[条件];
いくつかの小数点以下の桁の後に保持ラウンド値(中央値):選択ラウンド(AVG(フィールド名)、2)テーブルから[ここで、条件];


12。グルーピング:重合、または全く意味と組み合わせて使用されなければなりません。
フィールド名によってグループ:構造をソートすることによって、フィールド名最初のクエリグループ条件テーブルから選択フィールド名[、集約関数()]、SELECT文の各々と、各実行
GROUP_CONCAT(フィールド名、[他の文字、フィールド名] )次いで、ブラケットなど)(group_catするクエリ結果における複数のフィールドの構成を使用して、グループ、および同じグループの単一の行に表示されています。カンマで区切られたデフォルト
条件を有する:条件でパケットをフィルタで使用グループに満足しない

。13.結果数量
制限:通常、最終的な排出
量制限
限界初期位置(ゼロ)、番号
14は、クエリに参加します。
コネクタ(交差)内参加:=表に表2フィールドのフィールドを表2に結合テーブル内1 SELECT * FROM
:外部接続
左を接続左ジョイン:参照テーブルの左側は、クエリに参加する
権利右参加接続
15違いを.havingと場所:前者は条件は、クエリ結果の声明、元の表の後者の判決前に満たされているかどうかを判断します。
テーブルのフィールド値を別のテーブルとフィールドの値を使用する:自己会合が16
17サブクエリを:以下使用することを推奨
ネストされたクエリのクエリ条件その他

:設計仕様18表
パラダイム:
各パラダイム1NFの最初のフィールドをもはや分割
二パラダイム2NFが主キーを持っている必要があり、マスターキーは、主キー以外の複数のフィールドを持つことができない主キーの代わりに、主キーの部分全体に依存しなければならない
第三のパラダイム3NFのの

19.pythonリンクされたデータベース:
:全体の手順
データベースに接続する
カーソルを取得するにはオブジェクトは、
ステートメントが実行される実行
カーソルオブジェクトを閉じるために、
接続クローズ

pymsql impirtからの*#インポートモジュール関連付けられた
接続名=接続(パラメータリスト)接続オブジェクトのインスタンスのインスタンスを
パラメータ:
ホスト:IPに接続するための目標MySQLのホスト、このマシンは「localhost」がある
ポート:デフォルトの3306に接続するには、対象のMySQLホストポート
データベース:データベースの名前
ユーザー:ユーザー名、接続
パスワード:パスワードの接続
文字セット:通信を採用エンコーディング、UTF8推奨
カーソル名=接続インスタンス名.CURSOR()#カーソルカーソル・オブジェクトをインスタンス化
結果=番号カーソル名.execute(SQLステートメント)位のSQL文を実行し、クエリ結果の数を返す
カーソル名.fetchoneを() #ストリップ上で実行されるステートメントの実行の結果を得る
(番号)#実装ステートメント片結果カーソル名.fetchmany
カーソル名.fetchall


20が接続CRUDの例.commit()を使用するために、最後の実行を取り消します接続.rollback()の使用例


:前進21.mysql
ビュー:直接クエリからなる表1の結果を、またはテーブルのいくつかから。理解するのは簡単:仮想テーブル、隔離データベースやプログラムのSQL文。ビューを更新することはできません、あなたがそれに関連付けられたテーブルで更新データ内のデータを表示できるように仮想であることは、ビューを使用する場合、それは一時的に作成されます、即時実行を作成しません更新され
声明を:としてビューのクエリビュー名を作成します
トランザクション:一連の操作は、これらの操作は、いずれかの実行中または実行されず、作業の不可分の単位です。
各ステートメントのためのmysqlコマンドラインデフォルトは、業務を開いたpymsql取引ではデフォルトでオンになっていなかった、手動でコミットやロールバックする必要があります。
4つの特性:ACID
アトミック(原子性)、トランザクションはもはや、分割されたトランザクションのすべての動作シーケンスが正常に実行され、コミットまたはバックすべてのロールのいずれかを基本単位として扱われていないが失敗した
一貫性(整合性)を一度一貫した状態から転送され別の一貫性のある状態、トランザクションが正常に元の状態を維持する失敗、状態データベースに転送が実行されます。
最終的な提出の前に変更を加える分離(アイソレーション)会社が、他のトランザクションには見えません。
永続(Durablity)、データベースに永続的に保存された彼らのを修正するために行われます成功した場合、トランザクションを提出します。
使用フレームワーク:
方法1:
トランザクションを開始、
一連の操作を実行し、
コミット;
第二の方法:
開始:
動作シーケンスは
コミット;

インデックス:データテーブルの参照ポインタのすべてのレコードを含むファイルの特別な種類、。人気は、データベースクエリの速度を向上させ、カタログとして理解しました
非文字列の長さを指定していないテーブル名(フィールド(長さ))上のインデックスインデックス名を作成し
たインデックスをクエリ、インデックスに参加した後、大幅に検索スピードアップに役立ちます
目的:クエリのパフォーマンスを向上させるために、アナログ辞書
原理:Bツリーレコードの設立を通じて、組織のアドレスと、クエリで並べ替えがすぐにいくつかのトラバーサルアルゴリズムによって位置し、暗記することができ
、主キーと外部キーは自動的にインデックスが作成され
、ビューインデックス:テーブル名からショーのインデックスを、
インデックスを削除:テーブル名にインデックスインデックス名をドロップ;
短所:これは、テーブルの挿入の負担を増やし、更新します
からマスター:




おすすめ

転載: www.cnblogs.com/burningcarbon/p/11220186.html