記事のディレクトリ
1.簡単に言えば
MySQLはあるリレーショナルデータベース管理システム、リレーショナルデータベース別々のテーブルにデータを格納するために、従って速度及び改善された柔軟性を増加させるかなり大きな倉庫内のすべてのデータを置くよりも、。
データベース(データベース)は、編成格納およびデータ管理するデータ構造に応じた倉庫。各データベースは、1つまたは複数の異なるAPIは、(アプリケーションのインターフェイス、インターフェイスのプログラミングアプリケーションのプログラミング)、アクセスを作成、管理、検索するために使用され、保存されたデータをコピーされています。我々はまた、ファイル内にあることが、ファイル比較的低速のデータ記憶装置にデータを読み書きすることができます。だから今、私たちは店にリレーショナルデータベース管理システム(RDBMS)を使用し、大量のデータを管理します。
リレーショナルデータベースは、上に構築されているリレーショナルモデルデータベース内のデータを処理するために代数的及び他の数学的な概念および方法のセットによって、データベースに基づきます。
リレーショナルデータベース管理システム(RDBMS)の機能
- データは表形式で提示されます
- 各種記録名の各行動
- 記録されたデータフィールドに対応する各列名
- 多くの行とフォームの列
- いくつかのフォーム組成データベース
RDBMSの用語
- データベース:データベースは、関連テーブルの集まりです。
- データ:表は、行列データです。データベーステーブルでは、単純なスプレッドシートのように見えます。
- カラム:1(データ要素)、例えば郵便番号などのデータを、同じタイプを含みます。
- 行:1(=タプルまたはレコード)は、ユーザ・サブスクリプション・データのような関連データのグループです。
- 冗長性:二倍くらいのデータの冗長性などの店舗では、パフォーマンスは低下しますが、データのセキュリティを向上させます。
- 主キー:主キーはユニークです。データテーブルは、1つのプライマリキーを含めることができます。あなたは、データを照会するために、主キーを使用することができます。
- 外部キー:2つのテーブルを関連付けるための外部キー。
- 複合キー:複合キー(キーの組み合わせ)は、典型的には、複合インデックスに使用される複数の列としてインデックスキー、。
- インデックス:データベーステーブルのインデックスを使用することができますすばやくアクセス固有の情報。データベースのインデックス値は、テーブル内の1つ以上の列で構成をソートされます。類似した図書のカタログ。
- 参照整合性:関係の整合性は、参照エンティティーが存在しない要件を参照するには許可されていません。整合性は、目的がデータの一貫性を確保することである、満たされなければならない実体関連モデルの整合性制約です。
分類データベース
リレーショナルデータベース(SQL)
- MySQLのは、Oracle、SQL Serverの、DB2、SQLlite
- 、学生情報テーブル、タイムシート......:データは、以下のようなテーブル間の行と列との関係によって記憶され
非リレーショナルデータベース:(NoSQLの)未のみ
- Redisの、MongDB
- オブジェクト自体の特性によって決定される非リレーショナル・データベース、オブジェクト・ストレージ、。
2.インストールチュートリアル
- MySQLのインストール
します。https://www.cnblogs.com/hellokuangshen/p/10242958.htmlチュートリアル - SQLyogのインストール
①SQLyogのインストールにEXEファイルをダブルクリックして
登録②を
③開き、データベース接続
④新しいデータベース・スクール作成
⑤新しいテーブルの学生を
- データベース接続へのコマンドライン接続
3.運用データベース
データベースの動作>データベーステーブルの操作>テーブル運転データ、データベースの
MySQLのキーワード大文字と小文字を区別しません
データベースコマンド3.1の基本的な操作
(1)データベースの作成
データベース名[NOTが存在する場合]をCREATE DATABASEは、
(2)は、データベースを削除
; DROP DATABASEをデータベース名[IFは、EXISTS]
(3)データベースの使用
あなたのテーブルやカラム名に特殊である場合は、Tabキー上記を文字、我々は``持参する必要が
使用することを数据库名
;
(4)閲覧すべてのデータベースは、
データベースを表示します
3.2データベースのカラムタイプ
(1)数値
- TINYINT非常に小さなデータの1バイト
- SMALLINT 2は、より小さなデータバイト
- 3バイトのMEDIUMINT中規模データ
- int型の一般的な標準バイト4のint型の整数
- 大きなデータ8バイトBIGINT
- フロートフロート4バイト
- 倍精度浮動小数点数8バイト(精度の問題!)
- フロート財務計算進文字列、一般的には、小数点を使用することです
(2)文字列
- 0〜255の固定サイズの文字列
- 0〜65,535の共通変数の文字列からvarchar型の文字列変数
- マイクロテキストTINYTEXT 2 ^ 8--1
- 大規模なテキスト保存したテキストテキスト文字列2 ^ 16-1
(3)日時
- 日付YYYY-MM-DD、日付フォーマット
- 時間HH:mm:ssの時間形式
- 日時YYYY-MM-DD HH:mm:ssの形式で最も一般的に使用される時間
- ミリ秒単位の現在の数にタイムスタンプタイムスタンプ1970年1月1日!また、より一般的に使用されます!
- 年を表す年
(4)NULL
- 値なし不明ありません
- NULL操作を使用しないように注意してください、結果はNULLです
3.3データベースのフィールド属性(フォーカス)
(1)符号なし
- 符号なしの整数
- 列が負に宣言することはできません声明
(2)zerofifill
- 0埋め
- 0、INT(3)を充填するために使用されるビットの数が不十分、5から005まで
(3)増加
- 一般+ 1(デフォルト)の記録に基づいて自動的にインクリメント理解
- 一般的にユニークなプライマリキー〜インデックスを設計するために使用され、タイプは整数でなければなりません
- これは、開始とステップから主キーによってカスタム設計することができます
(4)非空NULL NOT NULL
- それに割り当てられていない場合ではないnullに設定仮定には、エラーになります!
- あなたが値を記入していない場合はnullは、デフォルトはnullです!
(5)デフォルト
- デフォルト値を設定してください!
- この列の値が指定されていない場合、セックス、男性のデフォルト値は、デフォルト値があるでしょう!
3.4データベース・テーブルを作成する(フォーカス)
- テーブルSTUDENT1を作成します。
- フォーマット
CREATE TABLE [NOT存在する場合]表名
(
「フィールド名」列タイプ[属性] [インデックス] [注]、
「フィールド名」列タイプ[属性] [インデックス] [注]、...
「フィールド名」列タイプ[プロパティ]を] [インデックス] [注]
)[テーブル型] [文字セット] [ノート]
表3.5データ型
- データベースエンジンについて
のInnoDBデフォルト、高セキュリティ、トランザクション処理、マルチテーブルマルチユーザ・オペレーティング・
利用のMYISAM初頭、省スペース、高速化
- 物理的なスペースは、の位置に存在する
すべてのデータベースファイルが存在しているデータディレクトリするデータベースに対応したフォルダの下
のファイルを保存したり、自然 - 物理ファイルでのMySQLのエンジンの違いは、
InnoDBは唯一のデータベースファイル内のテーブル* .FRM、親ディレクトリのファイルibdata1とのある
MYISAM対応するファイル
* .FRMテーブル構造定義ファイル
* .MYDデータファイル(データ)
*インデックス.MYIファイル(インデックス) - エンコーディングデータベーステーブルの文字セットの設定
CHARSET = UTF8が
設定されていない場合は、MySQLのデフォルトの文字セットエンコーディング〜(中国語をサポートしていません!)になります
MySQLのデフォルトエンコーディングは中国をサポートしていません、のLatin1である
にmy.iniファイルで設定をデフォルトエンコーディングを
character-セットサーバー= UTF8
3.6修正、削除テーブル
(1)テーブルを変更します。ALTER TABLEテーブル名RENAME古い新しいテーブル名として
EG:ALTER TABLE RENAME AS teacher1先生
(2)フィールドのテーブルを増やす:ALTER TABLEテーブル名ADDは属性フィールドをランク付けし、[]
EG:ALTER TABLEのADDのteacher1を年齢INT(11)
フィールド(3)は、(制約を変更し、名前を変更!)テーブルに変更します。ALTER TABLEテーブル名フィールドには、属性を変更[]にランク
EG:ALTER TABLE MODIFY teacher1年齢VARCHAR(11)
(4)同じ名前のフィールド: ALTER TABLEテーブル名CHANGE古い名前新しい名前の列属性は、[]
EG:ALTER TABLE teacher1 CHANGE年齢AGE1 INT(1)
フィールド(5)テーブルを削除するには:ALTER TABLEテーブルDROPフィールド名
EG:ALTER TABLE teacher1 DROP AGE1
(6)テーブルを削除:表が存在する場合は、その後、削除
例:DROP TABLE IFはteacher1をEXISTS
注意:
- 操作に加えて判断を作成および削除するすべての試みエラーを回避するために、〜
- ``フィールド名は、このパッケージを使用します!
- 単一行コメント- -複数行コメント/ / **
- SQLキーワードは大文字と小文字を区別しません、私はあなたが小文字を書くことを示唆しています
- 英語ですべてのためのすべてのシンボル!
4. MySQLのデータ管理
4.1外部キー
同じ「キー」と「インデックス」でのMySQLが定義され、外部キーと主キーのインデックスと同じでは1です。違いがあることであるMySQLは、自動的にすべてのテーブルの主キーのインデックスが、外部キーフィールドのために明確にユーザーがインデックス化されている必要があります。外部キー関係のフィールドは、明示的に参照テーブルのすべてにインデックスを作成する必要があり、InnoDBは自動的にインデックスを作成しません。
外部キーは、一つへの1つであることができる、レコードテーブルのみを別のテーブルのレコードに接続されている、または多くの1つ、別のテーブルの接続テーブルを複数の記録します。
利点は次のとおりです。あなたは、データの一貫性を確保するために、いくつかのカスケード操作を実現するために結合された二つのテーブルを作ることができます。データの一貫性、整合性、外部キーテーブルに格納された制御データの主な目的。協会は見た目になるように2つの表の外部キー列が唯一の基準値を形成しています!データの整合性を保証するために、いくつかカスケード動作を達成するために、二つのテーブルが関連するようにしてもよいです。
方法1:制約を追加して、テーブルを作成するときは(トラブル、より複雑な)は
、あなた必要があります最初に削除参照の他の誰かのテーブルを外部キー関係のテーブルを削除し、(表から)参照されるテーブル(プライマリテーブル)を削除
第二の方法:外部キー制約を追加し、成功した後にテーブルを作成して
操作がデータベースレベルでの物理的な外部キー、外部キーをしている上に、私たちはお勧めしません!
- ベストプラクティス
データベース単純なテーブルで、単にデータを保持するために、唯一の行(データ)および列(フィールド)
私たちは複数のテーブルからのデータを使用すると、外部キー(達成するためのプログラム)を使用したいです
4.2 DML言語(すべて覚えています)
データベース有意:データストレージ、データ管理
DML言語:データ操作言語、ユーザーがデータベースの基本的な動作を実現することができ、それを通して、DML操作がテーブルのレコード(インサート)を添加することを含む、業務のデータテーブルのレコードを参照し、変更されました(更新)、削除(DELETE)
(1)のインサートを追加
構文:テーブルへの挿入([1フィールド名、フィールド2、フィールド3])の値( '値1')、( '値2')、( '値3'、...)
- 練習
注意事項:
- フィールドとフィールド間の使用は、カンマで区切られました
- フィールドを省略することができますが、以下の値が対応にする必要があり、以下
- 複数のデータ値を次の値が、()、の値を(分割するために使用される必要がある)、同時に挿入することができ...
(2)更新を変更します
構文:UPDATEテーブル設定colnum_name =値、[colnum_name =値、...] [条件]
-
演習1
-
英語II
-
練習3
-
練習4
-
条件:。句オペレータIDが特定の範囲内に変更された値よりも大きい値に等しい...
演算子は、ブール値を返します
-
注:
colnum_nameデータベースの列、 ``可能摩耗
条件、フィルタ条件、指定されていない場合、すべての列が変更される
特定の値である値は、可変であってもよい
セットプロパティの複数の間、カンマ区切り
(3)削除
方法1:deleteコマンドの
構文:[ここで、条件]テーブルから削除
- 練習
削除する前に
削除した後、
第二の方法:TRUNCATコマンドの
構文:TRUNCATE TABLEテーブル名の
役割:完全に空のデータベーステーブル、インデックスと制約テーブル構造が変更されません!
- TRUNCATE差は削除
①同じポイントを:データを削除、テーブル構造は削除されませんすることができ
:②異なる
TRUNCATEがゼロに自動インクリメントカウンタをリセットします
TRUNCATE業務には影響しない
テストを削除して、TRUNCATEの違いは、③
から削除をtest
-した後、削除データを挿入データは増分影響はありません
ステップ1
ステップ2
ステップ3
TRUNCATE TABLEをtest1
-ゼロ成長の後に削除されたデータからの挿入データがなる
ステップ1
ステップ2
ステップ3
学習:、DELETE削除問題データベースを再起動し、現象
のInnoDB自動インクリメントは1つの(失われたそれらのメモリで、パワー)スタート再なります
失われることはありません、ファイルがある(最初から自己増加を続けるのMyISAM )