91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL語句小總結

發布時間:2020-07-12 13:48:45 來源:網絡 閱讀:430 作者:Wmlllll 欄目:數據庫

   無論是面試過程中,還是未來工作中,SQL都是一定會考到和用到的。所以,在此對之前看過的一些SQL知識點進行一下總結和記錄,算是起到一個筆記本的作用。沒有深入學習過SQL的和對SQL印象不太深的朋友可以看一下,起到一個快速使用SQL語句的作用(針對有一點SQL知識的人的)。

   首先,SQL最基礎的就是語句的使用,SQL根據功能分為查詢語句、插入語句、修改語句和刪除語句,這里用到最多的便是查詢語句,首先便總結一下查詢語句的用法:

   1.簡單查詢

   (1).select name from table;    

   意思是在table這張表里查詢一個名為name的列,它會將表中name下的所有數據查詢出來。

   (2).select id,name from table;  

   表示在table中查詢出id和name列下的所有數據,兩個被查詢的列名之間用逗號分隔。

   (3).select * from table;    

   *號表示所有,意思是查詢出table表中的所有內容;

注:這樣查詢出的語句沒有過濾也沒有排序,是最簡單的查詢結果;SQL中不區分大小寫;且SQL語句可以分成多行寫,很多人認為這樣更方便閱讀和調試,結尾要用“;”號。

    2.不同值查詢

    一個表中存儲的數據肯定不會全都不同,查詢出來的很多也都是相同的值,如果你不想顯示重復值的話,可以在查詢時使用“DISTINCT”關鍵字,作用是去重;

    例:select distinct name from table;      

    意思查詢table表中的name一列,并把不出現重復后的結果顯示出來,比如一開始的查詢結果是 x,x,x,y,y,z,z,z,z,去重之后的結果就是x,y,z。

    3.限制結果查詢

    一般來說限制結果查詢會在分頁當中用到,因為限制結果查詢的用處就是,讓查詢結果按你想要的行數顯示出來,只簡單介紹Oracle和MySQL的語句:

   (1).select name from table where rownum<=5;  

    Oracle中使用rownum關鍵字表示結果限制;

   (2).select name from table limit 5;  

    MySQL中使用limit關鍵字限制結果;

    兩者都表示查詢table表中name列下的數據,但只顯示前五行數據。

    4.排序查詢

    筆試中都會出到的升序降序問題,SQL可以根據不同的條件,按想要的方式對查詢結果進行排列,默認是升序排列,這里用到關鍵字“Order by”,且只是顯示結果改變,并未改變數據存放結構。

    select id,name from table order by name;  

    意思就是查找table表中id和name兩列的數據并按name的A-Z升序排列顯示。

    select id,name from table order by name desc;  

    結果就是降序排列顯示,需要在order by的屬性后面加上關鍵字“desc”。

    5.過濾數據查詢

    數據庫表一般包含大量的數據,很少需要檢索表中的所有行。通常只會根據特定操作或報告的需要提取表數據的子集。想要使用不同的條件,就需要使用到“where”關鍵字,在“where”后面加各式的條件以達到目的。

    (1).select * from table where id=1;  

    意思是查詢出table中id列為1的這一行的所有數據。另外還有大于(>)、小于(<)、不等于(!=)這一系列操作符。

    (2).select * from table where price between 5 and 10;  

    意思是查詢table中 價格在5到10之間的所有數據,用“between”關鍵字和“and” 一起使用,多條件查詢也可以用“and”、“or”連接查詢條件,表示“并且”和“或者”。

    (3).select name, price from table where (id = '1' or id = '01') and price>=10;  

    意思是查詢出table表中id為1或者01 且價格大于等于10的數據的name和price;這里涉及到優先級,and的優先級要高于or,所以要加括號,括號的優先級更高,不然結果就只會顯示價格高于10的情況。

    (4).select id,name from table where name like "f%";  

    意思是查詢table表中name以“f”開頭的所有行的id和name數據。 這里用到了“like”關鍵字和通配符“%”,通配符可以表示其后的所有字符,若是“%f%”則代表name中包含“f”的意思。"f%y"代表“f”開頭“y”結尾的意思。

    (5).select id as idd from table order by id;

    意思是查詢table表中的id并升序排列且查詢出的結果賦予一個新的列名為“idd”,可以用“as”關鍵字實現,表示另命名。

    6.聚集函數查詢

    聚集函數分為Avg()、Max()、Min()、Sum()、Count()分別表示返回某列的平均值、返回某列的最大值、返回某列的最小值、返回某列的值之和、返回某列的行數。

    (1).select avg(price) as new_price from table;

    意思是返回table表中 價格屬性的平均值并另命名為new_price。

    (2).select count(*) as new from table;

    意思是對table表中的行數進行統計,不管表中包含空值還是非空,而count(name),表示統計name列的行數,但是忽略了null值。其余三個函數用法相同,這里就不一一寫明。

    7.分組數據查詢

    使用分組可以將數據分為多個組,對每個組進行運算更方便。

    (1).select name, count(*) as num from table GROUP BY name;

    意思是對table中的name進行分組和計算,例如

           name         num

            A           3

            B           2

            C           4

    可以看到他對name為ABC的數據行進行了統計并分組。

    (2).select id, COUNT(*) AS orders FROM table GROUP BY id HAVING COUNT(*) >= 2;

    意思是對table中的id進行分組,并統計每組數,這里也用到了過濾數據,要求統計數目大于等于2,這里的關鍵字HAVING可以代替“where”的作用,但是平常應使用“where”,HAVING是結合Group By使用的。

    8.子查詢

    可以把select的查詢結果用于另一條select的where子句中,以實現一條語句直接完成多條件查詢的功能。

    SELECT cust_id FROM table WHERE order_num IN (SELECT order_num FROM Order WHERE prod_id = '01’);

    可以拆分來看,先看括號里是查詢order表中的order_num,條件是id為01;而括號外的意思是查詢table中的id,條件是num為什么,這里num為括號里查詢到的結果。用關鍵字“IN”來連接子句,執行了兩個查詢操作,同樣可以在括號里再嵌套一個IN(),里面同樣可以再添加查詢語句。

    9.表連接

    SQL 最強大的功能之一就是能在數據查詢的執行中聯結(join)表。聯結是利用 SQL 的 SELECT 能執行的最重要的操作,很好地理解聯結及其語法是學習 SQL 的極為重要的部分。

    SELECT vend_name, prod_name FROM Vendors, Products WHERE Vendors.vend_id = Products.vend_id;

    意思是查詢Vendor和Product表中的兩個name列,且兩表的id相等。

    目前為止使用的聯結稱為等值聯結(equijoin),它基于兩個表之間的相等測試。這種聯結也稱為內聯結(inner join)。其實,可以對這種聯結使用稍微不同的語法,明確指定聯結的類型。另外還有左外連接等。



   當下,是我對于SQL查詢語句的一個總結,并不是相當細致和深入,但也算是對查詢語句的一個小的學習筆記,都是我一點一點打出來的,也算是原創吧,希望可以幫助到我自己和其他看到的人。另外插入語句和刪除、更新語句之后有時間會再寫一篇,2016年12月3日。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

秭归县| 东乡| 巨野县| 海南省| 乡城县| 河东区| 抚顺县| 石柱| 日照市| 杭锦后旗| 泸水县| 梁山县| 定兴县| 三明市| 宜宾市| 永和县| 新化县| 简阳市| 灵台县| 彭水| 区。| 丁青县| 体育| 宣化县| 临汾市| 保德县| 峨山| 开原市| 前郭尔| 中宁县| 南澳县| 泰兴市| 吉木萨尔县| 炉霍县| 松阳县| 甘谷县| 婺源县| 庄浪县| 安吉县| 舟山市| 濮阳市|