国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL表結構實例解析

2024-07-24 12:33:20
字體:
來源:轉載
供稿:網友
  這篇文章主要介紹“MySQL表結構實例分析”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MySQL表結構實例分析”文章能幫助大家解決問題。
 
  約束條件
  作用是限制如何給字段賦值
  查看約束條件
  mysql> desc 庫名.表名;
  mysql> desc db1.t9;
  MySQL表結構實例分析
 
     每列代表的含義:字段名 | 類型 | 空 | 鍵值 | 默認值 | 額外設置
 
  mysql> insert into t9 values (null,null,null);
     約束條件允許為空(NULL),所以此處賦值的時候可以為空,null不區分大小寫
 
  mysql> select * from  db1.t9;
 
  mysql> insert into db1.t9(name,sex) values("lucy","girl");
  mysql> select * from db1.t9;
  //t9表的約束條件里,第三字段默認值為NULL,也就是說當沒有給第三字段賦值的時候,會以默認值填入表中,即如下圖所示默認填入NULL
 
  MySQL表結構實例分析
 
  設置約束條件
  null               //允許為空(默認設置)
  not null         //不允許為null(空)
  key                //鍵值類型
  default          //設置默認值,缺省為NULL
  extra             //額外設置
  mysql> create database db2;
  mysql> create table db2.t1(
      -> name char(10) not null default "",
      -> age tinyint unsigned default 19,
      -> sex enum("m","w") not null default "m"
      -> );
  //創建一個表db2.t1,name字段的類型為定長char,約束條件是不允許為空,默認值為0個字符,顯示效果入下圖所示;age字段的類型是微小整數tinyint,約束條件是不允許為負數(unsigned),默認值設置為19,注此處的默認值設置不得超過tinyint類型的范圍,即默認值的設置不能超過255;sex字段的類型為枚舉,enum為單選,約束條件是不允許為空,默認值設置為m;
 
  mysql> desc db2.t1;
 
  MySQL表結構實例分析
 
  mysql> insert into db2.t1(name) values("bob");
  //只給name字段賦值,剩下的字段由默認值賦值
 
  mysql> select * from db2.t1;
  MySQL表結構實例分析
 
  mysql> insert into db2.t1 values("lucy","21","w");     //給字段賦值,就不會以默認值賦值了
  mysql> select * from db2.t1;
  MySQL表結構實例分析
 
  mysql> insert into db2.t1 values(null,null,null);    
    //錯誤提示,name字段不允許為空;name和sex字段都不能為空
  ERROR 1048 (23000): Column 'name' cannot be null
  mysql> insert into db2.t1 values("null",null,"w");     
  //"null"的意思不再是空,僅僅是字符null,沒有空的含義了,所以可以給字段賦值
  mysql> insert into db2.t1 values("",null,"w");     
  //""為0個字符,和空不一樣,也可以給字段賦值
  mysql> select * from db2.t1;
 
  注:
 
  如果表中這個字段類型下面的字段已經有值了,那么修改的類型與約束不能與字段里面已經存儲的數據發生沖突,如果發生沖突則不允許修改。比如,有一個字段name,里面存儲了一個數據為bob,那么把字段的類型(寬度)改成char(1),則會修改失敗,因為bob的寬度為3,如果將字段的類型(寬度)改為char(1),則源數據bob就存不下了,由于已存儲的數據優先,所以就不能進行修改;
 
  修改字段的類型時要注意,不修改的部分要原樣進行抄寫,如果不修改的部分不原樣抄寫,那就相當于對其進行還原即使用默認配置。比如有一個字段name,他的類型是char(10),約束條件是不允許為空,默認值是"",現在要將其類型寬度改為char(20),其余沒修改的部分沒有在命令中進行原樣抄寫,那么輸出結果該字段的約束條件會變為默認情況,即允許為空,默認值為NULL。改變字段位置的時候也一樣。
 
  mysql> desc db2.t1;
 
  將字段age的位置修改到字段class的后面
  mysql> alter table db2.t1 modify age tinyint unsigned default 19 after class;     //除了對字段age的位置進行了修改,其余不修改的地方如:類型(寬度)、約束條件進行原樣抄寫
 
  mysql> desc db2.t1;
 
  MySQL表結構實例分析
 
  將字段name的類型變為varchar(15)
  mysql> alter table db2.t1 modify name varchar(15) not null default "";
  mysql> desc db2.t1;
  MySQL表結構實例分析
 
  修改字段名
  基本用法
  —— 也可以用來修改字段類型
 
  mysql> alter table 庫名.表名 change 源字段名 新字段名 類型(寬度) 約束條件;
 
  注:也可以用來修改類型和約束條件,只需要寫上新的類型和新的約束條件即可
 
  mysql> desc db2.t1;

  將字段名email修改為mail
  mysql> alter table db2.t1 change email mail varchar(50);
 
  mysql> desc db2.t1;
 
  將字段名mail修改為email,并修改約束條件
  mysql> alter table db2.t1 change mail email varchar(50) not null default "njw@163.com";     //出現錯誤,因為源數據中,mail字段中的值為NULL,如果將約束條件修改為not null,那么就與源數據發生沖突,所以修改失敗
  ERROR 1138 (22004): Invalid use of NULL value
  mysql> alter table db2.t1 change mail email varchar(50) default "njw@163.com";
  mysql> desc db2.t1;

  刪除字段
  基本用法
  mysql> alter table 庫名.表名 drop 字段名;
 
  mysql> alter table db2.t1 drop email;    //刪除庫db2中表t1的字段email
  mysql> desc db2.t1;    //沒有字段email,已被刪除
 
  mysql> select * from db2.t1;    //字段email及其數據已被刪除
 
  關于“MySQL表結構實例分析”的內容就介紹到這里了,感謝大家的閱讀。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金坛市| 潮州市| 彰化市| 大渡口区| 河津市| 疏勒县| 格尔木市| 郸城县| 阿勒泰市| 崇阳县| 师宗县| 淳安县| 福泉市| 绥德县| 普兰店市| 磐石市| 平泉县| 漳平市| 巴南区| 五常市| 巢湖市| 新宾| 岳池县| 铜鼓县| 高尔夫| 凤山县| 灯塔市| 通道| 泊头市| 宝山区| 甘洛县| 舞阳县| 西乡县| 青神县| 安达市| 东安县| 庆安县| 剑河县| 缙云县| 赞皇县| 政和县|