MySQL多表操作表關系與數據查詢_第1頁
MySQL多表操作表關系與數據查詢_第2頁
MySQL多表操作表關系與數據查詢_第3頁
MySQL多表操作表關系與數據查詢_第4頁
MySQL多表操作表關系與數據查詢_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

主講教師:魏巍巍北京信息職業技術學院數據庫技術與應用表關系與數據查詢創建采集任務01表關系01目錄CONTENTS數據查詢02表關系01

先定一個小目標!了解一對一表關系的概念了解實現一對一表關系的方式表關系一對一:表中的一條記錄與另外一張表中有且僅有一條記錄有關系。實現一對一表關系:一張表拆分成兩個表,將頻繁使用的字段和生僻字段進行垂直分割,使用相同的主鍵對應。拆分前數據表示例學號姓名性別年齡身高體重籍貫政治面貌1張三男20165140河北團員2李四女21168100山東團員3小明男22170130陜西團員姓名、性別和年齡為頻繁使用字段表關系一對一設計數據表示例學號姓名性別年齡1張三男202李四女213小明男22學號身高體重籍貫政治面貌1165140河北團員2168100山東團員3170130陜西團員學生表:學生信息表:表關系

先定一個小目標!了解一對多表關系的概念了解實現一對多表關系的方式表關系一對多:表中的一條記錄與另外一張表中多條記錄對應,也叫多對一。一對多設計數據表示例班級編號班級名班主任1軟件班張老師2設計班王老師學號姓名性別班級號1張三男12李四女13小明男2班級表:學生表:表關系

先定一個小目標!了解多對多表關系的概念了解實現多對多表關系的方式表關系多對多:表中的多條記錄與另外一張表中多條記錄對應,需要借助第三張表,將多對多關系變成多個多對一的關系。多對多設計數據表示例課程編號課程名1計算機2數據庫課程表:表關系多對多設計數據表示例學號姓名性別班級號1張三男12李四女13小明男2編號學號課程編號111221312432學生表:學生選課表:表關系數據查詢02

先定一個小目標!掌握查詢選項的語法格式掌握查詢選項的基本使用數據查詢去除重復記錄:使用SELECT語句的選項進行篩選。SELECTselect選項字段列表FROM數據表;語法格式select選項默認值為ALL,表示保存所有查詢到的記錄select選項值為DISTINCT,表示去除重復記錄,只保留一條數據查詢查詢全部記錄代碼示例去除重復項代碼示例數據查詢

先定一個小目標!掌握比較運算符的基本使用掌握邏輯運算符的基本使用數據查詢比較運算符比較運算符:在條件表達式中對結果進行限定。比較運算符的結果值:1(TRUE,表示為真)、0(FALSE,表示為假)或NULL。數據查詢比較運算符運算符描述=用于相等比較<=>可以進行NULL值比較的相等運算符>

表示大于比較<

