Mysql常用基礎(chǔ)操作命令及數(shù)據(jù)操作命令一覽

一、MySQL關(guān)于表基礎(chǔ)命令

1.1 表的創(chuàng)建

語法: create table if not exists 表名 ( 字段名 數(shù)據(jù)類型(null | not null,default | auto_increment,primary key,comment,varchar,), 字段名 數(shù)據(jù)類型 ... ) engine=存儲引擎 charset=字符編碼

數(shù)據(jù)類型 含義
null,not null 是否為空
default 默認值
auto_increment 自動增長,默認1開始,每次遞增1
primary key 主鍵
comment 備注
varchar 字符串
engine 引擎,有myisam、innodb

如果表名和字段名用了關(guān)鍵字,特殊符號,要用反引號括起來。 例:

image
image
image
image

小結(jié):

  • 如果不指定引擎,默認是myisam
  • 如果不知道字符編碼,默認和數(shù)據(jù)庫的編碼一致
image
image

1.2 表的文件

一個數(shù)據(jù)庫對應(yīng)一個文件夾,一個表對應(yīng)兩個個或多個文件,主要取決與引擎,引擎是innodb,生成一個文件。引擎是myisam生成3個文件:

image
image

innodb和myisam的區(qū)別:

  • myisam查詢速度快,容易產(chǎn)生碎片,不能約束數(shù)據(jù)
  • innodb以前沒有myisam查詢速度快,現(xiàn)在已經(jīng)提速了,不產(chǎn)生碎片

1.3 顯示創(chuàng)建表的語句

語法: show create table stu2;

image
image

還可以 show create table stu2\G 查詢:

image
image

1.4 查看表結(jié)構(gòu)

語法: describle 表名;

image
image

可以簡寫為: desc 表名;

image
image

1.5 刪除表

語法: drop table if exists 表1,表2,...;

image
image

1.6 復(fù)制表

語法一: create table 新表 select 字段 | * from 舊表; 特點:不能復(fù)制父表的鍵,能夠復(fù)制父表的數(shù)據(jù)。不寫字段,寫*號代表復(fù)制所有字段。

image
image

但是注意主鍵沒有復(fù)制。

語法二: create table 新表 like 舊表; 特點: 只能復(fù)制表結(jié)構(gòu),不能復(fù)制表數(shù)據(jù)。

image
image

主鍵復(fù)制過來了,如果表里有數(shù)據(jù),數(shù)據(jù)的話復(fù)制不了。

1.7 修改表

語法: alter table 表名;

image
image

我們以stu1為例,進行修改:

  • 添加字段,語法:alter table 表名 add [column] 字段名 數(shù)據(jù)類型 [位置];
image
image
image
image

就兩個位置關(guān)鍵字,after ,first。

  • 刪除字段:alter table 表 drop [column] 字段名;
image
image
  • 修改字段(改名): alter table 表 change [column] 原字段名 新字段名 數(shù)據(jù)類型...;
image
image
  • 修改字段(不改字段名只能改屬性),語法: alter table 表 modify 字段名 字段屬性...
image
image
  • 修改引擎,語法:alter table 表名 engine=引擎名;
image
image

現(xiàn)在stu5的引擎為myisam,現(xiàn)在給他修改為innodb。

image
image
image
image
  • 修改表名,語法: alter table 表名 rename to 新表名;
image
image
  • 將表移動到其他數(shù)據(jù)庫
image
image

二、MySQL關(guān)于數(shù)據(jù)操作命令

2.1 插入數(shù)據(jù)

語法: insert into 表名(字段名,字段名,...) values(值1,值2,...);

image
image

字段名可以省略,代表全有字段有需要插入,不過在values值那里,必須要與字段關(guān)系一一對應(yīng):

image
image

當(dāng)字段為空值時,寫null,為默認值時寫default:

image
image

插入多個數(shù)據(jù):

image
image

2.2 查詢數(shù)據(jù)

語法:select 列命 | * from 表名;

image
image

2.3 更新數(shù)據(jù)

語法: update 表名 set 字段=值 [where 條件]

image
image

更新多個:

image
image

2.4 刪除數(shù)據(jù)

語法:delete from 表名 [where 條件];

image
image

刪除表中所有數(shù)據(jù):delete from 表名 ; 或者 truncate table 表名;

image
image

兩者區(qū)別:delete from 表:遍歷表記錄,一條一條的刪除,truncate table:將原表銷毀,在創(chuàng)建一個同結(jié)構(gòu)的新表,就情空表而言,這種方法效率高。

我們再插入幾條數(shù)據(jù):

image
image

2.5 數(shù)據(jù)傳輸使用字符集

在插入數(shù)據(jù)的時候,如果插入中文,如果報錯了,或者中文無法插入。 查看客戶端發(fā)送的編碼:

image
image

當(dāng)前默認是gbk。

查看服務(wù)器接收返回的編碼: show variables like 'character_set_%';

image
image

更改接收客戶端指令編碼: set character_set_client=編碼格式;

image
image

接著我們?nèi)ゴ嫒胫形模?/p>

image
image

會發(fā)現(xiàn)已經(jīng)亂碼了,因為客戶端發(fā)送的編碼和服務(wù)端接收的編碼不一致。如果將來有發(fā)現(xiàn)這個問題的話,就要注意編碼要一致。

可以使用命令 set names gbk; 將服務(wù)端,所有編碼全部都以gbk的編碼形式。

image
image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容