1. 程式人生 > >資料庫操作常用的查詢方法

資料庫操作常用的查詢方法

⦁    內連結關聯查詢:

如果表A和表B有一個外來鍵關聯 ,可以通過外來鍵進行內連結查詢

 select dictinfo.*, dicttype.typename
  from dictinfo, dicttype
 where dictinfo.typecode = dicttype.typecode
   --不通過外來鍵,通過groupid查詢 使用者型別的程式碼結果集,只能查詢出一條記錄,可以使用內連結
select sysuser.*, dictinfo.info
  from sysuser,
       (select dictcode, typecode, info from dictinfo where typecode = 's01') dictinfo
 where sysuser.groupid = dictinfo.dictcode

小結:如果主查詢表字段從關聯表只查詢出一條記錄,這個欄位就可以作為內連結關聯欄位

--內連結的錯誤的例子,通過關聯查詢出重複記錄
--使用groupid從select dictcode, typecode, info from dictinfo可以找到多個記錄,不能使用內連結,可能會出現重複記錄

select sysuser.*
  from sysuser, (select dictcode, typecode, info from dictinfo) dictinfo
 where sysuser.groupid = dictinfo.dictcode

注意:如果使用內連結查詢出現重複記錄,首先去思考是否是sql寫錯了,不能直接去使用distinct去除重複記錄。
有一些特殊情況下還是需要使用distinct去除重複記錄,比如複雜的統計分析sql。

⦁    外連結關聯查詢:

表A,表B中只有一部分資料和表A匹配,不能使用內連結。
主查詢是表A,只能使用外連結。

--查詢使用者所屬單位,sysid對應三張表的id

select sysuser.*,useryy.mc from sysuser left join useryy on sysuser.sysid = useryy.id

select * from useryy right join sysuser on sysuser.sysid = useryy.id
--以上的需要不能使用內連結
select sysuser.*,useryy.mc from sysuser, useryy where  sysuser.sysid = useryy.id
小結:
表A中從表B中只能關聯查詢一部分資料,只能使用外連結


⦁    子查詢

select sysuser.*,
 (select * from useryy where id = sysuser.sysid)
 from sysuser
子查詢只能返回一列,否則 :
 

子查詢只允許返回一行,否則 :
 


正確的sql:
--子查詢
--根據sysid取出單位名稱
--根據groupid查詢使用者型別程式碼對應的名稱

select sysuser.*,
 (select mc from useryy where id = sysuser.sysid)sysmc,
 (select info from dictinfo where dictcode = sysuser.groupid and typecode = 's01')groupname
 from sysuser

⦁    巢狀表

可以將一個sql查詢結果組成一個虛表,查詢方式和查詢一個實體表相同的。
組成的虛擬表字段是不允許重複的,否則 :

select * from
(
   select * from(
       select * from (

       ) A
   ) B
) C;


 


相關推薦

資料庫操作常用查詢方法

⦁    內連結關聯查詢: 如果表A和表B有一個外來鍵關聯 ,可以通過外來鍵進行內連結查詢 select dictinfo.*, dicttype.typename from dictinfo, dicttype where dictinfo.typecode = d

C#操作資料庫常用公共方法

    即便是一個小型的C#+資料庫的專案(本文以SQL SERVER為例,其他資料庫類似),也需要多種對資料庫的操作。有時候編程式碼的時候,想到哪寫到哪確實可以實現具體的功能,但從整個框架體系上來看,程式碼的冗餘以及不規範,很有可能導致程式碼執行的效率,對後期擴充套件專案

Python的文件操作常用方法

文件 關閉 utf-8 一個 打開 光標 readlines txt line 例: f = open(‘a.txt‘,encoding=‘utf-8‘) 1、f.close() 關閉文件,為了防止打開的文件一直占用內存。 2、f.read() 把文件所有內容都讀出來,光標

Elasticsearch java api 常用查詢方法QueryBuilder構造舉例

舉例 div detail lang 模糊查詢 dna true builder earch 轉載:http://m.blog.csdn.net/u012546526/article/details/74184769 Elasticsearch java api 常用查詢

MongoDB資料庫操作常用語法

一、建立資料庫 建立: use DATABASE_NAME(資料庫名稱) 如果資料庫不存在,則建立資料庫,否則切換到指定資料庫。 顯示所有資料庫: show dbs 剛建立的資料庫,並不在資料庫的列表中, 要顯示它,我們需要向其中插入一些資料。 插入資料: db.DATABASE_NAM

