mysql完整性約束

六 完整性約束:
        not null  default:
                若是單獨設置not null ,不能插入空值
                若是設置了not null, 又指定了default, 能夠插入空值, 默認值生效

        unique  key:  單列惟一
                unique(id),
                unique(name)
                create table t1(id int not null);

        聯合惟一:  多行記錄中只要有一列字段的值不一樣就能夠, 徹底一致不行
            unique(id, name)

        primary key : 單列主鍵  不能爲空, 惟一
            化學反應  : not null + unique  //這樣設置會顯示成PRI  但與設置成primary  不一樣,


        聯合主鍵 :create table t9(
                    id int,  
                    name varchar(10),
                    primary key(id,name)
                        );

                     一行記錄中   id 和name  有一項不一樣便可


        auto_increment :  自動增加,默認+一個步長, 數字
            自動增加, 若是刪除已經建立的 ID  插入下一條記錄時候 依然會增加,  舊的ID仍然佔據,
             再次插入新的數據 時候, ID在最後一條記錄的ID上面增加


        truncate  :  清空表, 刪除全部記錄, ID  從新插入數據時候, ID 初始化0
            truncate student;  //清單表student
                清空表區分delete和truncate的區別:
                    delete from t1; #若是有自增id,新增的數據,仍然是以刪除前的最後同樣做爲起始。
                    truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始。




        起始偏移量:  auto_increment_offset
        步長: auto_increment_increment
        show variables like "auto_inc%";  // 查詢可用的開頭是quto_inc的詞
            set session quto_increment_increment=5; //設置步長,  當次鏈接中有效,

            set global auto_increment_increment=3;   //設置步長是3,  全局配置, 以後都生效

            set global auto_increment_offset=3;  //設置起始偏移量 ,起始值3
            tip:  若是auto_increment_offset的值大於auto_increment_increment的值,則auto_increment_offset的值會被忽略
                    設置步長和偏移量以後,須要重登陸



        foreign key: 外鍵 (關聯其餘表, 的數據, 省空間//)
            constraint 外鍵名 foreign key((副表)本表字段)  references 主表名(字段)  //這樣建立數據不一樣步,

            constraint 外鍵名 foreign key((副表)本表字段)  references 主表名(字段)
            on delete cascade   //同步刪除
            on update cascade  //同步更新
             三種關係:  一對一
                        一對多
                        多對一
相關文章
相關標籤/搜索