Mysql系列之二 資料型別

2021-10-13 16:04:21 字數 3810 閱讀 3591

不同的檔案有不同的字尾名,例如txt,docx,cfg,ini,mp4等等,不同的檔案有不同的處理方式。而引擎就是處理不同種檔案格式的方式

show engines ; # 檢視所有引擎

select databese(); # 檢視在哪乙個資料庫下

1.innodb  # 在5.5之後為預設引擎,支援事務,外來鍵,行鎖

2.myisam # 在5.5之前為預設引擎

3.memory # 記憶體儲存,資料儲存在記憶體,斷電即小時

4.blackhole # 黑洞,存入的資料都會消失,常用於資料庫集群

# 建立乙個表的完整格式

# create table 表名(列名 資料型別(資料長度)約束,約束,..)引擎 = ...

注意: 1、類名和資料型別必須填寫,資料長度和約束可以不填寫

2、在同一張表中,列名不能相同

3、最後一行不能有逗號

;

當重新開啟資料庫服務端時

此時memory引擎表為空,而黑洞一直為空。

tinyint smallint meduimint int bigint五種型別

用來儲存年齡、等級、id、學號等內容

create table t1(id int);
create table t1(id int unsigned);
對於其他型別來說,型別後的寬度代表最大能夠顯示個字元個數,而對於數字型別來說代表如果不足八位則由空格補齊,如果超過八位則不受八位的限制

如何由數字填充變為零填充

create table t1(id tinyint zerofill unsigned);
嚴格模式是指資料如果超出範圍或超過一些規定等行為的出現直接報錯,mysql不會自動判斷並且插入在範圍內的數等現象

模糊查詢

like:表示查詢類似的

%:匹配任意多個字元

_:匹配任意單個字元

語法

show variables like '%mode'
全域性修改和區域性會話修改

set session #會話級別

set global #全域性級別

修改語法

set global sql_mode = 'srtict_trans_tables';

注意:修改之後重新進入服務端才生效

float,double,decimal

精度比較:floatdecimal

float(255,30)  # 總共255位 小數部分佔30位

double(255,30) # 總共255位 小數部分佔30位

decimal(65,30) # 總共65位 小數部分佔30位

用來記錄身高、體重、工資等資料型別

create table t14(id float(255,30));

create table t15(id double(255,30));

create table t16(id decimal(65,30));

insert into t14 values(1.12312312311111111111);

insert into t15 values(1.12312312311111111111);

insert into t16 values(1.12312312311111111111);

char:定長 # 超過四個報錯,未超過四個自動補全為四個

varchar邊長 # 超過四個報錯,為超過四個不自動補全

create table t17(name char(4) unsigned);

create table t18(name varchar(4));

select char_length(name) from t1;
為何統計結果一致

在硬碟中儲存中char肯定是4個字元,但是當兩種型別的資料讀到記憶體中的時候,mysql會做自動處理,所以才會統計的長度一致。
優點:速度快

缺點:占用硬碟空間,無論資料長短都會補全為最長

優點:省硬碟空間

缺點:由於儲存資料的長短不知道,所以每乙個資料都會被打上頭資訊儲存,讀取時先讀取頭資訊,然後按位數讀取資料。讀取資料相對來說較慢

由於現在電腦執行速度越來越快,所以varchar讀取資料其實也很快,但能夠節省大量的記憶體,所以可以使用varchar

date:年月日 x-x-x

datetime:年月日時分秒 x-x-x x: x: x

time:x : x : x

year:年

create table student(brith date,register datetime,nowtime time,year year);
列舉是指指定乙個範圍,使用者只能從中選擇乙個資料,如果插入資料不在範圍中,則報錯(在8.0版本不會顯示資料)

create table t20(id int,name char(4),*** num('male','female'));
集合是指定乙個範圍,使用者從中選擇乙個或多個資料,如果插入資料不在範圍內則會報錯 。

create table student(id int,name char(4),hobby set('***','看美女',『吃臭腳』));
insert into student values(1,'curry','***,看美女');

python資料型別之二

列表 list 定義 內可以有多個任意型別的值,逗號分隔 基本語法 定義 內可以有多個任意型別的值,逗號分隔 my girl friends alex wupeiqi yuanhao 4,5 本質my girl friends list 或 l list abc 常用操作 1 按索引訪問值 正向訪問...

MySQL系列03 資料型別

資料型別是指列 儲存過程引數 表示式和區域性變數的資料特徵,它決定了資料的儲存格式,代表了不同的資訊型別。有符號位可以表示負數 無符號位只能表示0和正數 在正數表達的範圍內,無符號位是有符號位的兩倍範圍 上述int及以下類別,每個類別都是2的冪次行增加8位,分別為28 216 224 232 位元組...

MySQL 資料型別 二

mysql有三大類資料型別,分別為數字 日期 時間 字元串,這三大類中又更細緻的劃分了許多子型別 2 日期和時間 date time datetime timestamp year 3 字串型別 1.1 整型 mysql資料型別 含義 有符號 tinyint m 1個位元組 範圍 128 127 s...