国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySQL探索之旅】數據庫設計以及聚合查詢

這篇具有很好參考價值的文章主要介紹了【MySQL探索之旅】數據庫設計以及聚合查詢。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

??博客主頁:愛敲代碼的小楊.

?專欄:《Java SE語法》 | 《數據結構與算法》 | 《C生萬物》 |《MySQL探索之旅》 |《Web世界探險家》

??感謝大家點贊????收藏?評論???,您的三連就是我持續(xù)更新的動力??

??小楊水平有限,歡迎各位大佬指點,相互學習進步!

【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

1. 數據庫設計

1.1 數據庫設計基本概念

  • 數據庫設計就是根據業(yè)務的具體需求,結合我們所學的 DBMS ,為了這個業(yè)務構造最優(yōu)的數據存儲模型。
  • 建立數據庫中的表結構以及表與表之間的關聯關系的過程。

1.2 數據庫設計的步驟

  1. 需求分析(數據是什么?數據具有哪些屬性?數據和屬性之間的特點是什么)

  2. 邏輯分析(通過 ER圖對數據庫進行邏輯建模)

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

  3. 物理設計(根據數據庫自身的特點把邏輯設計轉換為物理設計)

  4. 維護設計(1. 對新的需求進行建表;2. 表優(yōu)化)

1.3 表設計

1.3.1 一對一

例如:人 和 身份證 的關系

一個人只能對應一個身份證號

【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

1.3.2 一對多

例如: 班級 和 學生 的關系

一個班級多個學生

【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

1.3.3 多對多

例如:學生 和 課程 的關系

一個學生可以選擇多個課程

一個課程可以被多個學生選擇

【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

案例:

  1. 創(chuàng)建學生表:學生 id ,姓名

    create table student(
    	id int primary key auto_increment,
    	name varchar(20)
    );
    
  2. 創(chuàng)建課程表:課程表,課程名

    create table course(
    	courseId int primary key auto_increment,
    	courseName varchar(20)
    );
    
  3. 創(chuàng)建關聯表:學生和課程之間的關系,需要包含學生id 和課程id 作為外鍵。

    create table student_course(
    	student_id int, 
     	course_id int,
     	primary key (student_id, course_id), 
     	foreign key (student_id) references student(id), 
     	foreign key (course_id) references course(courseId)
     );
    

2. 聚合查詢

2.1 聚合函數

常見的統(tǒng)計總數、計算平局值等操作,可以使用聚合函數來實現,常見的聚合函數有:

函數 說明
COUNT([DISTINCT] expr) 返回查詢的數據的數量
SUM([DISTINCT] expr) 返回查詢到的數據的總和,忽略非數值
AVG([DISTINCT] expr) 返回查詢到的數據的平均值,忽略非數值
MAX([DISTINCT] expr) 返回查詢到的數據的最大值,忽略非數值
MIN([DISTINCT] expr) 返回查詢到的數據的最小值,忽略非數值

案例:

  • count:計數

    -- 統(tǒng)計有多少位學生
    select count(*) from student;
    
    -- 統(tǒng)計學生表有多少個姓名,姓名為 NULL 不會計入結果
    select count(name) from student;
    

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

  • sum:總和

    -- 統(tǒng)計分數的總和
    select sum(score) from score;
    
    -- 統(tǒng)計分數小于70的總分,如果沒有返回null
    select sum(score) from score where score<70;
    

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

  • avg:平均值

    -- 查詢分數的平均值
    select avg(score) from score;
    
    -- 查詢分數小于70的平均值,如果沒有則返回 NULL
    

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

  • MAX:最大值

    -- 查詢分數的最大值
    select max(score) from score;
    
    -- 查詢60到90之間的最大值
    select max(score) from score where score>60 and score<90;
    
    -- 查詢大于90的最大值,如果沒有則返回 NULL
    select max(score) from score where score>90;
    

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

  • MIN:最小值

    -- 查詢分數的最小值
    select min(score) from score;
    
    -- 查詢分數在60到90之間的最小值
    select min(score) from score where score>60 and score<90;
    
    -- 查詢分數在60以下的最小值,如果沒有則返回 NULL
    select min(score) from score where score<60;
    

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