Mysql資料庫操作常用命令

【全了】Mysql資料庫操作常用命令   1、MySQL常用命令  create database name; 建立資料庫  use databasename; 選擇資料庫  drop database name 直接刪除資料庫,不提醒 

在Linux上對資料庫操作常用命令

進入資料庫客戶端,作用命令mysql -u root -p 輸入密碼,預設為空 mysql資料庫使用總結 本文主要記錄一些mysql日常使用的命令,供以後查詢。 1.更改root密碼 mysqladmin -uroot password ‘yourpasswor

ThinkPHP 資料庫操作 統計查詢

用法示例: $User = M("User");// 例項化User物件 獲取使用者數: $userCount = $User->count(); 或者根據欄位統計: $userCount =

Mapping.xml資料庫操作常用標籤

l  <select >l  <insert>l  <update>l  <delete>l  <resultMap>l  <parameterMap>4.1<select>/<inse

Laravel學習篇-資料庫操作查詢構造器

最近小編在學習號稱世界最牛框架–Laravel。其實學習框架也就是學習框架的思想! 我想在我的部落格中記錄我在laravel學習中的一些心得,歡迎大家關注我的其他Github部落格和簡書,互相交流! 版本:Laravel 5.2 資料庫:m

laravel之路-4 資料庫操作查詢構造器)

    正文之前想聊一些關於MVC的事情,接觸過很多專案,發現很多人還是很自然的把SQL寫到Ç層中,整個方法的資料庫操作完全沒有中號層什麼事,可維護性完全為0撒。試想如果有個表要改表名,改欄位名,我需要整個專案搜一下都有哪些地方用了這個表。如果產品需要監控某個表的所有操作日誌

JDBC資料庫連線池連線資料庫資料庫操作DAO層設計通用更新及查詢方法(二)

上篇文章主要介紹了通過資料庫連線池連線資料庫,然後設計了對資料庫通用更新和查詢方法,本篇文章主要通過例項介紹上篇文章定義的對資料庫操作的幾個方法的使用:     首先我們先在資料庫建立一個學生資訊表Student欄位如圖: 建立好表將配置檔案的資訊改好然後需要建立一

JDBC資料庫連線池連線資料庫資料庫操作DAO層設計通用更新及查詢方法(一)

該篇文章介紹了資料庫連線池獲取資料庫連線以及資料庫操作的基本使用,然後主要提供了java專案案例中dao層的一種設計,利用反射的原理定義了通用的查詢方法可以對應所有的表和例項。文章中的每段程式碼都提供了詳細的註釋及邏輯步驟 首先匯入資料庫連線的所需要的jar包:    

MongoDB建立表步驟,Mongo常用資料庫操作命令,查詢,新增,更新,刪除_MongoDB 效能監測

->use Admin         (切換到建立使用者) ->db.TestDb          (建立資料庫) ->db.addUser(“userName”,”Pwd”)    建立使用者 ->db.auth(“userName”,

MongoDB常用操作查詢find方法db.collection_name.find()

MongoDB常用操作一、查詢find方法db.collection_name.find();查詢所有的結果:select * from users;db.users.find();指定返回那些列(鍵):select name, skills from users;db.users.find({}, {'na

yii Yii 框架裡資料庫操作詳解-[增加、查詢、更新、刪除的方法

======================================= public function getMinLimit () { $sql = "..."; $result = yii::app()->db

C# 文件操作常用方法總結

arch 擴展 追加 內容 cto 源文件 pen only lin 需引用  System.IO Path為絕對路徑 檢測指定目錄是否存在  Directory.Exists(Path) 創建目錄  Directory.CreateDirectory(Path

bash 文件名操作 常用方法

exec bin 常用 文件名 ref www http bsp -exec 參考鏈接: http://www.jb51.net/article/51592.htm 查找文件不獲取路徑: find $1 -name ‘*.bin‘ -exec basename {} \;

mysql 常用性能查詢方法

where mat 查詢 mysq nod nbsp OS SQ status 1、 show processlist; 2、select * from information_schema.innodb_trx\G 3、SELECT user, host, time, c

bash shell 中時間操作常用方法總結

hour day 當前時間 簡單的 之前 nbsp seconds 獲取 相互   在日常的工作中,bash shell 的時間操作非常頻繁。比如shell腳本定時發送數據統計的時候,會查看當前是否為預定的發送時間。或者使用文件保存一些數據時,一般會生成時間字符串當做文