日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mysq表的创建和l数据类型

發布時間:2025/3/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysq表的创建和l数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

表的創建:

  創建表時,由表的設計者在規定,表字段的命名規范有兩種,一種就是駝峰法(userName), 一種是下劃線法 (user_name)

  快速入門案例:

create table staff( id int not null default 1 comment "序列號", name varchar(5) not null default '保密' comment '姓名', sex enum('','','保密') not null default '保密' comment '性別', birthday date comment '生日', entry_date date comment '入職日期', station varchar(20) not null default '保密' comment '職位', salary decimal(10,2) unsigned not null default 0 comment '薪資', resume text comment '文章' )charset=utf8 engine=myisam;

整型:

  基本介紹: 用于保存整數的數據類型,常見有(tinyint , smallint , mediumint, int , bigint)

類型字節最小值最大值
??(帶符號的/無符號的)(帶符號的/無符號的)
TINYINT1-128127
??0255
SMALLINT2-3276832767
??065535
MEDIUMINT3-83886088388607
??016777215
INT4-21474836482147483647
??04294967295
BIGINT8-92233720368547758089223372036854775807
??018446744073709551615

?

?

?

?

?

?

?

?

?

  說明:

    (1)?? 從表示的訪問來看 tinyint < samllint < mediumint <? int? < bigint?(多數情況下在項目中使用tinyint 和int) 

    (2)?? 數據類型占用的大小不一樣 tinyint(1個字節) < samllint(2個字節) < mediumint (3個字節)<? int(4個字節)? < bigint(8個字節)

    (3)?? 整型分為兩種,一種是有符號的額,一種是無符號的。字段名整型類型 unsigned? ?===> 這個就是無符號??字段名 整型類型? ?===> 這個就是有符號)?

  zerofill:表示0填充

    (1)當int(4) zerofill 使用,如果添加的整數不夠4位,則數值的左邊使用0進行填充.

    (2)int(4) 不能理解成最大只能是4位的數,而應該理解成是0填充的寬度.

    (3)當一個字段被zerofill 修飾時,那么這個字段就自動成為unsigned

  bit :?bit類型就是位類型.

    細節說明:

      (1)?? bit 字段在顯示時,按ascii碼對應的字符顯示

      (2)?? 查詢的時候仍然可以用數值

      (3)?? 位類型。M指定位數,默認值1,范圍1-64位(bit(1-64), 可以通過bit(M) M值來控制我們填充數據的大小.)

      (4)?? bit 類型, 只能是unsigned .?

浮點型:

  基本介紹:使用的最多的是float , decimal.

    float [ M , D ] [ unsigned ] ( M 指定顯示長度,D指定小數位數)

      案例說明:float(4,2)表示的范圍是 -99.99 ~ 99.99? ?float(4,2) unsigned 表示的范圍是0~99.99

    decimal [ M , D?] [ unsigned ] ( M 指定顯示長度,D指定小數位數)

      案例說明:decimal?(4,2)表示的范圍是 -99.99 ~ 99.99? ?decimal?(4,2) unsigned 表示的范圍是0~99.99

  說明:

    (1)?? float 和 decimal 都可以定義成有符號的或者是無符號的.

    (2)?? float(M,D) ,? decimal(M,D)? M: 表示顯示最大長度(即可以顯示多少個數, 包含小數位), D表示有幾位小數

    (3)?? float(4,2) 范圍? -99.99-99.99

    (4)?? float(4,2) unsigned 范圍? 0-99.99

    (5)?? decimal(4,2) 范圍 -99.99-99.99

    (6)?? decimal(4,2) unsigned范圍0-99.99

  這兩個小數類型的比較說明

    (1)?? 默認值不一樣.

    float(M,D)? 如果M和D被省略,根據硬件允許的限制來保存值。單精度浮點數精確到大約7位小數位。

    decimal(M,D) 如果D被省略, 默認是0。如果M被省略, 默認是10。相當于 decimal(10, 0)? 范圍是? -9999999999 -? 9999999999

    (2)?? 如何選擇 :?如果我們希望保存精度較高的值,我們應該選擇 decimal .