表示小于比較>=表示大于等于比較<=表示小于等于比較<>、!=表示不等于比較BRTWEEN…AND…比較數據是否在閉區間范圍內,若在返回1,不在返回0(1/2)數據查詢比較運算符運算符描述NOTBRTWEEN…AND…比較數據是否不在閉區間范圍內,若不在返回1,若在返回0IS比較數據是否是TRUE、FALSE或UNKNOWN,若是返回1,若不是返回0ISNOT比較數據是否不是TRUE、FALSE或UNKNOWN,若不是返回1,若是返回0ISNULL比較數據是否是NULL,若是返回1,若不是返回0ISNOTNULL比較數據是否不是NULL,若不是返回1,若是返回0LIKE'匹配模式'獲取匹配到的數據NOTLIKE'匹配模式'獲取匹配不到的數據(2/2)數據查詢案例:比較運算符的使用代碼示例#查詢my_goods表中價格在2000到6000的商品,商品信息包括id、name和pricemysql>SELECT`id`,`name`,`price`FROM`my_goods`->WHERE`price`BETWEEN2000AND6000;+----+------------+---------+|id|name|price|+----+------------+---------+|4|液晶顯示器|5999.00||8|辦公計算機|2000.00|+----+------------+---------+數據查詢邏輯運算符邏輯運算符:在條件表達式中用于邏輯判斷、可與比較運算符結合使用。邏輯運算符的結果值:1(TRUE,表示為真)、0(FALSE,表示為假)或NULL。運算符描述AND或&&邏輯與,若操作數全部為真,則結果為1,否則為0OR或||邏輯或,若操作數中只要有一個為真,則結果為1,否則為0NOT或!邏輯非,若操作數為0,則結果為1,否則為0XOR邏輯異或,若操作數一個為真,一個為假,則結果為1;若操作數全部為真或全部為假,則結果為0數據查詢案例:邏輯運算符的使用代碼示例#查詢my_goods表中關鍵詞為電子產品的5星商品,商品信息包括id、name和pricemysql>SELECT`id`,`name`,`price`FROM`my_goods`->WHERE`keyword`='電子產品'&&`score`=5;+----+---------+---------+|id|name|price|+----+---------+---------+|5|智能手機|1999.00|+----+---------+---------+數據查詢

先定一個小目標!掌握分組的基本使用掌握回溯統計的基本使用掌握排序的基本使用掌握HAVING子句的基本使用數據查詢分組分組:在WHERE條件后面添加GROUPBY。SELECT字段列表FROM數據表名[WHERE條件表達式]GROUPBY字段名;語法格式注意:對數據分組后,SELECT獲取的字段列表只能是GROUPBY分組的字段或使用了聚合函數的非分組字段。數據查詢分組常用聚合函數:函數名描述COUNT()返回參數字段的數量,不統計為NULL的記錄SUM()返回參數字段之和AVG()返回參數字段的平均值MAX()返回參數字段的最大值MIN()返回參數字段的最小值GROUP_CONCAT()返回復合條件的參數字段值的連接字符串數據查詢分組使用聚合函數:使用MAX()獲取每個分類下商品的最高價格。mysql>SELECT`category_id`,MAX(`price`)FROM`my_goods`GROUPBY`category_id`;+-------------+------------+|category_id|MAX(price)|+-------------+------------+|3|15.00||6|1999.00||8|69.00||9|109.00||10|2000.00||12|5999.00||15|299.00||16|48.00|+-------------+------------+數據查詢回溯統計回溯統計:系統自動對分組字段向上進行一次新的統計并產生一個新的統計數據,該數據對應的分組字段值為NULL。SELECT字段列表FROM數據表名[WHERE條件表達式]GROUPBY字段名1[,字段名2…]WITHROLLUP;語法格式數據查詢案例:單字段回溯統計代碼示例mysql>SELECT`category_id`,COUNT(*)FROM`my_goods`GROUPBY`category_id`WITHROLLUP;+-------------+----------+|category_id|COUNT(*)|+-------------+----------+|3|3||6|1||8|1||9|1||10|1||12|1||15|1||16|1||NULL|10|對分組的回溯統計+-------------+----------+數據查詢案例:多分組回溯統計代碼示例mysql>SELECT`score`,`comment_count`,COUNT(*)FROM`my_goods`GROUPBY`score`,`comment_count`WITHROLLUP;+-------+-------------------+-----------+|score|comment_count|COUNT(*)|+-------+-------------------+-----------+|2.50|200|1||2.50|NULL|1||3.90|500|2||3.90|NULL|2||4.50|1000|1||4.50|NULL|1||4.80|6000|1||4.80|98000|1||4.80|NULL|2||4.90|40000|2||4.90|NULL|2||5.00|98000|2||5.00|NULL|2||NULL|NULL|10|+-------+-------------------+-----------+數據查詢排序分組排序:為指定字段進行升序或降序排序的功能,默認為升序。SELECT字段列表FROM數據表名[WHERE條件表達式]GROUPBY字段名[ASC|DESC];語法格式數據查詢案例:分組排序代碼示例STEP01mysql>SELECT`category_id`,GROUP_CONCAT(`id`),GROUP_CONCAT(`name`)->FROM`my_goods`GROUPBY`category_id`DESC;+-------------+-----------------------+---------------------------+|category_id|GROUP_CONCAT(id)|GROUP_CONCAT(name)|+-------------+-----------------------+---------------------------+|16|10|薄毛衣||15|9|收腰風衣||12|4|液晶顯示器||10|8|辦公計算機||9|7|頭戴耳機||8|6|桌面音箱||6|5|智能手機||3|1,2,3|2B鉛筆,鋼筆,碳素筆|+-------------+------------------------+---------------------------+數據查詢HAVING子句篩選分組結果:對查詢的數據執行分組操作時,可以利用HAVING根據條件進行數據篩選。SELECT字段列表FROM數據表名[WHERE條件表達式]GROUPBY字段名HAVING條件表達式;語法格式數據查詢HAVING子句HAVING和WHERE區別:WHERE操作是從數據表中獲取數據,將數據從磁盤存儲到內存中,HAVING是對已存放到內存中的數據進行操作。HAVING位于GROUPBY子句后,WHERE位于GROUPBY子句之前。HAVING關鍵字后可以使用聚合函數,WHERE不可以。數據查詢案例:分組篩選代碼示例STEP01mysql>SELECT`score`,`comment_count`,GROUP_CONCAT(`id`)->FROM`my_goods`GROUPBY`score`,`comment_count`->HAVINGCOUNT(*)=2;+-------+-------------------+----------------------+|score|comment_count|GROUP_CONCAT(id)|+-------+-------------------+----------------------+|3.90|500|2,7||4.90|40000|1,9||5.00|98000|3,5|+-------+-------------------+----------------------+數據查詢

