下面正式開始mysql操作學(xué)習(xí)了,基礎(chǔ)知識點會枯燥,會無味,會焦慮,但是相信當(dāng)你熟練掌握后會無比的興奮,因為你在見證數(shù)據(jù)給這個時代帶來的偉大變革,你正在見證由數(shù)據(jù)庫驅(qū)動的信息革命
一.創(chuàng)建表
1.創(chuàng)建表
create table [if not exists] 表名(
字段名稱 數(shù)據(jù)類型 [null | not null],
字段名稱 數(shù)據(jù)類型 [auto_increment],
字段名稱 數(shù)據(jù)類型 [primary key],
字段名稱 數(shù)據(jù)類型 [default],
字段名稱 數(shù)據(jù)類型 [comment]
)engine=存儲引擎;
字段名稱: 相當(dāng)于Excel中每一列的名稱
數(shù)據(jù)類型: 相當(dāng)于Excel中每一列的數(shù)據(jù)類型
[null | not null] 該字段是否可以為空, 默認(rèn)都可以為空
[auto_increment] 該字段的值自動增長
[primary key] 主鍵, 一張表中只能有一個主鍵
[default] 默認(rèn)值, 如果沒有傳遞對應(yīng)的值, 就使用默認(rèn)值
[comment] 備注, 方便程序員之間溝通
存儲引擎 innodb/myisam/memory
注意點:
由于一個MySQL中可以有很多數(shù)據(jù)庫, 所以在創(chuàng)建表之前必須告訴MySQL要創(chuàng)建到哪一個數(shù)據(jù)庫中
示例一:
use person;
create table stu(
id int,
name varchar(20)
);
上面語句的含義: 在person數(shù)據(jù)庫中創(chuàng)建一張叫做stu的表, 表中有兩個字段, 分別是id和name, id將來可以存儲int類型的值, name將來可以存儲字符串類型的值
示例二: 企業(yè)開發(fā)推薦寫法
use person;
create table if not exists stu(
id int,
name varchar(20)
);
--------------------------------------極客江南
二.查看表
1.查看數(shù)據(jù)庫中的表
show tables;
2.查看表的結(jié)構(gòu)
desc[ribe] 表名;
三.刪除表
1.刪除表
drop table [if exists] 表名1, 表名2, ....;
示例一:
drop table stu;
注意點: 表不存在會報錯
示例二:
drop table if exists stu;
示例三:
drop table if exists stu1,stu2;
四.修改表
1.添加字段
1.修改表
6.1添加字段
alter table 表名 add 字段名 數(shù)據(jù)類型 [位置];
示例一:
會將新的字段添加到原有字段的最后
alter table stu3 add email varchar(30);
示例二:
會將新的字段添加到原有字段的最前面
alter table stu3 add phone int first;
示例三:
會將新的字段添加到指定字段的后面
alter table stu3 add addr varchar(100) after name;
----------------------------------極客江南
2.刪除字段
6.2刪除字段
alter table 表名 drop 字段名;
示例一:
alter table stu3 drop name;
3.修改字段
6.3修改字段
alter table 表名 change 原始字段名 新字段名 數(shù)據(jù)類型;
示例一:
改字段名稱, 并且改字段的類型
alter table stu3 change addr age int;
示例二:
改字段的類型, 不改字段的名稱
alter table stu3 modify phone varchar(20);
4.修改存儲引擎
6.4修改存儲引擎
- 前面我們說過數(shù)據(jù)庫的本質(zhì)就是文件, 所以我們可以先觀察一下
- 通過我們的觀察, 發(fā)現(xiàn)只要新建一個數(shù)據(jù)庫, 就會自動創(chuàng)建一個文件夾
- 通過我們的觀察, 發(fā)現(xiàn)只要刪除一個數(shù)據(jù)庫, 就會自動刪除一個文件夾
innodb: 默認(rèn)
create table stu(
id int,
name varchar(20)
);
create table stu1(
id int,
name varchar(20)
)engine=innodb;
- 通過觀察發(fā)現(xiàn)指定存儲引擎為innodb和不指定引擎創(chuàng)建表生成的文件夾都一樣, 所以推斷出默認(rèn)使用的就是innodb存儲引擎
- innodb存儲引擎只要創(chuàng)建一張表就會自動創(chuàng)建一個后綴為frm的文件
- 注意:
- .frm文件不是存儲表中的數(shù)據(jù)的, 數(shù)據(jù)會存儲到ibdata1中, 如果數(shù)據(jù)比較多系統(tǒng)會自動創(chuàng)建ibdata2, ibdata3, ....
- .frm文件是MySQL表結(jié)構(gòu)定義文件
myisam:
create table stu2(
id int,
name varchar(20)
)engine=myisam;
通過觀察發(fā)現(xiàn)指定存儲引擎為myisam, 只要創(chuàng)建一張表就會自動創(chuàng)建三個文件
- .frm文件是MySQL表結(jié)構(gòu)定義文件
- .MYD文件存儲表的數(shù)據(jù)
- .MYI文件存儲表的索引
memory:
create table stu3(
id int,
name varchar(20)
)engine=memory;- 通過觀察發(fā)現(xiàn)指定存儲引擎為memory; 只要創(chuàng)建一張表就會自動創(chuàng)建一個文件
- .frm文件是MySQL表結(jié)構(gòu)定義文件
- 注意點:
- memory會將數(shù)據(jù)存儲到內(nèi)存中, 一旦電腦重啟數(shù)據(jù)就不見了
- 特點讀寫比較快, 但是不會永久存儲
alter table 表名 engine=引擎名稱;
修改表的存儲引擎
alter table stu2 engine=innodb;
5.修改表名稱
6.5修改表名
alter table 原始名稱 rename to 新名稱;
---------------------------------------------------極客江南