MySQL的學習入門二

一、MySQL關於表基礎命令

1.1 表的創建

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

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

如果表名和字段名用了關鍵字,特殊符號,要用反引號括起來。
例:
在這裏插入圖片描述在這裏插入圖片描述
小結:

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

在這裏插入圖片描述

1.2 表的文件

一個數據庫對應一個文件夾,一個表對應兩個個或多個文件,主要取決與引擎,引擎是innodb,生成一個文件。引擎是myisam生成3個文件:
在這裏插入圖片描述
innodb和myisam的區別:

  • myisam查詢速度快,容易產生碎片,不能約束數據
  • innodb以前沒有myisam查詢速度快,現在已經提速了,不產生碎片

1.3 顯示創建表的語句

語法: show create table stu2;
在這裏插入圖片描述
還可以 show create table stu2\G 查詢:
在這裏插入圖片描述

1.4 查看錶結構

語法: describle 表名;
在這裏插入圖片描述
可以簡寫爲: desc 表名;
在這裏插入圖片描述

1.5 刪除表

語法: drop table if exists 表1,表2,...;
在這裏插入圖片描述

1.6 複製表

語法一: create table 新表 select 字段 | * from 舊錶;
特點:不能複製父表的鍵,能夠複製父表的數據。不寫字段,寫*號代表複製所有字段。
在這裏插入圖片描述
但是注意主鍵沒有複製。

語法二: create table 新表 like 舊錶;
特點: 只能複製表結構,不能複製表數據。
在這裏插入圖片描述
主鍵複製過來了,如果表裏有數據,數據的話複製不了。

1.7 修改表

語法: alter table 表名;
在這裏插入圖片描述
我們以stu1爲例,進行修改:

  1. 添加字段,語法:alter table 表名 add [column] 字段名 數據類型 [位置];
    在這裏插入圖片描述在這裏插入圖片描述
    就兩個位置關鍵字,after ,first。

  2. 刪除字段:alter table 表 drop [column] 字段名;
    在這裏插入圖片描述

  3. 修改字段(改名): alter table 表 change [column] 原字段名 新字段名 數據類型...;
    在這裏插入圖片描述

  4. 修改字段(不改字段名只能改屬性),語法: alter table 表 modify 字段名 字段屬性...
    在這裏插入圖片描述

  5. 修改引擎,語法:alter table 表名 engine=引擎名;
    在這裏插入圖片描述
    現在stu5的引擎爲myisam,現在給他修改爲innodb。
    在這裏插入圖片描述
    在這裏插入圖片描述

  6. 修改表名,語法: alter table 表名 rename to 新表名;
    在這裏插入圖片描述

  7. 將表移動到其他數據庫
    在這裏插入圖片描述

二、MySQL關於數據操作命令

2.1 插入數據

語法: insert into 表名(字段名,字段名,...) values(值1,值2,...);
在這裏插入圖片描述
字段名可以省略,代表全有字段有需要插入,不過在values值那裏,必須要與字段關係一一對應:
在這裏插入圖片描述
當字段爲空值時,寫null,爲默認值時寫default:
在這裏插入圖片描述
插入多個數據:
在這裏插入圖片描述

2.2 查詢數據

語法:select 列命 | * from 表名;
在這裏插入圖片描述

2.3 更新數據

語法: update 表名 set 字段=值 [where 條件]
在這裏插入圖片描述
更新多個:
在這裏插入圖片描述

2.4 刪除數據

語法:delete from 表名 [where 條件];
在這裏插入圖片描述
刪除表中所有數據:delete from 表名 ; 或者 truncate table 表名;
在這裏插入圖片描述
兩者區別:delete from 表:遍歷表記錄,一條一條的刪除,truncate table:將原表銷燬,在創建一個同結構的新表,就情空表而言,這種方法效率高。

我們再插入幾條數據:
在這裏插入圖片描述

2.5 數據傳輸使用字符集

在插入數據的時候,如果插入中文,如果報錯了,或者中文無法插入。
查看客戶端發送的編碼:
在這裏插入圖片描述
當前默認是gbk。

查看服務器接收返回的編碼:
show variables like 'character_set_%';
在這裏插入圖片描述
更改接收客戶端指令編碼:
set character_set_client=編碼格式;
在這裏插入圖片描述
接着我們去存入中文:
在這裏插入圖片描述
會發現已經亂碼了,因爲客戶端發送的編碼和服務端接收的編碼不一致。如果將來有發現這個問題的話,就要注意編碼要一致。

可以使用命令 set names gbk; 將服務端,所有編碼全部都以gbk的編碼形式。
在這裏插入圖片描述
在這裏插入圖片描述

在學習的MySQL的路上,如果你覺得本文對你有所幫助的話,那就請關注點贊評論三連吧,謝謝,你的肯定是我寫博的另一個支持。

8小時Python零基礎輕鬆入門


150講輕鬆搞定Python網絡爬蟲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章