整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          mysql學習3:select基礎-單表查詢

          mysql學習3:select基礎-單表查詢

          言:學習過程中,不對的地方請諒解



          select語句控制查看,根據限定規則匹配信息,常用的有單表查詢、多表查詢、聯合查詢

          select的執行流程:from-->where-->group by-->having-->order by-->select-->limit

          用法規則

          SELECT 
              column_1, column_2, ...
          FROM
              table_1
          //多表查詢連接類型cross join,inner join,left join和right join等
          WHERE
              conditions
          GROUP BY column_1
          HAVING group_conditions
          ORDER BY column_1
          LIMIT offset, length;

          SELECT語句由以下列表中所述的幾個子句組成:

          • SELECT之后是逗號分隔列或星號(*)的列表,表示要返回所有列。
          • FROM指定要查詢數據的表或視圖。
          • JOIN根據某些連接條件從其他表中獲取數據。
          • WHERE過濾結果集中的行。
          • GROUP BY將一組行組合成小分組,并對每個小分組應用聚合函數。
          • HAVING過濾器基于
          • GROUP BY子句定義的小分組。
          • ORDER BY指定用于排序的列的列表。
          • LIMIT限制返回行的數量。

          單表查詢---示例

          mysql> show databases;            //進入mysql 查看所有的數據庫
          mysql> use yiibaidb;              //進入yiibaidb 數據庫
          mysql> show tables;               //查看yiibaidb這個庫中的所有表
          mysql> desc customers;            //查看一下customers這個表的結構

          進入示例庫

          查看表結構

          1、查customers表中所有數據和只要customerName(限制顯示10行)

          select * from customers limit 10;                          //查詢全部用*
          select customerName from customers  limit 10 ;             //查詢特定列

          使用select進行單表查詢

          2、查customers表中多列【使用,】(限制顯示10行)

          mysql> select customerNumber,customerName,addressLine1 from customers limit 10;

          使用select 查詢多列信息

          3、再加一條語句的前提下再加一個限制條件where

          select customerNumber,customerName,addressLine1 from customers where customerNumber >=120 limit 10;

          使用where進行限制查詢

          where:布爾條件表達式=# 等值比較
          <=> # 等值比較,包括與NULL的安全比較
          <>或!=# 不等值比較
          <,<=,>,>=# 其它比較符
          IS NULL # 是否為空值
          IS NOT NULL # 是否不為空值
          LIKE # 支持的通配符有%和_
          RLIKE或REGEXP # 正則表達式匹配
          IN # 判指定字段的值是否在給定的列表中
          BETWEEN … AND …  # 在某取值范圍內

          多練習幾個

          mysql> select * from customers where customerName="Mini Wheels Co."; //查詢表customers中 customerName的值是“Mini Wheels Co.”的所有信息
          mysql> select city from customers where customerName="Mini Wheels Co.";   //查詢表customers中 customerName的值是“Mini Wheels Co.”的所有信息中的city值

          練習

          上一篇文章:《mysql學習2:下載并導入示例庫》

          下一篇文章:《mysql學習4:select基礎---多表查詢-1》

          言:我也是在學習過程中,不對的地方請諒解


          回顧:

          SELECT語句由以下列表中所述的幾個子句組成:
              SELECT之后是逗號分隔列或星號(*)的列表,表示要返回所有列。
              FROM指定要查詢數據的表或視圖。
              JOIN根據某些連接條件從其他表中獲取數據。
              WHERE過濾結果集中的行。
              GROUP BY將一組行組合成小分組,并對每個小分組應用聚合函數。
              HAVING過濾器基于
              GROUP BY子句定義的小分組。
              ORDER BY指定用于排序的列的列表。
              LIMIT限制返回行的數量。

          多表查詢,顧名思義就是同時查詢多個表。多表查詢首先要知道各表中的關系。示例庫關系圖如下(傳送門:下載導入示例庫)


          示例庫關系圖


          多表查詢語法:

          mysql語法:
          select … from tb1 Join_Type tb2 [on (Join_Condition)]
          連接類型有:cross join,inner join,left join和right join等

          1、cross join :交叉連接(不學,就是tb1 x tb2,以上是我自己理解的)

          2、inner join:內連接:

          條件比較連接:在連接條件中使用除等號(=)運算符之外的運算符,如>,>=,<,<=,<>等


          內連接練習1---關系圖

          eg:查詢表products中的MSRP和orderdetails表中的priceEach。條件是他們的productCode值相等的情況下。

          mysql
          mysql> use yiibaidb;
          mysql> show tables;
          mysql> select MSRP,priceEach from products inner join orderdetails on products.productCode=orderdetails.productCode limit 5;
          //解釋一下,使用內連接查詢products中的MSRP和orderdetails表中的priceEach。條件是是他們的productCode值相等的情況下。

          內連接練習1

          再練習一個


          內連接聯系2---關系圖

          select a.customerName,b.status from customers as a inner join orders as b on a.customerNumber=b.customerNumber limit 10;
          //查詢客戶姓名和他的訂單狀態。表customers中客戶姓名,表orders中訂單狀態,這2個表總的用戶編號信息是一致的。
          //解釋上面的語句。查詢a表中的客戶姓名,b表中的狀態,從哪個表,從表customers(比作a)和表orders(比作b),條件是這2個表中的客戶id一致


          內連接練習2

          as這個我感覺很好用,還可以在輸出的時候顯示為想要的意思,因為并不是每個人都知道每個值的含義,比如下面這個。

          select customerName as 客戶姓名 from customers limit 5;


          3、left/right join 外連接;

          下面是直接的解釋(讀不懂沒關系,看圖就懂了)

          LEFT JOIN(左連接):取得左表(table1)完全記錄,即是右表(table2)并無對應匹配記錄。


          left join


          RIGHT JOIN(右連接):與 LEFT JOIN 相反,取得右表(table2)完全記錄,即是左表(table1)并無匹配對應記錄。


          right join


          練習:先接受外連接概念,下一節練習的時候詳細說一下,有點繞,弄了好久才明白


          上一篇文章:《mysql學習3:select基礎---單表查詢》

          言:我也是在學習過程中,不對的地方請諒解


          SELECT之后是逗號分隔列或星號(*)的列表,表示要返回所有列。
          FROM指定要查詢數據的表或視圖。
          JOIN根據某些連接條件從其他表中獲取數據。
          WHERE過濾結果集中的行。
          GROUP BY將一組行組合成小分組,并對每個小分組應用聚合函數。
          HAVING過濾器基于
          GROUP BY子句定義的小分組。
          ORDER BY指定用于排序的列的列表。
          LIMIT限制返回行的數量。

          where 可以有條件的從表中選取數據,where的使用方法

          =# 等值比較
          <=> # 等值比較,包括與NULL的安全比較
          <>或!=# 不等值比較
          <,<=,>,>=# 其它比較符
          IS NULL # 是否為空值
          IS NOT NULL # 是否不為空值
          LIKE # 支持的通配符有%和_

          操作符

          描述

          實例

          =

          等號,檢測兩個值是否相等,如果相等返回true

          (A=B) 返回false。

          <>, !=

          不等于,檢測兩個值是否相等,如果不相等返回true

          (A !=B) 返回 true。

          >

          大于號,檢測左邊的值是否大于右邊的值, 如果左邊的值大于右邊的值返回true

          (A > B) 返回false。

          <

          小于號,檢測左邊的值是否小于右邊的值, 如果左邊的值小于右邊的值返回true

          (A < B) 返回 true。

          >=

          大于等于號,檢測左邊的值是否大于或等于右邊的值, 如果左邊的值大于或等于右邊的值返回true

          (A >=B) 返回false。

          <=

          小于等于號,檢測左邊的值是否小于或等于右邊的值, 如果左邊的值小于或等于右邊的值返回true

          (A <=B) 返回 true。

          練習:

          mysql> show databases;       //查看數據庫
          mysql> use yiibaidb;	//進入示例庫
          mysql> show tables;	//查看庫中表
          mysql> select * from items;	//查看items中數據

          查看items中數據

          1、查詢表items中id值為8的數據;

          mysql> select * from items where id=8;	//等號,檢測兩個值是否相等,如果相等返回true

          查詢表items中id值為8的數據

          2、查詢表items中id值不為8的數據;

          mysql> select * from items where id !=8;
          mysql> select * from items where id <> 8;
          //不等于,檢測兩個值是否相等,如果不相等返回true

          查詢表items中id值不為8的數據

          3、查詢item_no字段包含特定查詢

          mysql> select * from items where item_no like "A-1%";
          mysql> select * from items where item_no like "A-1_";
          mysql> select * from items where item_no like "A_1_";
          mysql> select * from items where item_no like "A_1";
          //LIKE # 支持的通配符有%和_         %多個匹配  _匹配單個

          上一篇文章:《mysql學習5:select基礎---多表查詢-2》


          主站蜘蛛池模板: 国产日韩AV免费无码一区二区三区| 亚洲AV无码一区二区乱孑伦AS| 日韩一区二区免费视频| 韩国一区二区三区视频| 久久99精品国产一区二区三区| 五月婷婷一区二区| 亚洲日韩国产精品第一页一区| 国模视频一区二区| 天堂Aⅴ无码一区二区三区| 亚欧色一区W666天堂| 国产激情无码一区二区三区| 日韩中文字幕精品免费一区| 国产美女露脸口爆吞精一区二区| 日韩一区二区超清视频| 91精品福利一区二区三区野战| 国产成人久久一区二区三区| 国产精品丝袜一区二区三区 | 久久精品无码一区二区app| 在线播放偷拍一区精品| 无码毛片视频一区二区本码| 好爽毛片一区二区三区四| 免费人妻精品一区二区三区| 国产精品第一区揄拍无码| 视频一区二区精品的福利| 美女免费视频一区二区| 亚洲国产精品一区二区第一页免 | 精品欧洲av无码一区二区14| 中文字幕aⅴ人妻一区二区| 国产一区二区在线看| 99久久精品日本一区二区免费 | 亚洲制服中文字幕第一区| 蜜臀AV一区二区| 国产精品熟女视频一区二区| 日本美女一区二区三区 | 一区二区三区国产| 精品人妻AV一区二区三区| 亚洲A∨精品一区二区三区| 国产一区二区精品| 一区二区三区伦理高清| 天堂va在线高清一区 | 国产精品视频第一区二区三区 |