1.重要繰り返し:キーのデータ型
1)デジタルに関連します
255 tinyint型のint型65535
BIGINT 42億である
文字列は、実際には小数点以下の精度で、保存され、小数小数。
限られたフロート10進浮動小数点ストア
ダブルダブルダブル予約は小数を制限
2)該当する文字
CHAR固定長、スピードクエリー、セーブ時間255までのバイトvarchar型のスペース節約するために、255文字までの可変長までの
テキストタイプまでテキストを:65535の文字
3)時間
日付、時刻、日付時刻、タイムスタンプ4)バイナリ:
ブロブ5)列挙、セット
列挙型( 'XL'、 'XXL'、 'XXXL')SET( 'A'、 'B'、 'C'、 'D')の任意の組合せ#
2.sql操作
データベース(1)動作
1)データベースのチェック
データベースを表示します。2)データベースを開きます。
(データベース名)を使用します。3)データベースを作成します。
データベースのテストのデフォルトの文字セットUTF8を作成します。4)データベースを削除
データベースのテストをドロップします。5)データベースの下にあるすべてのテーブルをチェックしてください:
テーブルを表示します。テーブルの動作(2)
1)テーブルを作成します。
テーブルの学生(作成のid INT AUTO_INCREMENT、主キー、
名前のVARCHAR(12)NOT NULL、
情報VARCHAR(22))エンジン= InnoDBの文字セット= UTF8を。
2)ルックアップテーブル
学生から*を選択します。3)ディスプレイ:
DESCの学生;#テーブル構造のショーテーブルクラス\ Gを作成し、テーブル情報#の建設
4)テーブルをクリアします。
学生から削除;:インクリメントID番号を予約増分数は保持されません:切り捨てテーブルの学生を。
5)テーブルを完全に削除するには:
ドロップテーブルの学生。
6)変更テーブル
ALTER TABLE学生AUTO_INCREMENT = 1;(3)ラインの動作:
CRUD:
学生INTO INSERT(名前、情報)の値( 'トム'、 '');複数の値の挿入#:
INSERT INTOユーザ(名前、年齢)の値( 'トム'、22である)、( 'ジム'、23です。)、 (「トーマス」、18である)、(「ジェリー」,. 19);
一時テーブルエンティティテーブルインサート#
T2(名前)への挿入は、名前を選択し 、ユーザから、
#修改内容
更新学生・セット名= ''、情報= ''どこ名= '';
更新ユーザーセット= 18年齢= 29歳。
更新学生・セット名= ''、情報= ''どこ名= '';
更新ユーザーセット= 18年齢= 29歳。
条件#は、クエリ
、ユーザーから*を選択する場所18の間の年齢 と22;
、ユーザーから*を選択する場所18の間の年齢 と22;
#综合查询
年齢> 17と名前「トン%」のような、ユーザからの選択*;
s_name、年齢、利用者から20名を選択します。
ユーザーからs_name、年齢、「avg_20」として名を選択します。
年齢> 17と名前「トン%」のような、ユーザからの選択*;
s_name、年齢、利用者から20名を選択します。
ユーザーからs_name、年齢、「avg_20」として名を選択します。
UIDリミット3によりユーザ注文から*を選択します。
年齢DESC制限3によってユーザ注文から*を選択します。
年齢DESC制限3によってユーザ注文から*を選択します。
3、制約および基準クエリ
(1)主キー制約
テーブルスコア(作成のid int型のAUTO_INCREMENTないヌル、
STUDENT_ID INT NOT NULL、
CLASS_ID INT NOT NULL、
score_numのTINYINT、
pimaryキー(id)を、
(2)外部キー制約
制約fk_stu_cls外部キー(CLASS_ID)参照クラス(CID)(3)のみ制約
ユニークuq_std_cls_id(STUDENT_ID、CLASS_ID))エンジン= InnoDBのデフォルトのcharset = UTF8
(4)自己増力設定ステップ
1)セッション、ローカル変数を変更し、一般的に使用されるだけで、現在の図面(ログインユーザ)が、影響します。デフォルトは1
「auto_increの%」のようなショーのセッション変数セットセッションAUTO_INCREMENT = 2
2)すべてのセッションに影響を与え、グローバル変更します。
'auto_incre%'のようなgloble変数を示してセットgloble AUTO_INCREMENT = 2を
(5)特別な外部キー:
1)マンツーマン
外部キープラス一意のインデックスは、1対1の関係です。2)多くの
サポートが来ます3)多くの多くの
双方向多の関係は、多くの関係に多くのである持っています。この場合には、操作を容易にするために、2つのテーブル間の関係を記録する中間テーブルを作成します。
二つの中間貯蔵テーブルIDテーブル、外部キー制約を確立し、必要であれば、あなたは一意のインデックスを追加することができ、2つのIDが追加されました。
(6)条件文
1)ページ
結果の最初の10行を取る学生の上限10から選択*;
最初のレコードから始めて、最初の10取る
学生の限界0,10 SELECT * FROMを、
最初に取る
学生の制限0 1 SELECT * FROMを、
第二のフェッチ
を選択*学生の上限1 1から。
2)ワイルドカード
トンの学生で始まる名前のクエリ学生のテーブルには、選択*学生からどこ名LIKE「 トン%」;
名前にND学生の終わりにクエリが
選択*学生からどこ名「のような %デュ」
、2トンの初めによってクエリ名前文字
「のような学生の名前から選択* T_」;
3)ソート
小から大へのデフォルト昇順IDによって生徒順から選択*は、
逆の順序で配置されていてもよい、すなわち、降順で
のID DESCによってstduent順序SELECT * FROMを 、
4)パケット
デフォルトでは、クエリーパケットで、合計、平均、カウント数、最大:クエリの結果は、重合の関数でなければならない 、分によって列グループ、1対1の関係を持つなど、あるいは重合列、すなわち。
HAVING COUNT(上記ID上記)> 1、上記のidでscore_numスコア> 60グループから(上記番号上記)SELECT COUNTを
mysql5.7バージョン、新しいsql_modeのは= ONLY_FULL_GROUP_BY、閉じられますが、お勧めできませんすることができます!
図4に示すように、接続テーブル
(1)左右の接続参加します
1)内部を結びます
行の隠されたヌル値があります。2)外側コネクタ
列は左、左、左のディスプレイ上のすべてのテーブルを結合する外部結合すべてが右の右の列にテーブルを結合するジョイン右外を
(2)上下の接続ユニオン
1)重複を削除
連合
2)ない重いへ
労働組合のすべて