先定一個小目標!掌握單字段排序的基本語法和使用掌握多字段排序的基本語法和使用掌握對中文排序的使用數據查詢STEP02SELECT字段列表FROM數據表名[WHERE條件表達式]ORDERBY字段名1[,字段名2…][ASC|DESC];語法格式兩種排序方式:單字段排序和多字段排序。數據查詢案例:單字段排序代碼示例STEP02mysql>SELECT`id`,`name,`price`FROM`my_goods`ORDERBY`price`DESC;+----+------------+---------+|id|name|price|+----+------------+---------+|4|液晶顯示器|5999.00||8|辦公計算機|2000.00||5|智能手機|1999.00||9|收腰風衣|299.00||7|頭戴耳機|109.00||6|桌面音箱|69.00||10|薄毛衣|48.00||2|鋼筆|15.00||3|碳素筆|1.00||1|2B鉛筆|0.50|+----+-----------+---------+數據查詢案例:多字段排序代碼示例STEP02mysql>SELECT`category_id`,`id`,`name`,`price`FROM`my_goods`ORDERBY`category_id`,`price`DESC;+-------------+----+----------+---------+|category_id|id|name|price|+-------------+----+----------+---------+|3|2|鋼筆|15.00||3|3|碳素筆|1.00||3|1|2B鉛筆|0.50||6|5|智能手機|1999.00||8|6|桌面音箱|69.00||9|7|頭戴耳機|109.00||10|8|辦公計算機|2000.00||12|4|液晶顯示器|5999.00||15|9|收腰風衣|299.00||16|10|薄毛衣|48.00|+-------------+----+----------+---------+數據查詢STEP02中文排序使用“CONVERT(字段名USINGgbk)”函數強制讓指定的字段按中文拼音順序排序。案例:代碼示例mysql>mysql>SELECT`id`,`name`FROM`my_goods`ORDERBYCONVERT(`name`USINGgbk)ASC;+----+------------+|id|name|+----+------------+|1|2B鉛筆||8|辦公計算機||10|薄毛衣||4|液晶顯示器|+----+------------+數據查詢

先定一個小

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論