數據庫——單表查詢

須要執行的SQL語句:數據庫

 

 

1、語法:函數

select *|字段列表|表達式 from table_name [where 條件] [order by 字段列表]spa

說明:3d

一、*:至關於按照表中字段順序羅列表中的全部字段blog

e.g排序

 

 

二、字段列表:當查詢結果只是表中部分字段時,可將要顯示的字段羅列出來,字段之間以逗號間隔ip

e.g字符串

 

 

三、表達式:能夠是算術運算符也能夠是數據庫中的函數table

e.gclass

 

 

       字段別名:

           select所選字段後面能夠指定別名以使查出來的結果所顯示的字段更好理解,字段名與別名之間使用空格或as關鍵字間隔;爲了閱讀方便,推薦使用as關鍵字這種方式定義字段別名。

           e.g

   

               在默認狀況下,查詢結果中顯示的字段名爲大寫字母,若是別名中包含空格、特殊字符(例如%)或者對大小寫敏感,則別名須要使用引號引

起來。

               e.g

 

四、table_name:表名,表名也能夠有別名,表名與別名之間使用空格間隔(MySQL數據庫中表的別名可使用as關鍵字間隔,但Oracle數據庫不容許)。

e.g

 

注意:

a、表的別名最多能夠有30個字符;

b、表別名的做用方法在整個select語句中都有效,離開select語句即無效。

五、where:指定查詢過濾條件:

--like:進行數據模糊查詢

%:匹配0次或屢次

e.g

 

 

_:只匹配1次

e.g

 

 

escape:取消%或_字符的通配符特性

e.g

          

 

注意:

1escape後面單引號中只能是單個字符;

2escape後面能夠是字母、#、$、,、\_等字符;

--邏輯條件and、or

e.g

 

 

--between 下限 and 上限,等同於「(column_name>=下限) and (column_name<=上限)」

e.g

 

 

注意:

一、「between 下限 and 上限」必定是小值在前大值在後,不然查不出數據; 

二、「between 下限 and 上限」查詢數據包括邊界值;

--關係條件 =、!=、<、=<、>、>=等

e.g

 

--invalue1,value2,value3......valuen,等同於「 column_name = value1 or column_name = value2 or column_name = value3...... or column_name = valuen 」

e.g

 

 

-- null =包括is null  is not null

e.g

 

 

注意:is null不能寫成 = null,一樣,is not null不能寫成!=null

六、order by:對查詢結果進行排序,必須置於SQL語句的最後,語法:order by {column_name1, column_name2, column_name3, ......column_namen} [asc|desc]

說明:

a、{column_name1, column_name2, column_name3, ......column_namen}——指定須要排列的字段

b、[asc|desc]——指定排列策略,asc以升序排列,desc以降序排列,默認以升序排列。

不一樣數據類型,升序的含義以下:

①、數字類型:小值在前面顯示;

②、日期類型:早的日期在前面顯示;

③、字符類型:依據字母順序顯示,a在前,z最後;

④、空值:顯示在最後;

e.g

 

 

order by 子句中,不只可使用字段,還可使用字段別名進行排序,例如:

 

 

多重排序:也稱多列排序,即先以一個字段對查詢結果進行排序,而後在這個排序的基礎上再對另外一個字段進行排序,最終顯示經屢次排序後的查詢結果;

 

 

2、去掉重複行

數據庫使用distinct關鍵字去除相同行(「相同的行」指不一樣行之間的相同列中的數值相同)

例如:

select distinct type_name from book

select distinct price,vip_price from book

注意:該關鍵字必須緊跟select關鍵字的後面,即以下寫法是錯誤的:select price, distinct vip_price from books

 

3、算術表達式

1Oracle數據庫中的算術運算符包括+、-、*和/,其中/運算符的結果爲浮點類型的數值

   例如:select vip_price + 1 new_price from book

二、Oracle數據庫中沒有取餘運算符,若是要對數據進行取餘運算只能藉助數據庫mod(x,y)來實現,其中x爲被除數,y爲除數

   例如:select mod(1,3) as result from dual

3Oracle數據庫中能夠對date或timestamp類型的數據進行加減操做(但不能進行乘除操做)

   例如:select sysdate + 365 new_date from dual

 

4、連字運算符

Oracle數據庫中使用||做爲連字運算符,連字運算符可將字段與字段、字段與表達式、字段與常數值之間鏈接成單列顯示出來。

例如:select id || ',' || name as book_info from book

注意:若是鏈接的常數值是數字則能夠不使用單引號將其引發來,但若是是字符串日期類型,則必須使用單引號將其引發來

 

5、dual表

dual表的全部者是sys用戶,該表能夠被全部用戶使用,它只有一個dummy列,表中只有一條數據X。該表一般用於沒有目標表的狀況下,爲了使select語法完整(select子句必須包括from子句)而使用的一個不須要從表中真實取數值的表。

相關文章
相關標籤/搜索