MySQL MySQL下的常用型別,主鍵和唯一鍵

2021-09-23 17:23:07 字數 2112 閱讀 7799

整型

tinyint , smallint , int , bigint

小數浮點數(不是高精度) float/double

保證精度 decimal/numerous

幾個坑bit 顯式的時候是 ascii 碼

char 最多 255 個字元

varchar 最多是 65535 個位元組,具體多少字元65535/3(每個utf8 佔 3 位元組)

字元型別

定長 char(字元個數)

變長 varchar(字元個數)

text 字元(常用於特別長的文字,文章)

blob 位元組流

日期、時間

datetime 年-月-日 時:分:秒

date 年-月-日

time 時:分:秒

timestamp 時間戳(1970 的秒數)

timestamp

datetime

4 個位元組

8 個位元組

1970 - 2023年

0000-2023年

mysql 規範上不建議使用 enum 和 set

修改表結構的代價非常大

enum/set 資訊儲存在表結構中

所以,更新 enum 及 set 都需要修改表結構,風險較大

所以不建議使用

帶括號的資料型別

char(字元個數,會影響字段長度)

varchar(字元個數,會影響字段長度)

bit(位的長度,會會影響字段長度)

float(整體的顯式位數,小數點後顯式位數;不影響字段長度)

int(顯式長度,不影響字段長度) zerofill

null 不區分大小寫

null 的真實含義時,這個字段值不知道

所以一般來說,有 null 參與的運算結果都是 null

定義表時,欄位後可以跟 not null 強制不允許出現空

沒有特殊理由,建議都加上 not null

主鍵,每個資訊都有主鍵,用來唯一標識一條資訊

可以是乙個字段,可以是多個字段組成(復合主鍵)

在 innodb 的引擎下,資料在硬碟儲存是按照主鍵的排序方式儲存的,為了避免中間插入主鍵,通常建議把主鍵設定成乙個永遠遞增,永不修改的值

主鍵不允許為空/主鍵不允許重複

每個表上都有乙個主鍵,通常用自增欄位作為主鍵

唯一鍵 unique key

相似的點:主鍵和唯一鍵都不允許重複

不同點:

主鍵不允許為空,唯一鍵允許為空

儲存上,資料的儲存是按照 主鍵 遞增順序儲存的

唯一鍵,看作另外有一套資料結構

建立乙個學生表

//注意最後一行不能有逗號!!!

create table students (

id int unsigned primary key auto_increment comment "利用自增字段作為表主鍵",

sn int not null unique comment "學號,事實上的主鍵,唯一鍵,不允許重複",

name varchar(10) not null comment "姓名",

gender tinyint not null comment "性別: 1 女 2 男 3 不想說",

school varchar (40) not null default "西安財經大學" comment "學校",

registerd_at datetime not null comment "報名時間",

created_at timestamp not null default current_timestamp comment "入錶時間"

) comment "學生表";

create table students (

...primary key (id, sn) -- 支援單字段 或者 多欄位

unique key (sn, name)

)

insert into students(sn,name,gender,registerd_at) values (125,"王五",2,"2019-9-9 21:44:20");

三類MySQL MySQL常用的三類函式

經常編寫程式或者使用資料庫的同學一定體會到函式的重要性,豐富的函式往往能使使用者的工作事半功倍。函式能幫助使用者做很多事情,比如說字串的處理 數值的運算 日期的運算等,在這方面mysql提供了多種內建函式幫助開發人員編寫簡單快捷的sql語句,其中常用的函式有字串函式 日期函式和數值函式。1 字串函式...

mysql Mysql目前主要的幾種索引型別

mysql目前主要有以下幾種索引型別 fulltext,hash,btree,rtree。即為全文索引,目前只有myisam引擎支援。其可以在create table alter table create index 使用,不過目前只有 char varchar text 列上可以建立全文索引。全文...

String類下常用API

1 定義 多個字元組成的一串資料。其實它可以和字元陣列進行相互轉換。2 構造方法 a public string b public string byte bytes c public string byte bytes,int offset,int length d public string c...