0、一意のインデックス
ユニークNUMなるための唯一の制限は、numがユニークである表し、uqlはインデックス名であります
上記の共同インデックスです:numとまったく同じxxをすることはできません
1、外部キーの変種
ユーザテーブルと部署テーブル。
ユーザー:
1アレックス1つの
2ルート1
3 2エゴン
4 laoyao 3つの
部門:
1サービス
2セキュリティ
3 PR
===「1対多
Bブログユーザテーブルとテーブル
ユーザテーブル:
1アレックス
2ルート
3エゴン。
4 laoyaoする。
ブログテーブル:
FK()+ユニーク
。。1 / yuanchenqi / 4
。2 / alex3714 / 1
3 / asdfasdf / 3。
4 / FFFFFFFF / 2。
===>一から一
プログラムコード:
表userinfo1(登録 IDのINT AUTO_INCREMENT主キー、 名char( 10 )、 性別CHAR( 10 )、 電子メールはvarchar( 64 ) )、エンジン = InnoDBのデフォルトのcharset = UTF8と、
テーブルの管理(作成 、IDのint型ではないAUTO_INCREMENT、主キーは、null ユーザー名はvarchar( 64)ではないヌル、 パスワードVARCHAR( 64)ではないヌル、 user_idはint型ではないnullで、 ユニークuq_u1(USER_ID)を、 制約は、FOREIGNキー(user_idの)REFERENCES userinfo1(IDをfk_admin_u1 ) )エンジン = InnoDBのデフォルトのcharset = UTF8。
C。多くの多くの
表userinfo2(登録 IDのINT AUTO_INCREMENT主キー、 名char( 10 )、 性別CHAR( 10 )、 電子メールはvarchar( 64 ) )、エンジン = InnoDBのデフォルトのcharset = UTF8と、 表ホスト(登録 IDのint AUTO_INCREMENTプライマリ・キー、 ホスト名CHAR( 64 ) )、エンジン = InnoDBのデフォルトのcharset = UTF8と、 テーブルuser2host(作成 ID int型のAUTO_INCREMENT、主キー、 ユーザーID int型ではないnullで、 ホストID int型ではないヌルを ユニークuq_user_host(ユーザーID、ホストID)を、 、FOREIGNキーfk_u2h_user CONSTRAINT(ユーザーID)REFERENCESのuserinfo2(ID) 制約が外部キーをfk_u2h_host(ホストID)を参照ホスト(ID) )エンジン = InnoDBのデフォルトのcharset = UTF8。
3、SQLステートメントは、データ操作の行を追加します
3.1増加
INSERT INTO TB11(名前、年齢)の値(' アレックス'、12である); #1 TB11に挿入行 INSERT INTO TB11(名前、年齢)の値(' アレックス'、12である)、(' ルート'、18である); #TB11は、複数のデータの中に挿入 INSERT INTO TB12(名前、年齢)SELECT名前、年齢から TB11; #はTB11内TB12のデータをコピーします
3.2は削除します
削除からTB12。 削除から ID!= 2 TB12 削除からのid = 2 TB12 削除から id>の2 TB12 削除から ID> = 2は、TB12 削除から ID> = 2 TB12 または名前= ' アレックス'
変更3.3
更新TB12セット名= ' アレックス' ID> 12 と NAME = ' XX ' 更新TB12セット名 = ' アレックス'、年齢= 19、ID> 12 と NAME = ' XX '
3.4チェック
SELECT * から、TB12 SELECT ID、名前から、TB12 、SELECT ID名から ID> 10 TB12 または名前= ' XXX ' ; SELECT名AS CNAME、年齢から、TB12 #1 チェックデータとヘッダ名にCNAME SELECT ID、CNAMEなどの名前から ID> 10 TB12 または名前= ' XXX ' ; SELECT名前、年齢、 11 から TB12; #余分な1、すべてのデータのための11
その他:
SELECT * から!TB12 1 WHERE ID =。 SELECT * から TB12 WHERE ID で(1,5,12); #データid 1,5,12フェッチ SELECT *をから TB12 WHERE ID ない で(1,5,12) ; #は、番号データ1,5,12取る SELECT * から ID TB12 に(SELECT ID から TB11) #はTB12 IDと、第1 TB11 IDを取り出し、調査を SELECT * から。WHERE ID 5〜TB12 と 12; #は5〜12のデータID(閉区間)をフェッチ
通配符:
SELECT * からのような名前TB12 「%」 #は、データを最初に名前を確認してくださいは、 SELECT * から TB12 WHERE名のように「%%」 #のあるバンドでの調査データ名を SELECT * からの WHERE名前のようTB12 「A_ 」 #このようAB、AGとして、1ビットのデータのみで、バックで名前が開始を確認します
ページング:
SELECT * から TB12限界10、 #の10の前にチェック SELECT * から TB12制限0,10; #は、最初の行0から読み出しを開始、行10が読み込まれ、 SELECT * から TB12限界10,10; #は、ライン10から始まります、読み取りライン10を読み取り、 SELECT *をから TB12限界20,10; #は線20、リード線10からの読み出しを開始; SELECT * から TB12限界10 20オフセット; #は、ライン20からの読み出しを開始、リード10行を取る; #、Pythonバインディング]タブ: ページ=入力(' ビューにページを入力してください' ) ページ = INT(ページ) (ページ -1)* 10 SELECT* から TB12限界0,10; #表示ページ1つのデータ SELECT * から TB12限界10、10; 2 位最初の二つのデータを表示します
並べ替え:
SELECT * から TB12上記のID DESC上記順; #前記ID上記の行降順 * SELECTをから上記のID ASC上記順TB12; #小から大行に前記ID上記 SELECT * から上記のID DESC上記の順序によってTB12年齢DESC; #年齢が行を降順、IDの下降列(同年齢の数、下降行IDに係る場合) SELECT * からのID DESC制限10によってTB12注文; #10データ後に採取
部門と従業員のテーブルを作成します:
表のdepartment5(作成
ID AUTO_INCREMENT主キーint型、
タイトルVARCHAR(32)
)エンジン = InnoDBのデフォルトのcharset = ; UTF8を
INSERT INTOの department5(タイトル)の値(' マネージャー')、 (' 販売')、 (' 管理')、 (' 金融)';
表userinfo5作成( ID int型のAUTO_INCREMENT、主キー、 名前VARCHAR( 32 )、 part_id INTを、 制約はFOREIGN KEY(part_id)REFERENCES department5(ID)fk_user_part エンジン) = InnoDBのデフォルトのcharset = UTF8と、
挿入 userinfo5 (名前、part_id)の値(' 杨涵'、 2)、(' 大波'、 1)、(' 高月'、 2)、(' 送气'、 3)、(' 小白'、 4 );
グループ化:
最大:#part_id同じ場合を押して、分類をpar_id、彼はそのIDの最大の分類ました:数 加算分で、合計、平均を集計関数の結果のための二次スクリーニング場合は?持っ使用する必要があります :あなたが1より大きいをフィルタリングしたい場合には、例えば、IDをpart_id 集約関数は、後で追加することはできませんが、どこもを使用することができます
でも、手術台:
做法:department5どこuserinfo5.part_id = department5.id、userinfo5から選択*
これは、次の文言をお勧めします:
劉洋に該当するdepartment5 userinfo5がないので#1 userinfo5は劉洋が表示されていない、全番組を残し、(1)userinfo5.part_id = department5.idにdepartment5に参加左userinfo5 SELECT * FROM
#department5すべての権利;(2)右userinfo5.part_id = department5.idにdepartment5参加userinfo5から選択*
(3)選択userinfo5.part_id = department5.idにdepartment5に参加innder userinfo5から*;ヌルがとき#隠しラインが表示されます
統計データの#Userinfo5数;(4)選択数(ID)userinfo5から