mysql數據庫表結構與表約束


表結構操作:

  添加單列:alter table tb_name add [column] col_name

  添加一列: alter table `sudty` add `aaa` int;

    

  添加多列:

    

  指定添加在哪:默認添加在最后一列,用after+col_name可以添加在某一列之后

            使用first可以添加第一列。

    alter table `sudty` add `bbb` int after `name`;在sudty這個表的name后添加一列bbb。

    

    alter table `sudty` add `科目` int first;

    

  刪除列:alter table sudty drop bbb;

  刪除多列:alter table sudty drop aaa,drop scx;

  修改表:

    

    修改age的數據類型:

    alter table sudty modify `age` varchar(20);

    修改age的列名為年齡:

    alter table sudty change `age` `年齡` varchar(20);

    修改表名sudty為school:

    alter table sudty rename to school;

 非空約束:not null

  建表時約束:

    

  建表后約束:

    

  

  此時,id和name的Null值都變為NO了。有非空約束的列,傳值進去的時候就必須傳它。

 

唯一約束:

  確保字段中的值的唯一:  unique key

  同not null一樣,它可以在建表的時候:

  

  刪除唯一約束:

  

  添加唯一約束:現在給tb 添加一列`name`,讓后添加一個聯合唯一:

  

  此時,聯合唯一的key名是id,所以刪除只需要寫:alter table tb drop key id;

  insert into tb (id,name) values(1,'王五'),(2,'王五'); 注意兩個聯合起來才唯一,

    即只要id和name不是兩個同時相同就可以。

    

 

主鍵約束:

  

  主鍵保證記錄的唯一性, 唯一標識每一條數據主鍵自動為NOT NULL;每張數據表只能存在

一個主鍵not null+unique key,一個unique key 又是一個not null的時候,那么它被當做primary

key主鍵當一張表里沒有一個主鍵的時候,第一個出現的非空且為唯一的列被視為有主鍵。

  自然可以在建表的時候添加主鍵約束,下面討論給表tb的id添加主鍵約束:

  

  刪除主鍵:

  

  添加聯合主鍵:任然只有一個主鍵(雖然有兩個PRI)

  

  刪除聯合主鍵和正常刪除主鍵是一樣的操作。

 

自增長AUTO_INCREMENT

  自動編號,一般與主鍵組合使用。一個表里面只有一個自增默認情況下,起始值為1,

每次的增量為1。當插入記錄時,如果為AUTO_INCREMENT數據列明確指定了一個數值,則

會出現兩種情況。

  情況一,如果插入的值與已有的編號重復,則會出現出錯信息,因為數據列的值必須

是唯一的;

  情況二,如果插入的值大於已編號的值,則會把該插入到數據列中,並使在下一個編

號將從這個新值開始遞增。也就是說,可以跳過一些編號。如果自增序列的最大值被刪除

了,則在插入新記錄時,該值被重用。(可以調大,不可以縮小)如果插入的值小於現有

的值且不重復,則會成功,但是下一個數據過來還是默認從最大的值開始增長。

  

  

  

 

默認約束:default

   初始值設置,插入記錄時,如果沒有明確為字段賦值,則自動賦予默認值。

  

  插入值:

  

  此時表的詳情:

  

  刪除default:

  

  

  添加默認default

  方法一:

  

  方法二:

  

 

mysql數據庫,外鍵約束和表關系

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM