mysql學習筆記(2)

2021-06-26 09:15:49 字數 1808 閱讀 7658

mysql中資料型別:

1.整形

整形大小(位元組)

數值(有符號)

tinyint

1-128--127

smallint

2-2^15--2^15-1

mediumint

3-2^23--2^23-1

int4

-2^32--2^32-1

bigint

8-2^63--2^63-1

tinyint(m) unsigned zerofill not null default 0
m:代表顯示寬度(在zerofill是才有意義)

unsigned:無符號,影響儲存範圍

zerofill:零填充 (無符號)

not null default 0 :自動填充0  列可宣告預設知,且最好宣告

2.浮點型

型別典型宣告方式

範圍float(m,d)

score float(5,2)

m:精度(總位數)d:標度(小數點)

decimal(m,d)

score decimal(5,2)

同上例:

float(6,2)  range -9999.99—9999.99

float(6,2)unsigned  range 0—9999.99

3.字元型

型別說明

典型宣告方式

範圍char(m)

定長字串 m表示可容納的字元數(不是位元組數)

name char(10)

0-255

varchar(m)

變長字串 m表示可容納的字元數(不是位元組數)

name varchar(10)

0-65535(以ascii字元為例,utf8 22000左右) utf8佔3位元組

text

文字串resume text

2w-6w

char ,varchar的區別:

char定長 設定m 長度就為m 如果沒有m個後面用 空格 補齊,取出時再去掉後面的 空格(中間的 空格 不管),所以char型別資料後面不能儲存 空格

varchar 變長 存的小於m個字元,設為n,n<=m,實際佔n個字元+(1-2)個位元組 (後面1-2個字元時儲存varchar長度資訊的)  取出時不會去掉後面的 空格

選用原則:考慮

1.速度

2.如何最省空間

4.日期時間型別

型別典型格式

大小範圍

year

2012  如果輸入兩位 「00-69」表示2000-2069 「70-99」1970-1999

1位元組表示』1901』-『2155』,0000,『表示錯誤時的選擇』

date

1992-08-12

『1000-01-01』 –> 』99991.12.31』

time

00:00:00

『-838:59:59』à

』 838:59:59』

datetime

1993-04-11 12:00:56

『1000-1-1 00:00:00』à』9999-12-31 23:59:59『

很少使用datetime型別來表示時間,一般不需要精確到秒

原因:雖然方便檢視,而且能精確到秒不好定位

時間戳:是1970-01-01 00:00:00 到當前的秒數

一般儲存註冊時間,商品發布時間等,並不是用datetime,而是用時間戳

datetime檢視方便 但不直觀

用int儲存時間戳,方便計算,對於顯示也更靈活

mysql學習筆記2

mysql常用函式 1 字串函式 concat s1,s2.sn 把傳入的引數連線成乙個字串 select concat baiduadress,address from kd order insert str,x,y,newstr 將字串str從第x位置開始,y個字元長的子串替換為字串newstr...

mysql學習筆記2

約束 作用 為了保證資料的有效性和完整性 mysql中常用的約束 主鍵約束 primary key 唯一約束 unique 非空約束 not null 外來鍵約束 foreign key 主鍵約束 被修飾過的字段唯一非空 注意 一張表只能有乙個主鍵,這個主鍵可以包含多個字段 方式1 建表的同時新增約...

mysql學習筆記(2)

mysql 函式 1.length 獲取引數值的位元組個數 select length join select length 漢字所佔位元組 2.concat 拼接字串 select concat last name,frist name 姓名 from table name 3.upper low...