Oracle知識點(2)簡單查詢 模糊查詢 範圍查詢____Oracle

來源:互聯網
上載者:User


1簡單查詢是將一張資料表中所有資料行的內容都顯示出來;
2 在查詢語句之中先執行FROM字句確定資料來源 (此時實際上是所有的行和列)以控制要顯示的資料列
3如果出現資料的重複 可以使用distinct來消除掉重複的資料行顯示
4select子句裡面可以運行四則運算 ;
5select子句可以直接輸出常量內容 但是對於字串使用" '", 數字直接編寫
6“||”負責進行輸出的內容串連 但是需要注意的是 一般此類的操作很少直接在查詢中出現(一般在查詢中用的少 在預存程序中用的多)
   注意的地方: 在查詢sql語句中使用別名時 可以不用加上 " '" 引號但其他常量需要加上


常見的運算子如下:
    關係運算子: >,<  >= ,<= ,<>(!=);
    邏輯運算子: AND,OR,NOT;
    範圍運算子: BETWEEN..AND..
    謂詞範圍: IN,NOTIN;
    空判斷:IS NULL,IS NOT NULL;
    模糊查詢:LIKE


在Oracle資料庫之中 所有的資料是需要區分大小寫關係的。
"="可以在數字上使用 也可以在字串使用  在Oracle資料庫中  為了方便開發=無論什麼資料類型 都可以直接使用


 在邏輯運算中除了與和或的邏輯之外還會存在一個非的邏輯 非得邏輯 如果原始條件的判斷為真 那麼結果就是假 反之
 如果原始條件的判斷為假 那麼結果就是真
    對於邏輯操作有一點說明 不要寫過於複雜的邏輯操作
    select* from emp where sal<2000;
    select*from emp where not sal>=2000; 以上兩個sql語句同個意思。


範圍查詢:
    Between and  一般在查詢字串時 意義不大  一般都是在涉及到數字方面的時候
空判斷:
   空在資料庫上解釋為不確定的內容 但是需要注意的是 如果在數字列使用判斷不能夠使用關係運算子完成 空的操作只能夠使用 is null 
   或者是is not null 或者是 not is null 
in:
   在指定查詢的過程之中 In的操作是最簡短的
  既然在指定的範圍裡面使用in 那麼如果不在指定的範圍之中使用 not in
   select* from emp where empno in(7369,7566,7788,9999,null)
   select* from emp where empno not in(7369,7566,7788,9999)
注意:關於not in 與 null的問題:
 在使用not in 進行範圍判斷的時候 如果範圍裡面含有null 那麼不會有輸出結果的
    可以從淺層次的方面解釋就是 程式的運行依靠著記憶體  資料量很大的時候 你在not in 後面含有null (就是不確定的意思)
此時可能就要進行著全部查詢  而此時資料量很大 會造成很大的風險 造成死機  
   
   模糊查詢:Like 
總結:
   where子句一般都寫在from子句之後 但是緊跟著from子句之後
   where子句控制顯示的資料行的操作 而select子句控制顯示資料列的操作
   由於select子句後於where子句執行 所以select定義的別名 不能在where子句裡使用


下面是結合對比程式設計語言中的null值和執行個體進行分析:
    資料庫中的NULL表示“沒有對(列)變數輸入資料”,即在資料庫中的NULL可以區分“沒有對(列)變數輸入資料”和“有對(列)變數輸入資料”這兩類情況。而輸入Null 字元串,
  則是這裡的“有對(列)變數輸入資料”這一類情況,即有輸入資料,只是輸入的資料為空白字串(含有終止符的還是)。從這個意義上講,如int t;語句,
  也是屬於這裡的“有對(列)變數輸入資料”這一類情況,只是不是有程式員自己輸入值,而是由(編譯)系統輸入一個隨機數而已。
             資料庫中的NULL和C++等語言中的NULL的區別:
     資料庫中的NULL是一個關鍵字,表示“沒有對(列)變數輸入資料”;
          C++等語言中的NULL是一個宏,表示為整數0一般。
   所以在原始碼的綁定變數函數裡不能使用Null(是一個宏)或是'Null'(是一個字串),因為兩者都不表示資料庫中的關鍵字NULL。
當然,在原始碼裡,不含有綁定變數的SQL語句字串(如,“insert into 表1 values(null,null)”)裡出現Null是可以作為資料庫的Null解釋的,該SQL語句字串用step函數執行可以成功達到目的即表欄位裡的值為Null。
     執行個體分析如下:
          使用NULL可以區分“沒有輸入資料”和“輸入空資料”, 差異在於:
   NULL的長度就是NULL,Null 字元串的長度為0
   一串NULL資料比Null 字元串優先排序
   COUNT(message)會將Null 字元串計數進去,但是不會將NULL資料們計入
   可以使用綁定變數搜尋某個Null 字元串,但是不可以這樣搜尋NULL,




    MySQLNull 字元串和NULL值問題 


MySQLNull 字元串和NULL值我們都經常會見到,但是這二者並不是一個概念,下面就為您介紹NULL與MySQLNull 字元串的區別,供您參考。
對於SQL的新手,NULL值的概念常常會造成混淆,他們常認為NULL與MySQLNull 字元串是相同的事。情況並非如此。例如,下述語句是完全不同的:


MySQL> INSERT INTO my_table (phone) VALUES (NULL);
MySQL> INSERT INTO my_table (phone) VALUES ('');


 
這兩條語句均會將值插入phone(電話)列,但第1條語句插入的是NULL值,第2條語句插入的是Null 字元串。第1種情況的含義可被解釋為“電話號碼未知”,而第2種情況的含義可被解釋為“該人員沒有電話,因此沒有電話號碼”。
為了進行NULL處理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函數。
在SQL中,NULL值與任何其它值的比較(即使是NULL)永遠不會為“真”。包含NULL的運算式總是會匯出NULL值,除非在關於操作符的文檔中以及運算式的函數中作了其他規定。下述樣本中的所有列均返回NULL:


MySQL> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.