老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

如何使用mysql數據類型和字段屬性

這篇文章主要為大家展示了如何使用MySQL數據類型和字段屬性,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

成都創新互聯是專業的灌南網站建設公司,灌南接單;提供網站建設、做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行灌南網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

數據類型:

mysql的數據類型就是存儲數據的類型。

數值類型:

  • 整數類型:tinyint,smallint,mediumint,integer,bigint
    • 默認是有符號,如果需要使用無符號的數據類型要在后面加"UNSIGNED"
類型簡寫字節大小(signed)范圍(unsigned)范圍備注
整數型:     
TINYINT 10~255-128~127 
SMALLINT 20~65535-32768~32767 
MEDIUMINT 30~16777215-8388608~8388607 
INTEGERINT40~4294967295-2147483648~2147483647 
BIGINT 80~264-1-263~263-1 
  • 小數類型:
    • 浮點類型:float(size,d),double(size,d)
      • size是數值的最大位數,d是小數點右側的位數(即使你沒輸夠那么多位也會補全那么多位)。
      • FLOAT的精度為6~7位(依據情況不同?畢竟機器是以二進制存儲的),DOUBLE的精度為14~15位
      • 整數部分的個數為SIZE-D,直接存入的值的個數不能多于這個,但如果浮點數四舍五入導致整數進位而溢出超過最大位數的,系統允許成立(某些版本貌似已經不允許了,所以一般小數位也不要超過)。
      • 很多時候沒必要關注兩個浮點的數值范圍大小(是極大的),注重點應該是它的精度。
      • 如何使用mysql數據類型和字段屬性如何使用mysql數據類型和字段屬性
    • 定點型:decimal(size,d)
      • size是數值的最大位數,最大為65,d是小數點右側的最大位數,最大為30
      • 定點型不允許因為小數部分四舍五入導致整數部分長度超出范圍。
      • DECIMAL是不會損失精度的。可以理解成使用“字符串”存儲(MYSQL權威指南這么說)。
      • 如何使用mysql數據類型和字段屬性
    • 直接不帶括號的數據類型float、double、decimal代表沒有小數部分

時間日期類型:

時間日期類型包括date,time,datetime,timestamp,year;

  • Datetime:時間日期,格式是YYYY-MM-DD HH:II:SS,表示的范圍是從1000到9999年(有些版本已經允許0-9999?不確定);
    • 如何使用mysql數據類型和字段屬性
  • Date:日期,格式是YYYY-MM-DD ,表示的范圍是從1000到9999年
    • 如何使用mysql數據類型和字段屬性
  • Time:時間段,格式是HH:II:SS, 指定的時間在某個區間之間,有正負。表示的范圍 -838:59:59~838:59:59,這代表某個日期的前后時間范圍【如果你僅僅想要用來表示24小時內的時間,可以忽略它的時間范圍】
    • 如何使用mysql數據類型和字段屬性
  • Timestamp:格式是YYYY-MM-DD HH:II:SS,表示的范圍從1970-01-01 00:00:00到2038-01-19 03:14:07 【一旦該行記錄被修改,那么timestamp會修改成當前時間。】
    • 如何使用mysql數據類型和字段屬性
  • Year:年份,表示的范圍1901-2156
    • 如何使用mysql數據類型和字段屬性
    • 原本有兩種格式,year(2)和year(4),但5.7中移除了year(2)。
  •  

字符串類型  :

    • set  :集合字符串。將一個個特定的字符串放到集合里面。

      • 定義了集合之后,不能插入集合元素之外的字符串,(可以插入多個符合條件的字符串)
      • 集合字符串實際上也是僅僅存儲數值,系統自動轉換成對應的字符串。
      • 集合中每一個元素對應一個二進制位,被選中的為1,沒選中的為0,左邊為二進制中的低位,右邊為高位,從右到左得到二進制結果
create table my_set(
hobby set('football','basketball','pingpong','computer')
)charset utf8;

insert into my_set values('basketball,computer');
insert into my_set values(3);-- 3=0011
insert into my_set values(5);-- 5=0101
 

如何使用mysql數據類型和字段屬性

    • enum  :枚舉字符串

      • 有點類似set,但這里只能插入一個字符串(set類型的字段的值可以是多個set元素,但enum只能是其中一個元素)
      • 將可能出現的數據列舉出來,實際存儲的數據只能是列舉出來的數據。
      • 使用枚舉有利于統一數據,以及節省存儲空間(枚舉只是存儲數值,系統轉換成字符串)。
      • 枚舉元素實際上按定義的順序標號,從1開始,所以可以直接插入枚舉元素對應的數值。
      • 如:
create table my_enum(
gender enum('male','female','unknown')
)charset utf8;
 

如何使用mysql數據類型和字段屬性

  • blob  :二進制數據字符串

    • 存儲二進制數據(少用)
  • text  :文字字符串

    • 存儲文字,當字符大于255時,一般使用text;
  • varchar  :變長字符串

    • varchar(L),L代表字符長度,單位為字符,最大長度為65536。在實際存儲中需要1到2個字節來存儲長度(1還是2由實際大小決定,216=35536,<=255的一般一個字節),在使用時根據定義的大小來分配空間,但會根據實際需要使用的縮小空間(比如規定60大小,實際只有30,那么實際空間就是31~32)。
    • 當L大于255時,建議使用Text,而不是varchar;
    • 如何使用mysql數據類型和字段屬性
  • char  :定長字符串

    • char(L),L代表字符長度,單位為字符,最大長度為255,不使用L時默認為1
    • 不同環境中根據字符大小,實際占有的空間不同;在UTF8環境下,char(4)所用的字節數為4*3=12;

補充:

    • 顯示寬度 與填充 :

      • 在列類型后面顯示的數值,代表數據最終顯示的最少位數(包含符號)。
      • 一般不夠顯示寬度的數據都會采用空格填充,也可以使用zerofill來使用零填充(零填充會導致數據類型自動變成無符號的)。
      • tiny(3)的空格填充效果:如何使用mysql數據類型和字段屬性,zerofill效果:如何使用mysql數據類型和字段屬性
create table myInt(t1 TINYINT(3));
drop table myInt;
insert into myInt values(127),(1);
select * from myInt;
alter table myInt modify t1 tinyint(3) zerofill;
select * from myInt;
 
  • 不要輕易的使用最大限度來存儲字符串,因為涉及記錄長度問題  :

    • MySQL中規定任何一條數據最長不能超過65535個字節
    • 如果有任何一個字段允許為空,那么系統會自動從整個記錄中保存一個字節來存儲NULL;
    • text文本不占用記錄長度,額外存儲。
    • UTF8中varchar的最大限度:65535-2(需要兩個字節來存儲長度)  /3=21844,所以最大字符數為21844
    • GBK中varchar的最大限度:65535-2(需要兩個字節來存儲長度) /2=32766

字段屬性:

字段屬性是字段除數據類型外的屬性,一般有空\不為空值、主鍵、唯一鍵、自增長、默認值、描述等屬性。

空\不為空值:NULL、NOT NULL

  • 字段的數據默認情況下是允許為空的,比如說一條人的信息記錄中可以沒有郵箱(或許有些人考慮用“空字符串”來代表),我們允許可以不填入數據的字段可以設置為null;但比如說某些必填數據,我們不想填入的時候留空,可以設置這個字段為not null
  • 允許為空時的數據,空的數據顯示為null:如何使用mysql數據類型和字段屬性
  • 不為空的字段,插入null時,會報錯:如何使用mysql數據類型和字段屬性
  • null\not null屬性的定義方式(因為默認允許空,所以主要關注not null):如何使用mysql數據類型和字段屬性;當然也可以通過修改字段的形式來給字段定義not null屬性

主鍵:primary key

  • 主鍵用于唯一標識每一條記錄(每個人都有自己唯一的身份證)
  • 每一張表只能有一個主鍵。
  • 因為唯一標識,所以主鍵字段的數據不能為空,并且主鍵字段的數據值不能重復
  • 主鍵也是一種索引,可以提高查找速率。
  • 主鍵的定義:
    • 1.定義表結構的時候定義成字段的屬性。如何使用mysql數據類型和字段屬性如何使用mysql數據類型和字段屬性
    • 2.修改表結構,增加一個帶主鍵的字段。
    • 3.修改表結構,給某一字段增加主鍵屬性。如何使用mysql數據類型和字段屬性
  • 主鍵的用途:主鍵的主要用途是用來唯一標識每一條記錄,比如我們想將兩個表(學生表跟老師表)的多對多關系封裝到一個表中,這個抽取的映射字段一般都是各自的主鍵。如何使用mysql數據類型和字段屬性;并且由于主鍵的數據的不可重復性,也用來約束數據的唯一性。
  • 主鍵的刪除:
    alter table 表名 drop primary key;
       

