欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:【MySQL】數(shù)據(jù)庫數(shù)據(jù)類型

柚子快報邀請碼778899分享:【MySQL】數(shù)據(jù)庫數(shù)據(jù)類型

http://yzkb.51969.com/

文章目錄

1. 整體概要2. 數(shù)值類型(有符號) tinyint 創(chuàng)建表(無符號) tinyint 創(chuàng)建表bit類型float 類型(無符號)floatdecimal

3. 二進制類型char類型varchar類型

4. 日期時間日期時間類型

5. string 類型enum類型和set類型enum類型和set類型的查找在枚舉中的查找在set中的查找

1. 整體概要

看起來分為很多類型,例如數(shù)值類型,有一些看一眼就懂啦,所以不會全部介紹

2. 數(shù)值類型

(有符號) tinyint 創(chuàng)建表

進入 test_db數(shù)據(jù)庫中,并創(chuàng)建表t1 ,其內(nèi)部包含 tinyint類型的num

輸入 desc t1; 查看t1表結(jié)構(gòu)

tinyint類型為一個字節(jié),有符號,所以取值范圍為 -128 到 127

向t1 表中分別插入 -128 、128 、1

輸入 select * from t1; 查詢 t1 表的結(jié)構(gòu)

由于 -129 和128 超過了 tinyint類型的取值范圍,所以插入失敗

(無符號) tinyint 創(chuàng)建表

再次創(chuàng)建表,內(nèi)部包含一個無符號的 tinyint類型的num 所以取值范圍為 0 到255

輸入 desc t2; 查詢t2表的結(jié)構(gòu)

由于取值范圍是 0 到255 所以向t2表插入 0 100 255 ,可以插入成功 而向t2表插入 -1,則會插入失敗

bit類型

bit[M] :位字段類型,M表示每個值的位數(shù),范圍從1到64,如果M被忽略,默認為1

先進入 test_db 數(shù)據(jù)庫中,創(chuàng)建一張 t3表 內(nèi)部包含 int類型的id 、 1字節(jié)的online id 表示 用戶某一個身份id online 表示 當前用戶是否登錄 (1表示登錄 0表示沒有登錄)

插入 (123 ,0 ) 表示123號用戶不在線 插入 (124 ,1 ) 表示 124號用戶在線 可當插入 (123,5)時 ,由于 online 的類型為1個比特位,所以只能插入0或者1,所以會報錯

輸入 select * from t3; 即查看t3表的結(jié)構(gòu) 發(fā)現(xiàn)online 對應(yīng)的位置 什么都看不到 是因為通常以ASCII值形式顯示的,而ASCII值在當前是不可顯示的

讓 online 以十進制方案顯示出來 這樣就可以看到 0 或者 1

創(chuàng)建表時,bit范圍是1到64,而當前設(shè)置是65,所以創(chuàng)建表不成功 會報錯

float 類型

float [ (m,d) ] [unsigned] : m指定顯示長度(數(shù)字位數(shù)的總個數(shù)) d指定小數(shù)位數(shù) 占用空間4個字節(jié)

創(chuàng)建一張表t5,包含 int類型的id 以及 float類型的salary,并且salary共有4位,其中2位是小數(shù) id 表示 這個人的身份 salary 表示 這個人的工資 float [ (4,2) ] 的取值范圍是 -99.99 和 99.99

向t5表插入 (1,99.99) 和(1,-99.99) ,是可以插入成功的 (float的取值范圍是有符號區(qū)分的)

若slary為23.46,則插入成功,并且顯示為23.46

若slary為23.467,則插入成功,并且顯示為23.47 ,因為四舍五入,將其進位

若slary為23.464,則插入成功,并且顯示為23.46,因為四舍五入,將其舍去

所以進行浮點數(shù)存儲時,若要求是2位精度,而傳入更多位的精度,mysql就會采用 四舍五入的方式 將數(shù)據(jù)進行存儲

(無符號)float

mysql支持定義符號的浮點數(shù)

float [ (4,2) ] 的取值范圍為 0 到 99.99

創(chuàng)建一張表t6,內(nèi)部包含 一個bigint類型的id 以及 無符號的浮點數(shù)類型的salary,并且salary共有4位,其中2位是小數(shù)

若插入 一個99.999,正常來說小數(shù)末尾是9 是要四舍五入的,但是進位 就會超過99.99的取值范圍 ,所以會報錯

decimal

