本文目錄一覽:
mysql數據庫sql查詢語句:多條件判斷
1、創建測試表,
create table test_person(id int, RMB int);
2、插入測試數據
insert into test_person values(1,180);
insert into test_person values(2,170);
insert into test_person values(3,290);
insert into test_person values(4,160);
insert into test_person values(5,299);
insert into test_person values(6,266);
insert into test_person values(7,155);
3、查詢表中所有記錄,select t.* from test_person t,
4、編寫sql,匯總每個vip類型的用戶數,
select vip_type, count(distinct id)
from (select case when RMB100 and RMB200 then ‘VIP1’ when RMB200 then ‘VIP2’ end as vip_type, id
from test_person) t
group by vip_type
mysql增刪改查語句
mysql的增刪改查語句是怎麼寫的,跟sql有什麼區別,基本沒區別,都差不多,特殊的查詢有區別。比如限制結果就不是top了,而是limit 3,5。mysql數據庫備份跟附加是不是必須要關閉tomcat,這個沒必要,直接可以操作,不過如果程序做過映射,那要重新裝載。
往數據中插入數據,在詢問框中填寫 INSERT INTO biao1(name1,age) VALUES(‘新增加1′,’1000’)然後點擊執行按鈕 ,如果成功會顯示執行一條語句,在運行查詢所有語句會發現新插入的信息也能查詢出來。
圖書簡介
MySQL數據庫是以「客戶端/服務器」模式實現的,是一個多用戶、多線程的小型數據庫。MySQL因其穩定、可靠、快速、管理方便以及支持眾多系統平台的特點。
成為世界範圍內最流行的開源數據庫之一。《MySQL數據庫入門》就是面向數據庫初學者特地推出的一本進階學習的入門教材,本教材站在初學者的角度,以形象的比喻、豐富的圖解、實用的案例、通俗易懂的語言詳細講解了MySQL的開發和管理技術。
如何設計高效合理的MySQL查詢語句
舉例來說,如果數據的量積累到一定的程度,比如一個銀行的賬戶數據庫表信息積累到上百萬甚至上千萬條記錄,全表掃描一次往往需要數十分鐘,甚至數小時。如果採用比全表掃描更好的查詢策略,往往可以使查詢時間降為幾分鐘,由此可見查詢優化技術的重要性。
筆者在應用項目的實施中發現,許多程序員在利用一些前端數據庫開發工具(如PowerBuilder、Delphi等)開發數據庫應用程序時,只注重用戶界面的華麗,並不重視查詢語句的效率問題,導致所開發出來的應用系統效率低下,資源浪費嚴重。因此,如何設計高效合理的查詢語句就顯得非常重要。本文以應用實例為基礎,結合數據庫理論,介紹查詢優化技術在現實系統中的運用。
分析問題
許多程序員認為查詢優化是DBMS(數據庫管理系統)的任務,與程序員所編寫的SQL語句關係不大,這是錯誤的。一個好的查詢計劃往往可以使程序性能提高數十倍。查詢計劃是用戶所提交的SQL語句的集合,查詢規劃是經過優化處理之後所產生的語句集合。DBMS處理查詢計劃的過程是這樣的:在做完查詢語句的詞法、語法檢查之後,將語句提交給DBMS的查詢優化器,優化器做完代數優化和存取路徑的優化之後,由預編譯模塊對語句進行處理並生成查詢規劃,然後在合適的時間提交給系統處理執行,最後將執行結果返回給用戶。在實際的數據庫產品(如Oracle、Sybase等)的高版本中都是採用基於代價的優化方法,這種優化能根據從系統字典表所得到的信息來估計不同的查詢規劃的代價,然後選擇一個較優的規劃。雖然現在的數據庫產品在查詢優化方面已經做得越來越好,但由用戶提交的SQL語句是系統優化的基礎,很難設想一個原本糟糕的查詢計劃經過系統的優化之後會變得高效,因此用戶所寫語句的優劣至關重要。系統所做查詢優化我們暫不討論,下面重點說明改善用戶查詢計劃的解決方案。
解決問題
下面以關係數據庫系統Informix為例,介紹改善用戶查詢計劃的方法。
1.合理使用索引
索引是數據庫中重要的數據結構,它的根本目的就是為了提高查詢效率。現在大多數的數據庫產品都採用IBM最先提出的ISAM索引結構。索引的使用要恰到好處,其使用原則如下:
●在經常進行連接,但是沒有指定為外鍵的列上建立索引,而不經常連接的字段則由優化器自動生成索引。
●在頻繁進行排序或分組(即進行group by或order by操作)的列上建立索引。
●在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引。比如在僱員表的「性別」列上只有「男」與「女」兩個不同值,因此就無必要建立索引。如果建立索引不但不會提高查詢效率,反而會嚴重降低更新速度。
●如果待排序的列有多個,可以在這些列上建立複合索引(compound index)。
●使用系統工具。如Informix數據庫有一個tbcheck工具,可以在可疑的索引上進行檢查。在一些數據庫服務器上,索引可能失效或者因為頻繁操作而使得讀取效率降低,如果一個使用索引的查詢不明不白地慢下來,可以試着用tbcheck工具檢查索引的完整性,必要時進行修復。另外,當數據庫表更新大量數據後,刪除並重建索引可以提高查詢速度。
2.避免或簡化排序
應當簡化或避免對大型表進行重複的排序。當能夠利用索引自動以適當的次序產生輸出時,優化器就避免了排序的步驟。以下是一些影響因素:●索引中不包括一個或幾個待排序的列;
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129579.html