唯一鍵:unique key

  • 唯一鍵的功能與主鍵有點類型,但不同的是主鍵只能有一個,唯一鍵可以有多個,而且唯一鍵的字段的數據允許為空。
  • 唯一鍵可以約束字段,使得字段的數據不能重復
  • 如果唯一鍵同時也有not null,并且表中沒有主鍵的話,在desc查看表結構中會顯示成主鍵
  • 如果唯一鍵也不允許為空,那么功能與主鍵相同
  • 唯一鍵的定義方法可以參考主鍵的。
  • 唯一鍵的刪除:
    alter table 表名 drop index 唯一鍵名; -- 唯一鍵默認使用字段名來定義名字
       

自增長:auto_increment

  • 自增長的功能是可以使某個字段的數據隨著記錄的插入而進行增長(不給這個字段插入數據的情況下)
  • 自增長的前提是這個字段必須是一個“索引”,比如主鍵、唯一鍵
  • 自增長的前提這個字段的數據類型是一個數值型的,(如果給了float,也不會增長成小數,而僅僅是整數)
  • 一個表只能有一個自增長。
  • 只有不給值,或者給null的情況下,才能正確自增長;如果某一次自增長失敗了,那么下一次會從當前字段的最大值開始繼續自增長。
  • 自增長的定義方法:如何使用mysql數據類型和字段屬性;當然也可以通過修改字段的形式來給字段定義not null屬性
  • 自增長的修改:
    • 修改增長速度:set auto_increment = 值;
    • 修改下次增長的值:alter table 表名 auto_increment = 值; 【修改的值只能變大,不能變小,因為可能導致數據重復問題】
  • 自增長的查看:show vairable like "auto_increment%";
  • 自增長的刪除:利用alter來刪除,alter修改字段屬性的時候如果不帶上原來的屬性就會被刪掉:

默認值:default

  • 默認值的功能是當我們不給一個字段賦值的時候,使用默認值作為數據,比如不選擇性別的時候,默認使用“保密”;
  • 默認值的定義方式:如何使用mysql數據類型和字段屬性
  • 如何使用mysql數據類型和字段屬性

字段描述:comment

  • 字段描述是用來描述字段的,能在查看數據表創建語句的時候顯示出來(不會再select結果中顯示出來),可以幫助我們了解某一個字段的意義。
  • 定義方式:如何使用mysql數據類型和字段屬性
  • 如何使用mysql數據類型和字段屬性

補充:

  • 復合鍵:可以將多個字段組成一個鍵,比如學生可以選多門課,但學生號跟課程號一起的時候應該是唯一的,這里使用主鍵來限制這個情況
    • 定義方法(復合以主鍵為例):如何使用mysql數據類型和字段屬性
    • 數據約束(以上面的表為例):如何使用mysql數據類型和字段屬性

以上就是關于如何使用mysql數據類型和字段屬性的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。


標題名稱:如何使用mysql數據類型和字段屬性
分享鏈接:http://www.xueling.net.cn/article/josiii.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 最近更新2019中文字幕 | 免费成年人视频在线观看 | 亚洲欧洲日产喷水无码 | 中国av一级片 | 成人免费av在线播放 | 久久久久久成人毛片免费看 | 久久免费视频网 | 特黄A又粗又大又黄又爽A片软件 | 日韩在线影院 | 亚洲AV成人无码一区在线观看 | 色婷婷一区二区三区在线观看 | 国产性爱自拍av | 热久久91 | 在线国产视频一区 | 暖暖成人免费视频 | 亚洲中文字幕精品久久久久久动漫 | 久久久久人妻精品区一 | 水蜜桃视频在线观看免费 | 亚洲社区一区二区 | www四虎影视| 野花社区www在线视频 | 久久九九全国免费精品观看 | 蝌蚪成人网 | 欧美69精品久久久久久不卡 | 国产aⅴ精品一区二区三区久久 | 国产高清在线观看一区 | 久久av福利 | 最近最好最新2019中文字幕免费 | 中文字幕综合 | 日韩三级一区二区三区 | 亚洲精品无码一区二区卧室 | 亚洲免费网站观看视频 | 精品成人私密视频 | 国产在线播放线播放 | 精品无码人妻一区二区免费蜜桃 | 欧美精品久久久免费观看 | 国产精品一区二区高清在线 | 欧美日韩一区在线播放 | sese亚洲| 高清国产精品人妻一区二区 | 免费看麻豆 |