decimal (m,d) [unsigned] : 定點數(shù)m指定長度 ,d表示小數(shù)點的位數(shù)

decimal(5,2) 的取值范圍是 -999.99 - 999.99 decimal(5,2)unsigned的取值范圍是 0 - 999.99 decimal和float很像,但是有區(qū)別: float 和 decimal 表示的精度不一樣

創(chuàng)建一張表 t7 ,內(nèi)部包含 float類型的f1,f1總長度為10 ,其中小數(shù)部分為8 以及decimal 類型的f2,f2總長度為4,其中小數(shù)部分為2

當插入 99.99 在decimal的取值范圍內(nèi)時,則插入成功 當插入99.999不在decimal的取值范圍內(nèi)時,則插入失敗

將屬于t7表的 decimal類型的f2 的精度 改為 總長度為10 ,其中小數(shù)部分為8

在t7表中的成員 f1和f2中分別插入 23.12345612

輸入 select *from t7; 查看t7表的信息 發(fā)現(xiàn) f1是精度方面的問題

float在精度過大時,會進行優(yōu)化策略 但decimal不會這樣,decimal可以完全保證數(shù)據(jù)的精度

3. 二進制類型

char類型

char(L) : 固定長度字符串,L是可以存儲的長度,單位為字符,最大長度值為255

在test_db數(shù)據(jù)庫中,創(chuàng)建一張表t8 ,內(nèi)部包含 int類型的id 以及 char類型的name

輸入 desc t8; 查看t8表中更詳細信息 t8表中的name 最多儲存2個字符

向t8表中插入 一個字符’a’ 或者插入兩個字符’ab’ 時,就可以插入成功 向t8表中插入三個字符’abc’時,就會報錯

MySQL中的字符代表一種符號,一個漢字代表一個字符

當插入1個字符 中 和2個字符 中國 時,是可以插入成功的 但當插入 3個字符 中國人時 ,因為最多儲存2個字符,所以會報錯

varchar類型

varchar(L) :可變長度字符串,L表示字符串長度,最大長度為65535個字節(jié)

創(chuàng)建一張表t9,內(nèi)部包含int類型的id 和 varchar類型的name,最多儲存6個字符 并默認字符集為uft8

每一個漢字都可以看做是一個字符 若輸入 1個字符 中, 3個字符中國人 都可以插入成功 若輸入 7個字符時,就會報錯

想要修改 t9表中的name成員的varchar類型 最多儲存65536個字符 但是報錯顯示 最多 為21845 個字符 ,可明明varchar 最大長度為65535個字節(jié)

MysQL在存儲varchar類型時,是按照utf8編碼的 在uft8編碼中,一個英文字符等于1個字節(jié),一個中文等于3個字節(jié) 假設(shè)以中文計算,21845個字符 乘以3 就為 65535 個字節(jié)

char為固定長度字符串,類似于c++中的數(shù)組 如:char(6) 就表示數(shù)組字符個數(shù)為6個字符,可能只用了1個字符空間,但是依舊會給6個字符空間

varchar為變長字符串 varchar(len) len定義多大就表示字符空間的上限 如:varchar(6) 可能只用了1個字符空間,就只會分配保存一個字符空間

varchar的字節(jié)長度在0 -65535之間 ,需要有1-3個字節(jié)用于記錄數(shù)據(jù)的大小 (傳入數(shù)據(jù)的大小不同,有可能數(shù)據(jù)小 1個字節(jié)就能記錄,有可能數(shù)據(jù)太大,就需要3個字節(jié)才能記錄) 假設(shè)有3個字節(jié)記錄數(shù)據(jù),所以有效字節(jié)數(shù)為65532

當表的編碼為utf8時,varchar(len) 的參數(shù) len最大值為 65532/3=218844 (一個字符占用3個字節(jié)為例) 所以最大字符個數(shù)為 21844

創(chuàng)建一張表t10,內(nèi)部包含 varchar類型的name ,其最多儲存21845個字符 因為超過了21844范圍,所以會報錯

當表中 name的varchar類型的取值為21844時,就可以創(chuàng)建成功

4. 日期時間

日期時間類型

常用的日期如下: date:日期 ‘yyy-mm-dd’ (年月日),占用三個字節(jié) datetime: 時間日期格式 ‘yyyy-mm-dd HH: ii:ss’ (年 日 時 分 秒) 表示范圍從1000到9999,占用八個字節(jié) timestamp:時間戳 ,從1970年開始的 yyy-mm-dd HH:ii:ss (年 月 日 時 分 秒) 格式和 datetime 完全一致,占用四個字節(jié)

