標籤:指定 image 支援 upd 使用 ges select 備份 添加
修改表
修改表分為兩種:修改表自己,修改表內部的欄位
修改表自己:修改表名和表選項
修改表名
rename table 表名 to 新表名;
修改表選項
alter table 表名 表選項;
修改儲存引擎會修改對應的資料庫檔案夾下的檔案
修改表欄位:增刪改
alter table 表名 [add/drop/modify/change] 欄位名字 資料類型 [位置]
位置:first/ after 欄位名,預設的是本身或者所有的欄位之後
添加欄位
alter table 表名 add [colomn] 欄位名 資料類型 [位置]
修改欄位:修改名字和修改欄位的資料類型
修改欄位名字
alter table 表名 change 欄位原名 新名字 資料類型;
修改欄位資料類型
alter table 表名 modify 欄位名字 資料類型 [位置];
刪除欄位
alter table 表名 drop 欄位名;
刪除表
將表刪除和表裡面的資料也刪除
文法
drop table 表名,表名;
可以一次性刪除多個表,使用逗號分隔。
注意:資料表不要輕易刪除,刪除之前最好先備份。
資料操作
對錶裡面的資料進行增刪改查
新增資料
資料與結構有別,SQL額外使用了關鍵字insert into
文法
insert into 表名 [(欄位列表:欄位使用逗號分隔)] values(值列表:必須完全對應欄位列表。加引號,值之間用逗號分隔)[,(值列表)]
資料的新增方式有以下幾種
1. 部分欄位添加資料,沒有添加的部分系統會自動的使用欄位的預設值填充,必須指定欄位列表和值列表,順序都必須一一對應(欄位列表裡面的欄位可以與表結構中的欄位不一樣)
注意:採用這種方式插入資料的話,必須前提條件是沒有插入資料的欄位有預設值或者自增長
2. 給所有的欄位都添加資料:可以沒有欄位列表,如果沒有欄位列表,值列表裡面資料的順序就必須與表結構中的欄位順序一致。
3. 可以一次性插入多個資料(記錄),在values後面使用括弧和逗號進行分隔
查看資料
將表中的資料取出來查看
文法:
select */欄位列表 from 表名 where 條件;
where條件用來篩選資料
更新資料
文法
update 表名 set 欄位名 = 值[,欄位 = 值…] where 條件;
更新多條記錄
刪除資料
文法
delete from 表名 where條件; -- 沒有條件就會刪除所有的資料
字元集
1. 什麼是字元集?
字元集是字元的集合,不同的字元在進行二進位儲存的時候,應當遵循的某個轉換的規則。
字元集問題解決
1. 瞭解伺服器到底能支援哪些字元集?
show character set;
2. 瞭解伺服器預設的對外部客戶端的預設字元集支援
show variables like ‘character_set%’;
mysql用戶端只支援GBK,而伺服器預設用戶端是utf8字元集
解決方案:將伺服器認為的用戶端發送的資料由utf8改成gbk
set character_set_client = gbk;
解決效果
查詢效果
矛盾:查詢出來的結果依然是亂碼,原因是因為伺服器認為用戶端所能解析的結果的字元集是utf8的,用戶端實際上是GBK,GBK的確可以解析,只是解析成亂碼。
解決方案:修改伺服器認為的用戶端的所能接收的結果的字元集為gbk;
set character_set_results = gbk;
set names gbk:所做的事情就是將伺服器認為的跟用戶端相關的字元集(client和results)變成gbk,系統還會將connection也轉成gbk;
connection只是為了資料在內部進行轉換時,提升轉換的效率
原理圖
字元集的設定:根據用戶端自己的字元集進行設定。
20141229 mysql基本操作二