2.2 分組查詢

select 中使用 group by 子句可以對指定列進行分組查詢。需要滿足:使用 group by 進行分組查
詢時,select 指定的字段必須是“分組依據字段”,其他字段若想出現在 select 中則必須包含在聚合函
數中。

select column1, sum(column2), .. from table group by column1,column3;

案例:

測試表:職工表 id,name(姓名),role(職位),salary(工資)

create table emp(id int, name varchar(20), role varchar(20), salary int);


insert into emp values (1,'張三','Java開發(fā)',10000);
insert into emp values (2,'李四','Java開發(fā)',9000);
insert into emp values (3,'王五','Web開發(fā)',8000);
insert into emp values (4,'趙六','Web開發(fā)',9000);
insert into emp values (5,'王麻子','運維',8500);
insert into emp values (6,'瑪暈','老板',100000);
  • 查詢每個崗位的最高工資、最低工資和平均工資

    select role,max(salary),min(salary),avg(salary) from emp group by role;
    

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

2.3 條件過濾

group by 子句進行分組以后,需要對分組結果再進行條件過濾時,不能使用 where 語句,而需要用
having 。

  • 查詢平均工資低于9000的職位和它的平均工資

    select role,max(salary),min(salary),avg(salary) from emp group by role having avg(salary)<9000;
    

    【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql

【MySQL探索之旅】數據庫設計以及聚合查詢,MySQL探索之旅,數據庫,mysql,sql文章來源地址http://www.zghlxwxcb.cn/news/detail-845499.html

