整型
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...