字符串:

  基本介紹: mysql的字符串類型,用于存放字符串,最主要的有三種, 分別是 char, varchar, text?

  字符串使用的注意事項:

    (1)char(n) 這里的 n 的范圍是 1-255, 最大255.

    (2)varchar(n) 這里的 n的范圍是和表的字符集有關系.

      如果表的字符集是 utf8 那么 n 最大是? (65535-3)/3 = 21844

      如果表的字符集是 gbk 那么 n 最大是? (65535-3)/2 = 32766

      如果表的字符集是 latin1 那么 n 最大是? (65535-3)/1 = 65532

    varchar最大是有65535個字節, 但是需要預留3個字節.[有2個字節用于記錄varchar的數據大小,有1個字節標識是否允許為null]

    (3)char(n) 是定長, varchar(n) 是變長.(char(4)? =>? 添加? 'aa' => 實際暫用的空間,就是4個字符占用的空間.??varchar(4) => 添加 'aa' =>實際暫用的空間,就是2個字符占用的空間+1)

?    當我們的某個字段的內容長度不確定,我們建議使用varchar.?

    (4)?char(n) 會將存入的最后的空格自動刪除,而 varchar(n) 會保留空格. 所以如果你真的有這樣的需求,就是在字段內容的最后保存空格,則應該選用varchar

    (5)?? text 數據類型可以視為varchar, 但是不用指定大小, 他可以存放varchar最大的范圍.

    (6)?? 一個表的所有自定義的字段,他們定義長度加起來不能超過65535

    (7)?? 如果我們字段的長度要大于 65535 字節大小.?我們可以使用 text 來替代 varchar

日期和時間:

  基本介紹:?在mysql中,日期和時間類型主要有 (1. date, 2 datetime 3. timestamp)

  使用格式:date的格式( 2019-7-14 )??datetime的格式 ( 2019-7-14 00 : 00 : 00 )?timestamp的格式( 2019-7-14 00 : 00 : 00 )?{時間中不能帶空格}

  說明:(1)?? 對于date 類型只是接受 日期 , datetime timestamp 有日期和時間,如果你沒有給時間,那么默認是 00:00:00

     (2)? ?timestamp 在insert 和 update 時會自動的更新.?添加后 login_time 字段就會自動的更新.

枚舉enum, 集合set:

  基本語法:如果對于多選我們可以使用 set 數據類型? ?如果對于單選我們可以使用 enum 數據類型

CREATE TABLE `votes`( id tinyint unsigned not null default 1, hobby set('蘋果','香蕉','西瓜') not null default '蘋果' comment '喜歡的食物', sex enum('','','保密') not null default '保密' comment '性別' )charset=utf8 engine=myisam; insert into `votes` value(2,"蘋果,香蕉,西瓜","保密"); insert into `votes` value(2,"蘋果,香蕉","1");

  說明:

    (1)?? 在添加set 和 enum 字段時需要注意幾個問題

    (2)?? 首先你添加的選項都是表中規定好的, 添加? set 字段時 '選項1,選項2,選項3',但是中間不能給空格.

  細節:

    (1)?? 在enum 選項中,選項可以用數字表示:如上面案例中插入的最后一條語句中的 “1” 表示的是“男“

    (2)?? 在set 選擇中,也可以使用數字來表示選項(當我們給一個set 賦值時, 這個數就是一個組合的 ('蘋果','西瓜','菠蘿') 對應 1, 2, 4, 然后組合可以進行多項, 比如 7 = 1 + 2 + 4? ,? 6 = 2 + 4 等等 。。。)案例演示:insert into `votes` value(2,"3","1")相當于insert into `votes` value(2,"蘋果 , 香蕉","男");

轉載于:https://www.cnblogs.com/rickyctbur/p/11183598.html

總結

以上是生活随笔為你收集整理的Mysq表的创建和l数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。