數據的介紹
-
數據類型的本質強調的是數據的存儲格式和表示范圍、表示精度
-
只有類型符合要求的數據才能存儲起來 這就是對數據完整性的一種要求
-
-
使用數據類型的原則是:夠用就行,盡量使用取值范圍小的,而不用大的,這樣可以更多的節省存儲空間
-
常用數據類型如下:
-
整數:int,bit
-
小數:decimal
-
字符串:varchar,char
-
日期時間: date, time, datetime
-
枚舉類型(enum)
-
-
特別說明的類型如下:
-
decimal表示浮點數,如decimal(5,2)表示共存5位數,小數占2位
-
char表示固定長度的字符串,如char(3),如果填充'ab'時會補一個空格為
'ab ' -
varchar表示可變長度的字符串,如varchar(3),填充'ab'時就會存儲'ab'
-
對于圖片、音頻、視頻等文件,不存儲在數據庫中,而是上傳到某個服務器上,然后在表中存儲這個文件的保存路徑
-
字符串text表示存儲大文本,當字符大于4000時推薦使用 比如技術博客
-
問題 人與人之間的距離、人的身高、年齡、馬云爸爸的錢用什么類型來存儲?
1.2 約束
-
約束本質上是 對數據在數據類型限定的基礎上 添加的額外的要求。
-
主鍵primary key:物理上存儲的順序 MySQL建議所有表的主鍵都叫id字段 類型為int unsigned
-
非空not null:此字段不允許填寫空值
-
惟一unique:此字段的值不允許重復
-
默認default:當不填寫字段對應的值會使用默認值,如果填寫時以填寫為準
-
外鍵foreign key:對關系字段進行約束,當為關系字段填寫值時,會到關聯的表中查詢此值是否存在,如果存在則填寫成功,如果不存在則填寫失敗并拋出異常
-
2.表結構的操作
-
查看當前數據庫中所有表
show tables;-
查看表結構
desc 表名;-
創建表結構的語法
*提示 auto_increment表示自動增長
CREATE TABLE table_name(
字段名稱 數據類型 可選的約束條件,
column1 datatype contrai,
column2 datatype,
column3 datatype,
.....
columnN datatype,
-- 主鍵說明可以放在字段中單獨說明 也可以放在最后統一說明
PRIMARY KEY(one or more columns)
);
例:創建班級表
create table classes(
id int unsigned auto_increment primary key not null,
name varchar(10)
);例:創建學生表
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','女','人妖','保密'),
cls_id int unsigned default 0
)-
修改表-添加字段
alter table 表名 add 列名 類型;
?
例:
alter table students add birthday datetime;什么時候需要給表新增字段 表已經創建好 但是表中沒有需要的字段時
-
修改表-修改字段:重命名版
在表中已有字段 但是字段名不滿足要求 類型或約束滿足或者不滿足均可。
alter table 表名 change 原名 新名 類型及約束;
例:
alter table students change birthday birth datetime not null;-
修改表-修改字段:不重命名版
在表中已有字段 并且字段名也滿足要求 但是類型或約束不滿足要求
alter table 表名 modify 列名 類型及約束;
例:
alter table students modify birth date not null;-
修改表-刪除字段
當表中多出一個字段 已經不再需要的時候
alter table 表名 drop 列名;
例:
alter table students drop birthday;-
刪除表-慎重
drop table 表名;
例:
drop table students;-
查看表的創建語句-詳細過程
show create table 表名;
例:
show create table classes; -

浙公網安備 33010602011771號