久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL表結構實例分析

163次閱讀
沒有評論

共計 3984 個字符,預計需要花費 10 分鐘才能閱讀完成。

這篇文章主要介紹“MySQL 表結構實例分析”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MySQL 表結構實例分析”文章能幫助大家解決問題。

約束條件

作用是限制如何給字段賦值

查看約束條件

mysql desc 庫名. 表名;

mysql  desc db1.t9;

// 如圖所示,每列代表的含義:字段名 | 類型 | 空 | 鍵值 | 默認值 | 額外設置

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

設置約束條件

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  insert into db2.t1(name) values(bob

// 只給 name 字段賦值,剩下的字段由默認值賦值

mysql  select * from db2.t1;

mysql  insert into db2.t1 values( lucy , 21 , w  // 給字段賦值,就不會以默認值賦值了
mysql  select * from db2.t1;

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;

總結

約束條件

類型

Null(是否允許為空 null)

默認允許   null

不允許為空   not null

Key(鍵值)

普通索引   index

唯一索引   unique

主鍵   primary key

外鍵   foreign key

全文索引   fulltext

Default(默認值:不給字段賦值使用默認值賦值)

默認不定義時是 null

定義時是 default(要與字段類型匹配)

Extra(額外設置:默認都沒有額外設置)

修改表結構
語法結構

用法

mysql alter table 庫名. 表名 執行動作;

執行動作

add           添加字段

modify     修改字段類型

change     修改字段名

drop         刪除字段

rename     修改表名

添加新字段

用法

—— 新字段默認添加在字段末尾

mysql alter table 庫名. 表名 add 字段名 類型(寬度) 約束條件;

add 字段名 類型 [約束條件] after 字段名;

add 字段名 類型 [約束條件] first;

不指定位置添加字段

mysql  alter table db2.t1 add email varchar(50); // 不指定添加字段的位置,默認就在末尾
mysql  desc db2.t1;

在某一字段后面添加字段

mysql  alter table db2.t1 add hobby set(eat , drink , play , happy) not null default  eat,drink  after age; // 指定添加位置在字段 age 之后,條件設置不允許為空,并設置默認值為 eat,drink
mysql  desc db2.t1;

mysql  select * from db2.t1; // 查看表內容,發現 hobby 字段自動添加了默認值

MySQL 表結構實例分析

將字段添加到最前面

mysql  alter table db2.t1 add class char(7) default  B180601  first; // 將字段 class 添加到最前面
mysql  desc db2.t1;

MySQL 表結構實例分析

mysql select * from db2.t1;     //class 字段自動添加默認值

MySQL 表結構實例分析

修改字段類型

基本用法

—— 修改的字段類型不能與已存儲的數據沖突

mysql alter table 庫名. 表名 modify 字段名 類型(寬度) 約束條件;

modify 字段名 類型 [約束條件] after 字段名;

modify 字段名 類型 [約束條件] first;

注:

如果表中這個字段類型下面的字段已經有值了,那么修改的類型與約束不能與字段里面已經存儲的數據發生沖突,如果發生沖突則不允許修改。比如,有一個字段 name,里面存儲了一個數據為 bob,那么把字段的類型 (寬度) 改成 char(1),則會修改失敗,因為 bob 的寬度為 3,如果將字段的類型 (寬度) 改為 char(1),則源數據 bob 就存不下了,由于已存儲的數據優先,所以就不能進行修改;

修改字段的類型時要注意,不修改的部分要原樣進行抄寫,如果不修改的部分不原樣抄寫,那就相當于對其進行還原即使用默認配置。比如有一個字段 name,他的類型是 char(10),約束條件是不允許為空,默認值是,現在要將其類型寬度改為 char(20),其余沒修改的部分沒有在命令中進行原樣抄寫,那么輸出結果該字段的約束條件會變為默認情況,即允許為空,默認值為 NULL。改變字段位置的時候也一樣。

mysql desc db2.t1;

MySQL 表結構實例分析

將字段 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;

MySQL 表結構實例分析

將字段名 email 修改為 mail

mysql alter table db2.t1 change email mail varchar(50);

mysql desc db2.t1;

MySQL 表結構實例分析

將字段名 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 表結構實例分析

刪除字段

基本用法

mysql alter table 庫名. 表名 drop 字段名;

mysql  alter table db2.t1 drop email; // 刪除庫 db2 中表 t1 的字段 email
mysql  desc db2.t1; // 沒有字段 email,已被刪除

MySQL 表結構實例分析

mysql select * from db2.t1;    // 字段 email 及其數據已被刪除

MySQL 表結構實例分析

修改表名

基本用法

mysql alter table 庫名. 表名 rename 新表名;

庫名. 新表名;

mysql use db2;

mysql show tables;

MySQL 表結構實例分析

mysql alter table db2.t1 rename stuinfo;     // 將表名修改為 stuinfo

mysql show tables;

MySQL 表結構實例分析

mysql select * from stuinfo;

MySQL 表結構實例分析

關于“MySQL 表結構實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計3984字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 柳林县| 永平县| 桃源县| 攀枝花市| 舒兰市| 湛江市| 镇赉县| 宣城市| 甘泉县| 会泽县| 邛崃市| 手游| 无棣县| 青海省| 郯城县| 甘洛县| 神农架林区| 苍山县| 沁阳市| 三门县| 庄河市| 赤水市| 同心县| 札达县| 平武县| 内丘县| 岗巴县| 南丰县| 全州县| 沾益县| 延长县| 阳高县| 岚皋县| 黄山市| 安乡县| 通许县| 克什克腾旗| 荥阳市| 伊春市| 栾城县| 新安县|