資料庫 儲存引擎 字段型別 約束條件

2022-06-13 09:00:11 字數 3798 閱讀 3065

儲存引擎是根據不同的機制處理不同的資料

檢視mysql中所有引擎

cmd>>>:show engines;

- myisam:5.5以前老的版本使用的儲存引擎

- blackhole(黑洞引擎):類似於佇列中的資料,存進去消失

- innodb:預設使用的儲存引擎

- 支援事務

- 行鎖

- 外來鍵

- memory:通電資料存在,斷電丟失

create table t1(id int)engine=innodb;

create table t2(id int)engine=myisam;

create table t3(id int)engine=blackhole;

create table t4(id int)engine=memory;

- 插入資料驗證引擎的作用:

insert into t1 values(1);

insert into t2 values(2);

insert into t3 values(3);

insert into t4 values(4);

約束條件:可有可無

寬度:限制某些資料型別的儲存大小

create table 表名(

欄位名1 字段型別(寬度) 約束條件,

欄位名2 字段型別(寬度) 約束條件

);

注意:

1、建立表的欄位名不能重複

2、最後乙個字段不能再末尾加 , 號

3、欄位名必須要有字段型別與寬度

​ 1)確定表結構

​ 2)欄位與字段型別

- 整型

- tinyint: 預設範圍 -128, 127

create table t5(

id tinyint,

name varchar(16)

);5.6.40

insert into t5 values(-128, 'tank'), (127, 'jason');

insert into t5 values(-129, 'tank');

insert into t5 values(128, 'jason');

insert into t5 values(12, 'sean');

- int: 預設範圍是(-2147483648, 2147483647)

應用場景: id號、年齡...

create table t6(

id int

);# int 預設寬度11---> 預設展示寬度

insert into t6 values(-2147483649);

insert into t6 values(2147483648);

insert into t6 values(100);

create table t7(

id int(3)

);# 若插入超過設定寬度,則正常顯示

insert into t7 values(123456);

# 若插入不足夠4位,則以空格補全

insert into t7 values(1);

- bigint

- 浮點型:

應用場景: 工資、身高、體重...

- float (預設5位)

- double(預設16位)

- decimal(預設沒有小數)

# 範圍255是最大長度(包括.小數), 30代表是小數的位數

create table t8(x float(255, 30));

create table t9(x double(255, 30));

create table t10(x decimal(65, 30));

# 插入資料

# 三種浮點型: 區別在於精確度不一樣

insert into t8 values(1.111111111111111111111111111111); # 精確度7位

insert into t9 values(1.1111111111111111111111111111); # 精確度15位

insert into t10 values(1.1111111111111111111111111111); # 取幾位小數,精準到多少位

char是定長字元他的特點是:

1、儲存空間固定

2、長度不夠時內部儲存使用空格填充

3、若欄位末尾存在空格,檢索出來自動截斷末尾的空格

4、若欄位本身前段存在空格,是不會階段的

5、當輸入字元的長度超過指定長度時,char會擷取超出的字元,不做儲存

優點:

訪問速度快

缺點:

浪費空間

varchar是可變長字元,他的特點是:

​ 1、儲存空間不固定,根據字段長度決定

​ 2、需要額外的乙個或兩個位元組記錄字串的長度,字串的長度小於255位元組使用1個位元組,否則2個

​ 3、最大長度65535位元組(這裡單位是位元組不是字元)

優點:

節省空間

缺點:

相較於char訪問速度慢

data:年月日 --->2019-12-11

datetime:年月日 時分秒 --->2019-12-11 11:10:00

time:時分秒 11:10:00

year:年 2019

timestamp:時間戳 ---> 插入時間時,會自動更新

create table student(

id int,

name varchar(4),

birth date,

register datetime,

work_time year,

t_time time,

update_time timestamp

);insert into student values(1, '張全蛋', '2019-11-11', '2019-11-11 11:11:11','2019', '11:11:11', null);

列舉enum('值1','值2')多選一,若不選,在嚴格模式下會報錯

集合set('值1','值2')多選一 多選多set('值1, 值2')

語法:create table 表名(

欄位名1 字段型別(寬度) 約束條件,

欄位名2 字段型別(寬度) 約束條件

);

1.not null --->不得為空

2.unique ---> 必須唯一

3.primary key ---> 主鍵

4.default ---> 設定預設值

5.auto_increment ---> 自增

6.zerofill ---> 用0填充空格

7.unsigned ---> 無符號

01 2資料庫約束條件

約束的分類 1 主鍵 pk primary key 2 唯一約束 uk unique key 3 外來鍵約束 fk foreign key 4 非空約束 nn not null 5 檢查約束 ck check 6 預設值約束 default ps 1 pk uk nn 唯一且非空 2 實現方法 co...

資料庫之約束條件

約束條件 python primary key pk 標識該字段為該錶的主鍵,可以唯一的標識記錄 foreign key fk 標識該字段為該錶的外來鍵 not null 標識該欄位不能為空 unique key uk 標識該字段的值是唯一的 auto increment 標識該字段的值自動增長 整...

資料庫表的約束條件

主鍵約束可以用兩種方式定義 列級主鍵約束和表級主鍵約束 列級主鍵約束演示 create table dept htlwk deptno varchar 20 primary key,列級約束條件 dname varchar 20 location varchar 40 表級主鍵約束演示 create...