sql語句中通配符有幾種
SQL語句中通配符有四種,分別是百分號%、下劃線_、方括號[ ]、方括號[^](或[!])。
百分號%:替代0個或多個字符
下劃線_:僅替代一個字符
方括號[ ]:字符列中的任何單一字符,使用方法:[charlist]
方括號[^]或者方括號[!]不在字符列中的任何單一字符,使用方法:[^charlist]或[!charlist]。
擴展資料:
sql通配符用來執行模糊搜索指令的語句功能。在搜索數據庫中的數據時,SQL 通配符可以替代一個或多個字符。
SQL 通配符必須與 LIKE 運算符一起使用。如在數據中搜索以大寫“A”字母開頭的字符類型數據,可以使用like "A%"。
不過,MySQL、SQLite只支持 % 和 _ 通配符,不支持[^charlist]或[!charlist]通配符(MS Access 支持,微軟 office 對通配符一直支持良好,但微軟有時候的通配符不支持%,而是*,具體看對應軟件說明)。
MySQL 和 SQLite 會把 like '[xxx]yyy' 的中括號當成普通字符,而不是通配符。
參考資料:百度百科——SQL 通配符
SQL語句基礎中的外部連接是指什么
如果我們想要列出一個表格中每一筆的資料,無論它的值在另一個表格中有沒有出現,那該怎么辦呢?在這個時候,我們就需要用到 SQL OUTER JOIN (外部連接) 的指令。
外部連接的語法是依數據庫的不同而有所不同的。舉例來說,在 Oracle 上,我們會在 WHERE 子句中要選出所有資料的那個表格之后加上一個 "(+)" 來代表說這個表格中的所有資料我們都要。
假設我們有以下的兩個表格: Store_Information 表格 store_namesalesdate Los Angeles$1500jan-05-1999 San Francisco$300jan-08-1999 Boston$700jan-08-1999 Geography 表格 region_namestore_name EastBoston EastNew York WestLos Angeles WestSan Diego 我們需要知道每一間店的營業額。 如果我們用一個普通的連接,我們將會漏失掉 'New York'這個店,因為它并不存在于 Store_Information 這個表格。
所以,在這個情況下,我們需要用外部連接來串聯這兩個表格: SELECT A1。store_name, SUM(A2。
Sales) SALES FROM Georgraphy A1, Store_Information A2 WHERE A1。store_name = A2。
store_name (+) GROUP BY A1。store_name 我們在這里是使用了 Oracle 的外部連接語法。
結果: store_name SALES Boston $700 New York Los Angeles $1800 San Diego $250 請注意: 當第二個表格沒有相對的資料時,SQL 會傳回 NULL 值。在這一個例子中, 'New York' 并不存在于 Store_Information 表格,所以它的 "SALES" 欄位是 NULL。
sql語句中的group by什么意思
GROUP BY 語句用于結合合計函數,根據一個或多個列對結果集進行分組。
舉幾個簡單例子
成績表(姓名,課程,成績)
1、去重復,同distinct、查找有多少個人的記錄(按姓名分組、排重)
2、取每個人有多少條記錄(按姓名分組、統計)
3、取有成績記錄為2條的人(按姓名分組、配合having使用)
4、取每個人的總成績(按姓名分組、合計)
5、取每個人的最高成績(按姓名分組、取最大max/最小min/平均avg值)
SQL語句中的COUNT是什么
COUNT 是函數之一。
由于它的使用廣泛,我們在這里特別提出來討論。基本上,COUNT 讓我們能夠數出在表格中有多少筆資料被選出來。
它的語法是: SELECT COUNT("欄位名") FROM "表格名" 舉例來說,若我們要找出我們的示范表格中有幾筆 store_name 欄不是空白的資料時 Store_Information 表格 store_namesalesdate Los Angeles$1500jan-05-1999 San Francisco$300jan-08-1999 Boston$700jan-08-1999 我們就打入 SELECT COUNT(store_name) FROM Store_Information WHERE store_name is not NULL 結果: Count(store_name) 4 "is not NULL" 是 "這個欄位不是空白" 的意思。 COUNT 和 DISTINCT 經常被合起來使用,目的是找出表格中有多少筆不同的資料 (至于這些資料實際上是什么并不重要)。
舉例來說,如果我們要找出我們的表格中有多少個不同的 store_name,我們就打入, SELECT COUNT(DISTINCT store_name) FROM Store_Information。
數據庫中常用的sql語句有哪些
1.檢索數據 SELECT prod_nameFROM Products;#檢索單列 SELECT prod_id, prod_name, prod_priceFROMProducts;#檢索多列 SELECT * FROM Products;#檢索所有列 SELECT DISTINCTvend_id FROMProducts;#檢索不同的值 SELECTprod_name FROM Products LIMIT 5;#返回不超過5行數據 SELECTprod_name FROM Products LIMIT 5 OFFSET 5;#返回從第5行起的5行數據。
LIMIT指定返回的行數,LIMIT帶的OFFSET指定從哪兒開始。2.排序檢索數據 SELECTprod_name FROMProducts ORDER BYprod_name;#排序數據 SELECT prod_id, prod_price, prod_name FROMProducts ORDER BY prod_price, prod_name;#按多個列排序 SELECT prod_id, prod_price, prod_name FROMProducts ORDER BY 2, 3;#按列位置排序,第三行表示先按prod_price, 再按prod_name進行排序 SELECT prod_id, prod_price, prod_name FROMProducts ORDER BY prod_priceDESC, prod_name;#prod_price列以降序排序,而prod_name列(在每個價格內)仍然按標準的升序排序3.過濾數據 SELECT prod_name, prod_price FROMProducts WHERE prod_price#檢查單個值 SELECT prod_name, prod_price FROMProducts WHERE vend_id 'DLL01';#不匹配檢查 SELECT prod_name, prod_price FROMProducts WHERE prod_priceBETWEEN 5 AND 10;#范圍值檢查 SELECT cust_name FROMCUSTOMERS WHERE cust_emailIS NULL;#空值檢查4.高級數據過濾 SELECTprod_id, prod_price, prod_name FROMProducts WHERE vend_id = 'DLL01'ANDprod_price #AND操作符 SELECTprod_name, prod_price FROMProducts WHEREvend_id='DLL01' OR vend_id='BRS01';#OR操作符 SELECTprod_name, prod_price FROMProducts WHERE (vend_id = 'DLL01'ORvend_id='BRS01') ANDprod_price >= 10;#求值順序 AND的優先級高于OR SELECTprod_name, prod_price FROMProducts WHERE vend_idIN ('DLL01','BRS01') ORDER BY prod_name;#IN操作符 SELECT prod_name FROMProducts WHERE NOTvend_id = 'DLL01' ORDER BY prod_name;#NOT 操作符 SELECT prod_name FROMProducts WHEREvend_id 'DLL01' ORDER BY prod_name;#NOT 操作符。
靜態SQL語句中的“動態”功能是什么呢
一般地講,在 SELECT 語句的 SELECT 部分實現選擇功能,可以用DECODE函數。
如: SELECT DECODE(字段1,'A',字段A, 'B',字段B, 'C',字段C, 字段D) FROM 表名; 這樣就可以根據每條記錄的字段1的值來選擇其它字段的值。 當然這里要注意:字段A,B,C,D的類型要一致或可自動轉換。
還可以在WHERE部分實現選擇功能。 如: SELECT …… FROM 表名 WHERE (其它必需的條件) AND (C_V !='0' OR 可選條件1) AND (C_V !='1' OR 可選條件2) AND (C_V !='3' OR 可選條件3) …… ; 說明: 1。
上面語句的含義為:當控制變量C_V為0時,按 可選條件1 來選擇;當控制變量C_V為1時,按 可選條件2 來選擇…… 2。要注意,控制變量的名字不要與表中的原有字段名相同。
3。上面的這段程序可以寫在 PROCEDURE 或 FUNCTION 中,控制變量可以作為過程或函數的輸入參數。
4。省略號表示類似上面三行的語句可以寫多次。
5。上面所述的 WHERE 部分中條件的選擇,可以用在任何語句的WHERE部分中。
SQL語句中的ANDOR是什么
我們看到 WHERE 指令可以被用來由表格中 有條件地選取資料。
這個條件可能是簡單的 (像上一頁的例子),也可能是復雜的。復雜條件是由二或多個簡單條件透過 AND 或是 OR 的連接而成。
一個 SQL 語句中可以有無限多個簡單條件的存在。 復雜條件的語法如下: SELECT "欄位名" FROM "表格名" WHERE "簡單條件" {[AND|OR] "簡單條件"}+ {}+ 代表{}之內的情況會發生一或多次。
在這里的意思就是 AND 加簡單條件及 OR加簡單條件的情況可以發生一或多次。另外,我們可以用 () 來代表條件的先后次序。
舉例來說,我們若要在 Store_Information表格中選出所有 Sales 高于 $1,000 或是 Sales 在 $500 及 $275 之間的資料的話 Store_Information 表格 store_namesalesdateLos Angeles$1500jan-05-1999San Diego$250jan-07-1999San Francisco$300jan-08-1999Boston$700jan-08-1999 我們就打入 SELECT store_name FROM Store_Information WHERE Sales > 1000 OR (Sales 275) 結果: store_name Los Angeles San Francisco。