select語句的基本使用
可以查詢需要的列,行,可以進行多表鏈結,連線查詢。
select 後面跟的是要顯示的結果,可以是通過運算或者連線符號得出的偽列
null 空值
在資料庫中不確定的值,未定義的值叫做空值
空值不能引入到運算中,+ - * / 和空值的結果都是空
注意:在查詢中可以給表定義乙個別名以便於多個表的區分
|| 鏈結運算子
|| 運算子可以鏈結列或者字串到另乙個列,生成的字串表示式作為乙個目標列
--|| 操作符也可以用於批量操作將姓名和職位顯示到一起
select e.ename||e.job from
p_emp e ;
--更有好的顯示方法
select e.ename||
'的職務是
'||e.job from p_emp e ;
--distinct 查詢去重複生成批量刪除表命令
select
'drop table
'|| tname ||';
'from tab
--限制資料的返回去重複select
distinct e.job from p_emp e;
where 關鍵字
where 後面跟判斷語句 只有表中結果為 true 結果會顯示
注意:如果用字元作條件,需要注意大小寫
查詢student表中「95031and:連線條件, 與」班select s.*
from student s where s.class=
'95031
'
or: 或
not: 非
in:屬於
後面可以是多個資料,但資料型別需要一致
查詢空值
不能用 = , 因為在 select 中 = 是比較大小,但是 null 空值 沒有大小
注意: 在 update 中, = 是賦值, = 後面可以跟 null。
應使用 is not null
--like 模糊匹配去空值select e.job from p_emp e where e.mgr is
notnull;
exits:exists其實等同於表關聯後,只取主表部分內容而已,用exists時 小表在前大表在後
connect by
一般用來查詢存在父子關係的資料,也就是樹形結構的資料;其返還的資料也能夠明確的區分出每一層的資料。
select*from
table
[start with condition1
]connect by[
prior
] id=parentid
--這種用法就表示從下往上查詢資料,可以理解為從葉子節點往上查詢父級幾點,用第一層資料的parentid去跟表記錄裡面的id進行匹配,匹配成功那麼查詢出來的就是第二層資料;
--上面的那種就是從父級節點往下查詢葉子節點。
select
*from
table
[start with condition1
]connect
by id=
[prior
] parentid
--第一種,修改prior關鍵字位置
select t.*, level
, connect_by_root(id)
from
tab_test t
start
with t.id =
4connect
by t.id =
prior t.fid;
--第二種,prior關鍵字不動 調換後面的id=fid邏輯關係的順序
select t.*, level
, connect_by_root(id)
from
tab_test t
start
with t.id =
4connect
by prior t.fid = t.id;
作業系統 資料庫知識點查漏補缺二
簡述資料庫系統實現查詢優化的步驟,在集中式資料庫查詢中查詢代價主要考慮哪些開銷?1.將查詢轉化為某種內部表示,通常是語法樹.2.根據一定的等價變換規則把語法樹轉換成標準形式.3.選擇低層的操作演算法.對於語法樹中的每乙個操作需要根據訪問路徑,資料的儲存分布,儲存資料的聚簇資訊來選擇具體的執行演算法....
Realm資料庫拾遺
支援資料庫加密 產生隨機金鑰 nsmutabledata key nsmutabledata datawithlength 64 secrandomcopybytes ksecrandomdefault,key.length,uint8 t key.mutablebytes 開啟加密檔案 rlmre...
Realm資料庫拾遺
支援資料庫加密 產生隨機金鑰 nsmutabledata key nsmutabledata datawithlength 64 secrandomcopybytes ksecrandomdefault,key.length,uint8 t key.mutablebytes 開啟加密檔案 rlmre...