sql中的*的使用注意點
材料:test_source,test_target,他們的結構和資料是
SQL> select * from test_source;
NAME ID
---------- ----------
lolulz 74834
P4 74835
luo 8
P1 74832
P2 74833
zhi 8
SQL> select * from test_target;
NAME ID
---------- ----------
lulugan 12
lulugan 12
updatef 10
lolulz 74834
luo 8
P1 74832
P2 74833
zhi 8
--------------------------開始試驗---------------------------
例子1
SQL> create or replace view v_target_source as
2 select test_target.*,test_source.* from test_target left outer join test_source
3 on(
4 test_target.id = test_source.id
5 )
6 with read only;
select test_target.*,test_source.* from test_target left outer join test_source
*
第 2 行出現錯誤:
ORA-00957: 重複的列名
----------
由於test_target和test_source中有相同的列名,而在一個view或table中不能有相同的列名
因此報錯。
----------
例子2
SQL> select test_target.*,test_source.* from test_target left outer join test_source
2 on(
3 test_target.id = test_source.id
4 );
NAME ID NAME ID
---------- ---------- ---------- ----------
lolulz 74834 lolulz 74834
zhi 8 luo 8
luo 8 luo 8
P1 74832 P1 74832
P2 74833 P2 74833
zhi 8 zhi 8
luo 8 zhi 8
已選擇7行。
----------
1.即使test_target和test_source中有相同的列名,但是隻是普通的select出資料顯示而已,對資料庫沒有任何影響!因此沒必要報錯。
2.這裡的 * 是指:指定兩個表各自的所有欄位
----------
例子3
SQL> select * from test_target left outer join test_source
2 on(
3 test_target.id = test_source.id
4 );
NAME ID NAME ID
---------- ---------- ---------- ----------
lolulz 74834 lolulz 74834
zhi 8 luo 8
luo 8 luo 8
P1 74832 P1 74832
P2 74833 P2 74833
zhi 8 zhi 8
luo 8 zhi 8
已選擇7行。
----------
這裡的 * 是指:兩表形成的笛卡爾積集合的所有欄位
----------
SQL> select * from test_source;
NAME ID
---------- ----------
lolulz 74834
P4 74835
luo 8
P1 74832
P2 74833
zhi 8
SQL> select * from test_target;
NAME ID
---------- ----------
lulugan 12
lulugan 12
updatef 10
lolulz 74834
luo 8
P1 74832
P2 74833
zhi 8
--------------------------開始試驗---------------------------
例子1
SQL> create or replace view v_target_source as
2 select test_target.*,test_source.* from test_target left outer join test_source
3 on(
4 test_target.id = test_source.id
5 )
6 with read only;
select test_target.*,test_source.* from test_target left outer join test_source
*
第 2 行出現錯誤:
ORA-00957: 重複的列名
----------
由於test_target和test_source中有相同的列名,而在一個view或table中不能有相同的列名
因此報錯。
----------
例子2
SQL> select test_target.*,test_source.* from test_target left outer join test_source
2 on(
3 test_target.id = test_source.id
4 );
NAME ID NAME ID
---------- ---------- ---------- ----------
lolulz 74834 lolulz 74834
zhi 8 luo 8
luo 8 luo 8
P1 74832 P1 74832
P2 74833 P2 74833
zhi 8 zhi 8
luo 8 zhi 8
已選擇7行。
----------
1.即使test_target和test_source中有相同的列名,但是隻是普通的select出資料顯示而已,對資料庫沒有任何影響!因此沒必要報錯。
2.這裡的 * 是指:指定兩個表各自的所有欄位
----------
例子3
SQL> select * from test_target left outer join test_source
2 on(
3 test_target.id = test_source.id
4 );
NAME ID NAME ID
---------- ---------- ---------- ----------
lolulz 74834 lolulz 74834
zhi 8 luo 8
luo 8 luo 8
P1 74832 P1 74832
P2 74833 P2 74833
zhi 8 zhi 8
luo 8 zhi 8
已選擇7行。
----------
這裡的 * 是指:兩表形成的笛卡爾積集合的所有欄位
----------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1299874/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vector的使用注意點
- RPC 使用中的一些注意點RPC
- CSS中will-change的注意點CSS
- 【SQL優化】SQL優化的10點注意事項SQL優化
- Golang switch case 的使用注意點Golang
- python中smtplib使用注意點Python
- Swift中URL處理中的注意點Swift
- 【SQL最佳化】SQL最佳化的10點注意事項SQL
- java中static使用之靜態方法注意點Java
- 說點JSON使用的注意事項JSON
- 使用Array.prototype.indexOf()的幾點注意Index
- Veridata校驗SQL Server和Oracle時的注意點SQLServerOracle
- 需要提醒你關於 golang 中 map 使用的幾點注意事項Golang
- input在python中的使用注意Python
- java中Stream的使用流程及注意Java
- python中__new__的使用注意Python
- 快取使用中的注意事項快取
- SQL中Group By的使用SQL
- SQL中EXISTS的使用SQL
- SQL Server中,WITH AS的使用SQLServer
- Python Enum 使用的幾點注意事項Python
- Servlet的init注意點Servlet
- ThinkPHP中CURD where的使用注意事項PHP
- Linux中fork的使用注意事項Linux
- 使用iceberg-使用Iceberg資料湖需要注意的點
- Laravel 使用 PostgreSQL 資料庫需要注意的點LaravelSQL資料庫
- sql 中的with 語句使用SQL
- ABAP SQL 中的 Modify 使用SQL
- SQL中的CASE WHEN使用SQL
- js中eval詳解,用Js的eval解析JSON中的注意點JSON
- Vant庫的使用,及日期元件的一些注意點元件
- Python面試中需要注意的幾點事項!Python面試
- SEO中網站微創新的幾個注意點網站
- 專案管理中,應該注意的5點原則專案管理
- ListView中getChildAt(index)的使用注意事項ViewLDAIndex
- SQL 語句的注意事項SQL
- C#基本型別使用時的幾個注意點C#型別
- SQL Server安裝補丁注意點--記錄SQLServer