MySQL資料庫和表操作(2)

金融數據之家 發佈 2020-01-19T01:10:45+00:00

'%'為通配符,按照規則一般是寫成like '%要查詢的字符%' 格式,這種方式查詢出來的結果'張'字可能存在數據的中間或者最後,跟自己想要的結果就會有些出入,涉及到數據取出來還要二次加工:select 欄位1,欄位2 from 表名 where 欄位1 like '%張%'

MySQL資料庫和表操作(1)請跳轉: https://www.toutiao.com/i6782001316597072387/

上一節中結尾提到MySQL查詢時欄位重命名,這裡補充幾點:

1、MySQL重命名時,別名可以用英文狀態下的單引號或者英文狀態下的雙引號括起來

2、MySQL重命名時可以省略as


3、MySQL重命名時,別名無特殊字符的,可以省略單引號或雙引號,但是建議按照規範使用。

4、別名中如果含有特殊字符會報錯

這時就需要規範的命名

表數據更新

UPDATE 表名 SET 欄位1='新值1', 欄位2='新值2', 欄位3='新值3'

WHERE 欄位1='條件1' and 欄位2='條件2';

將 "福建省" 下面身份證是 "35222719500815****"客戶的身份證號碼、年齡、金額更新為:身份證="35222719500815****",年齡="60",金額="80000"。

UPDATE financial SET idcard='35222719500815****', age='60', amount='80000'

WHERE province='福建省' and idcard='35222719550815****';

更新數據:

查詢更新結果:

數據表刪除


這裡的drop是刪除指定的表,這個操作會同時刪除表和表裡面的數據,這種一般是對整個表進行銷毀的時候使用,需要小心謹慎。

/* EXISTS --> 存在的意思,整句話就是如果要刪除的表存在,就刪除該表*/

DROP TABLE IF EXISTS 表名 ;

表中數據刪除

對於一些公司技術人員需要維護資料庫,就會涉及到刪除表中的錯誤或者異常數據,但是刪除操作需要很謹慎,除非有備份,一旦不小心刪除了,不能恢復。

delete from 表名 where 欄位1='條件1' ;

刪除"福建省"下面"年齡"<65歲的客戶:


模糊匹配

有時候我們可以自己想從表中查姓名一列數據,姓張(也可以是你想查到的其他姓)的人一共有多少個?這個時候就只能用到模糊查找。

'%'為通配符,按照規則一般是寫成 like '%要查詢的字符%' 格式,這種方式查詢出來的結果'張'字可能存在數據的中間或者最後,跟自己想要的結果就會有些出入,涉及到數據取出來還要二次加工:

select 欄位1,欄位2 from 表名 where 欄位1 like '%張%';

但是在知道姓名第一個字是要查詢'張'的時候,如果表中姓名列中,姓前面無空格占用,規範寫入數據的,可以使 like '張%' 進行模糊匹配,這樣模糊查詢出來的結果會更準確,如果有索引的會走索引,因此下面這種方法效率會比上面一種查詢效率高:

select 欄位1,欄位2 from 表名 where 欄位1 like '張%';

模糊查詢身份證中間年月日是 1960年1月1號的記錄:

註:一般情況不建議在MySQL中使用模糊查詢,尤其是數據量較大的表中,效率會很低。

其他知識點:

1、主鍵一定是索引,但是索引不一定是主鍵。一個表只能有一個主鍵或聯合主鍵,但是可以有多個索引。 主鍵欄位必須不能為空,但是索引欄位可以為空。

2、索引不是創建得越多越好,索引越多,表占用空間會越大。一般是常用且必須的才創建索引,對於網際網路公司來說,數據量龐大的表,索引動不動就能占用1個G以上。


3、表中數據列是保存漢字等的,不創建索引。

4、在MySQL中用 EXPLAIN+查詢語句 查看是否用到索引。

expain出來的信息有10列,分別是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra

解讀建議參考:http://www.cnitblog.com/aliyiyi08/archive/2008/09/09/48878.html

主要關註:select_type(select類型),type(連接類型),key(實際使用到的索引),rows(數值越小越好)

關鍵字: