一、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 stu2G 查詢:


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為例,進行修改:
- 添加字段,語法:alter table 表名 add [column] 字段名 數據類型 [位置];





就兩個位置關鍵字,after ,first。
- 刪除字段:alter table 表 drop [column] 字段名;



- 修改字段(改名): alter table 表 change [column] 原字段名 新字段名 數據類型…;


- 修改字段(不改字段名只能改屬性),語法: alter table 表 modify 字段名 字段屬性…


- 修改引擎,語法:alter table 表名 engine=引擎名;


現在stu5的引擎為myisam,現在給他修改為innodb。




- 修改表名,語法: alter table 表名 rename to 新表名;





二、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的編碼形式。



原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/228424.html