創(chuàng)建一張表 t10 ,內(nèi)部包含 date類型的t1 ,datetime類型的t2,timestamp類型的 t3

輸入 desc t10; 查看t10表的更多詳細信息 t3的類型為時間戳,默認值為 CURRENT_TIMESTAMP 擴展說明:創(chuàng)建表結(jié)構(gòu)時,向表中插入數(shù)據(jù),timestamp會自動更新 而date與datetime 需要外部插入

向t10表中的成員 date類型的t1 和 datetime類型的t2 分別插入 2001-10-02 和2002-10-03 08:00:00

輸入 select * from t10; 查看t10表的更詳細的信息 發(fā)現(xiàn)t3自動更新為當前時間

當輸入 update t10 set t1=‘2003-10-04’; 更新t10表中t1的時間 發(fā)現(xiàn)t3所表示的時間戳 也會跟著變化

5. string 類型

enum類型和set類型

enum:枚舉 enum(‘選項1’,‘選項2’,‘選項3’); 提供若干個選項的值,最終一個單元格中,實際只存儲其中一個值 如:問卷調(diào)查 性別 只能選男或者女

set :集合 set(‘選項1’,‘選項2’,‘選項3’); 提供若干個選項的值,最終一個單元格中,可存儲任意多個值 如:問卷調(diào)查 愛好 可以選打羽毛球 乒乓球 籃球等

創(chuàng)建一張表 votes,其中包含 最多存儲30字節(jié)的名字 、 性別 、 愛好 同時 性別 只能從男或者女中 選擇一個 而愛好 可以從 代碼 籃球 游泳中 選擇一個或者多個

向votes表中插入 姓名為 張三 性別為 男 愛 好為代碼

當性別中 插入 0 和3 是不可以的,可插入 1 和 2 是可以的

輸入 select * from votes 時,發(fā)現(xiàn) 1對應(yīng)性別男 2對應(yīng)性別女

所以使用枚舉類型,可以使用對應(yīng)的枚舉常量 也可以使用枚舉常量對應(yīng)的下標 (從1開始 分別代表第一個枚舉值 依次往后推)

向votes表中插入 姓名 為趙六 、性別為男、 愛好為 代碼、籃球、游泳 (不允許插入不存在的愛好,同時也可以選擇插入一個愛好或者多個愛好)

enum類型 與 set類型 允許為空

只插入 名字,性別與愛好會顯示為NULL NULL表示什么都沒有

’ ’ 表示有東西,但是 為空串

若set類型 對應(yīng)的愛好 插入 0 ,則顯示為空串 若set類型 對應(yīng)的愛好 插入 1 ,則顯示為第一個設(shè)置的值 ,依次類推

若set類型 對應(yīng)的愛好 插入 2,則顯示為第二個設(shè)置的值 若set類型 對應(yīng)的愛好 插入 3 ,則顯示為第一個設(shè)置的值 和第二個設(shè)置的值

因為共有3個愛好,所以設(shè)置3個比特位 000 從右到左,依次為從低到高 若表示代碼,則為 001 若表示籃球,則為 010 若表示代碼和籃球,則為011 若表示游泳,則為 100

enum類型和set類型的查找

在枚舉中的查找

輸入 select * from votes where gender=‘男’; 挑選出votes表中所有男生的信息

輸入 select * from votes where gender=‘女’; 挑選出votes表中所有女生的信息

在set中的查找

輸入 select * from votes where hobby=‘游泳’; 挑選出votes表中愛好只有游泳的人 有的人愛好是廣泛的,其中就包含游泳,但是篩選并不顯示

所以需要借助 mysql的篩選函數(shù) —— find_in_set 函數(shù)

find_in_set(sub,str,str_list):如果sub在str_list中,則返回下標,如果不在,返回0; str_list 用逗號分隔的字符串

輸入 select * frin votes where find_in_set(‘游泳’,hobby); 在votes表 的 hobby 查找所有愛好有游泳 的人

and相當于 C語言的邏輯與 在votes表 的 hobby 查找所有愛好有游泳 以及 愛好有籃球的人

柚子快報邀請碼778899分享:【MySQL】數(shù)據(jù)庫數(shù)據(jù)類型

http://yzkb.51969.com/

相關(guān)鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18889914.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