到了這里,關于【MySQL探索之旅】數據庫設計以及聚合查詢的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MySQL數據庫,聚合查詢

    MySQL數據庫,聚合查詢

    目錄 1、聚合查詢 1.1聚合函數 1.1.1count函數 1.1.2sum函數 1.1.3avg函數 1.1.4max函數 1.1.5min函數 1.2group by子句 1.3having 聚合函數查詢又叫函數查詢,它是通過一些特定的函數根據需求來查詢相關的信息,常見的聚合函數為: COUNT - 求總數,不包含某字段為null值 SUM - 求和,不包含某字

    2023年04月21日
    瀏覽(34)
  • 【MySql】數據庫的聚合查詢

    【MySql】數據庫的聚合查詢

    寫在最前面的話 ????????哈嘍,寶子們,今天給大家?guī)淼氖荕ySql數據庫的聚合查詢。在前面CRUD章節(jié)我們學習了表達式查詢,表達式查詢是針對列和列之間進行運算的,那么如果想在行和行之間進行運算,那么就需要用到聚合查詢。 聚合查詢除了包含聚合函數外(count,

    2024年02月09日
    瀏覽(23)
  • 探索Apache Hive:融合專業(yè)性、趣味性和吸引力的數據庫操作奇幻之旅

    探索Apache Hive:融合專業(yè)性、趣味性和吸引力的數據庫操作奇幻之旅

    本博客的內容基于我個人學習黑馬程序員課程的學習筆記整理而成。我特此聲明,所有版權屬于黑馬程序員或相關權利人所有。本博客的目的僅為個人學習和交流之用,并非商業(yè)用途。 我在整理學習筆記的過程中盡力確保準確性,但無法保證內容的完整性和時效性。本博客的

    2024年02月09日
    瀏覽(22)
  • 從 Oracle 到 MySQL 數據庫的遷移之旅

    從 Oracle 到 MySQL 數據庫的遷移之旅

    目錄 引言 一、前期準備工作 1.搭建新的MySQL數據庫 2 .建立相應的數據表 2.1 數據庫兼容性分析 2.1.1 字段類型兼容性分析 2.1.2 函數兼容性分析 2.1.3 是否使用存儲過程?存儲過程的個數?復雜度? 2.1.4 是否使用觸發(fā)器?個數?使用的場景? 2.2 建表過程中其他需要注意的事項

    2024年04月11日
    瀏覽(25)
  • MySQL數據庫增刪改查及聚合查詢SQL語句學習匯總

    MySQL數據庫增刪改查及聚合查詢SQL語句學習匯總

    目錄 數據庫增刪改查SQL語句 MySQL數據庫指令 1.查詢數據庫 2.創(chuàng)建數據庫 3.刪除數據庫 4.選擇數據庫 創(chuàng)建表table ? 查看所有表 創(chuàng)建表 查看指定表的結構 刪除表 數據庫命令進行注釋 增刪改查(CRUD)詳細說明 增加 SQL庫提供了關于時間的函數:now()? 查詢 查詢表作列與列之間進

    2024年02月09日
    瀏覽(29)
  • 【JaveWeb教程】(20) MySQL數據庫開發(fā)之 基本查詢、條件查詢、聚合函數、分組查詢、排序查詢、分頁查詢 詳細代碼示例講解

    【JaveWeb教程】(20) MySQL數據庫開發(fā)之 基本查詢、條件查詢、聚合函數、分組查詢、排序查詢、分頁查詢 詳細代碼示例講解

    在上次學習的內容中,我們講解了: 使用DDL語句來操作數據庫以及表結構(數據庫設計) 使用DML語句來完成數據庫中數據的增、刪、改操作(數據庫操作) 我們今天還是繼續(xù)學習數據庫操作方面的內容:查詢(DQL語句)。 查詢操作我們分為兩部分學習: DQL語句-單表操作

    2024年02月02日
    瀏覽(46)
  • 【MySQL數據庫】--- 初識數據庫以及MySQL數據庫在Linux云服務器下載(詳細教程)

    【MySQL數據庫】--- 初識數據庫以及MySQL數據庫在Linux云服務器下載(詳細教程)

    ?? 博客主頁:??@披星戴月的賈維斯 ?? 歡迎關注:??點贊??收藏??留言 ??系列專欄:?? MYSQL數據庫 ??請不要相信勝利就像山坡上的蒲公英一樣唾手可得,但是請相信,世界上總有一些美好值得我們全力以赴,哪怕粉身碎骨!?? ??一起加油,去追尋、去成為更好的自

    2024年02月03日
    瀏覽(23)
  • 【MySQL數據庫】--- 初始數據庫以及MySQL數據庫在Linux云服務器下載(詳細教程)

    【MySQL數據庫】--- 初始數據庫以及MySQL數據庫在Linux云服務器下載(詳細教程)

    ?? 博客主頁:??@披星戴月的賈維斯 ?? 歡迎關注:??點贊??收藏??留言 ??系列專欄:?? MYSQL數據庫 ??請不要相信勝利就像山坡上的蒲公英一樣唾手可得,但是請相信,世界上總有一些美好值得我們全力以赴,哪怕粉身碎骨!?? ??一起加油,去追尋、去成為更好的自

    2023年04月24日
    瀏覽(101)
  • 【MySQL】探索MySQL存儲過程的魔力,初學者的數據庫編程秘笈(內含實戰(zhàn)SQL腳本)

    【MySQL】探索MySQL存儲過程的魔力,初學者的數據庫編程秘笈(內含實戰(zhàn)SQL腳本)

    ?????作者名稱:DaenCode ??作者簡介:啥技術都喜歡搗鼓搗鼓,喜歡分享技術、經驗、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專欄:重溫MySQL MySQL存儲過程作為一種服務器端的 數據庫編程方式 ,提供了高效、可重用的方法來執(zhí)行相對復雜的數據庫操

    2024年02月15日
    瀏覽(95)
  • Mysql 數據庫DQL 數據查詢語言 SELECT 基本查詢、條件查詢、聚合查詢、分組查詢、排序查詢、分頁查詢——包含DQL所有查詢語句。吐血分享。

    Mysql 數據庫DQL 數據查詢語言 SELECT 基本查詢、條件查詢、聚合查詢、分組查詢、排序查詢、分頁查詢——包含DQL所有查詢語句。吐血分享。

    DQL:數據查詢語言; 用來對表內的數據進行查找 。Database Query Language SQL語句分為:基本查詢、條件查詢、聚合查詢、分組查詢、排序查詢、分頁查詢。 ?可以發(fā)現name字段就只剩下一個張三了; ? 條件: 條件查詢—比較運算符 比較運算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    瀏覽(45)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包