MySQL建表階段是非常重要的一個環(huán)節(jié),表結(jié)構(gòu)的好壞、優(yōu)劣直接影響著后續(xù)的管理維護,趕在明天上班前分享總結(jié)個人MySQL建表、MySQL查詢優(yōu)化積累的一些實用小技巧。
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蕉城,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
技巧一、數(shù)據(jù)表冗余記錄添加時間與更新時間
我們用到的很多數(shù)據(jù)表大多情況下都會有表記錄的“添加時間(add_time)”,我建議大家再新增一個記錄“更新時間(update_time)”字段,在我的工作里需要為市場部、運營部等建立各種報表,而很多報表里的數(shù)據(jù)都是需要到大記錄表里去查詢的,如果直接查詢大表的話,查詢速度相當(dāng)慢。那么,我們的解決辦法就是建立各種數(shù)據(jù)快照,數(shù)據(jù)快照都是通過腳本定時跑的。假如,哪一天原始數(shù)據(jù)表出現(xiàn)了問題,那么快照數(shù)據(jù)也會有問題,這個時候我們的快照腳本就得重新跑一份修復(fù)好了的數(shù)據(jù),這樣有了update_time更新時間這個字段,我們就能很快定位記錄更新的時間。
技巧二、不要拋棄insert
ignore
into與replace
into
大家肯定寫過一些腳本循環(huán)將記錄插入到數(shù)據(jù)表,例如使用PHP腳本。如果期間的一條SQL插入失敗,那么后續(xù)的插入將終止,你可以在腳本里繞過這個插入錯誤,一個好的辦法是使用ignore關(guān)鍵字來屏蔽插入錯誤。如果,你的數(shù)據(jù)表里已經(jīng)存在有將要插入的相同記錄,那么這個時候就會產(chǎn)生插入報錯,使用
insert
ignore
into將繞開這個錯誤,繼續(xù)下一條記錄的插入。
如果你的表結(jié)構(gòu)設(shè)計了唯一索引的話,那么使用replace
into來更新你的數(shù)據(jù)表記錄再好不過了,尤其是你在寫一個腳本的時候,你就不需要在腳本里先查詢數(shù)據(jù)表是否存在該條記錄,如果存在,則更新;如果不存在則插入。你可以直接使用replace
into,它會自動到數(shù)據(jù)表檢測,如果在唯一索引字段存在該值,則會先刪除該條記錄,然后再插入新記錄;如果唯一索引字段不存在該值,則直接插入數(shù)據(jù)表,簡單且非常實用。
技巧三、給你的表建立唯一索引
很多情況下建立表唯一索引,能給我們省下很多麻煩事,想上面說的replace
into就必須是有唯一索引,當(dāng)然,很多人喜歡用到的自增主鍵ID盡管也是唯一索引,我建議是能在其他經(jīng)常出現(xiàn)在where條件屁股后面的字段,并且值是唯一的話可以加個索引甚至唯一索引,查詢速度將會提高很多。
說在最后:當(dāng)然,insert
ignore
into與replace
into大家要根據(jù)自己的需求來確定,不一定就適合你現(xiàn)在的需求;我只是提示大家還有這么些個實用的小知識大家可以靈活運用到項目里邊。
select * from 表 where 這是必須的
year,month,dayofyear是mysql的函數(shù),分別是取得年,月,和當(dāng)前時間在本年是第幾天的3個函數(shù)
date就是你保存時間的字段
等號后面的當(dāng)然條件啦。
方法/步驟
1
打開Navicat
2
打開mysql數(shù)據(jù)庫連接
3
點擊【報表】菜單,然后點擊【新建報表】
4
此時進(jìn)入報表設(shè)計界面
5
點擊【數(shù)據(jù)】標(biāo)簽頁
6
點擊【文件】菜單,選擇【新建….】
7
選擇【查詢向?qū)А?,然后點擊【確定】
8
選擇要查詢的表,然后點擊【下一步】
9
選擇要查詢的字段,然后點擊【下一步】
10
選擇是否添加計算,然后點擊【下一步】
11
選擇是否添加共同字段值分組行,然后點擊【下一步】
12
選擇是否限制返回行數(shù),然后點擊【下一步】
選擇是否設(shè)置排序,然后點擊【下一步】
選擇是否需要預(yù)覽,然后點擊【完成】
此時報表的數(shù)據(jù)定義已完成,點擊【設(shè)計】標(biāo)簽頁
此時進(jìn)入報表布局設(shè)計
從右側(cè)的字段列表中拖動字段到報表的不同位置
點擊【預(yù)覽】標(biāo)簽頁,可以預(yù)覽報表結(jié)果
回到【設(shè)計】標(biāo)簽頁,在【文件】菜單中,選擇【保存】
輸入新報表名稱,然后點擊【保存】
在確認(rèn)保存目錄對話框中,點擊【是】
此時新報表已建立完成
1、使用open函數(shù)讀取文本,提取數(shù)據(jù);使用MySQLdb連接數(shù)據(jù)庫,存入數(shù)據(jù)到庫;
2、從數(shù)據(jù)庫提取數(shù)據(jù),填入網(wǎng)頁中的表格。做網(wǎng)頁網(wǎng)站這些用的是JSP和PHP這樣的語言,每種鏈接my sql數(shù)據(jù)庫的方式都不同的。然后用查詢語句提取數(shù)據(jù)庫中的數(shù)據(jù)。
MySQL不能用于報表開發(fā),開發(fā)報表需要的是數(shù)據(jù)可視化相關(guān)技術(shù),只不過其中的取數(shù)環(huán)節(jié)會用到MySQL而已。
Navicat for MySQL是一款可視化操作Mysql數(shù)據(jù)庫的軟件,界面簡單,方便使用。
1、使用Navicat for MySQL之前當(dāng)然先下載該軟件,可以通過百度搜索查找 Navicat for MySQL。請認(rèn)準(zhǔn)百度安全驗證最好到官方網(wǎng)站,或者正規(guī)網(wǎng)站站下載;
2、下載完以后直接雙擊安裝包,根據(jù)自己的的需要安裝對應(yīng)的組件以及指定對應(yīng)的安裝位置就可以了;
3、打開Navicat for MySQL主界面如下圖所示:
4、點擊主界面中的“鏈接”,會彈出一個添加鏈接的窗口;
"連接名”可以任意輸入,這個會窗口顯示,建議輸入容易識別和有意義的名稱;
“主機名或IP地址”必須輸入有效MySql訪問IP地址;
“端口”一般默認(rèn)為3306,如果有自定義MySql訪問端口,則輸入對應(yīng)的自定義端口即可;
“用戶名”和“密碼”則是對應(yīng)訪問MysSql數(shù)據(jù)庫的帳號,注意如果連接的MySql是非本機服務(wù),則使用“root”是無法鏈接成功,這是MySql的安全策略問題;
點擊“確認(rèn)”則可以成功創(chuàng)建一個數(shù)據(jù)連接,并且會在左窗口顯示,也可以點擊“連接測試”,測試一下是否可以成功鏈接;
5、點擊左窗口鏈接,連接成功后,在左側(cè)的導(dǎo)航窗口后會看到當(dāng)前鏈接的所有的MySQL數(shù)據(jù)庫,其中灰色的表示沒有打開數(shù)據(jù)庫,綠色的標(biāo)識的就是已經(jīng)被打開的數(shù)據(jù)庫。
右鍵點擊一個灰色的數(shù)據(jù)庫,在右鍵菜單中包含打開、關(guān)閉、新建、刪除和數(shù)據(jù)傳輸?shù)炔僮鳎?/p>
在已經(jīng)打開數(shù)據(jù)中的選中表,可以創(chuàng)建、刪除、修改表,在右鍵菜單中包含建表、導(dǎo)入、導(dǎo)出、運行SQL文件等操作;
6、在主窗口點擊“查詢”,則可以對當(dāng)前選中的數(shù)據(jù)庫進(jìn)行表查詢、以及對查詢的創(chuàng)建、修改、刪除等;
7、在主窗口點擊“視圖”,則可以對當(dāng)前選中的數(shù)據(jù)庫進(jìn)行添加、修改、刪除、導(dǎo)出視圖;
8、在主窗口點擊“函數(shù)”,則可以對當(dāng)前選中的數(shù)據(jù)庫進(jìn)行添加、修改、刪除、運行函數(shù);
9、在主窗口還有“事件”、“報表”、“備份”、“計劃”、“模型”等菜單,這些都不怎么常用,不過基本也是創(chuàng)建、刪除、修改等操作。
網(wǎng)站欄目:mysql報表怎么用,報表該怎么做
標(biāo)題鏈接:http://chinadenli.net/article12/hdoogc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、品牌網(wǎng)站建設(shè)、面包屑導(dǎo)航、建站公司、網(wǎng)站改版、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)