最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL表設(shè)計(jì)和聚合函數(shù)以及正則表達(dá)式示例詳解

 更新時(shí)間:2025年07月24日 08:31:51   作者:緣來(lái)如此?  
聚合函數(shù)在數(shù)據(jù)庫(kù)管理和分析中有著廣泛的應(yīng)用場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于MySQL表設(shè)計(jì)和聚合函數(shù)以及正則表達(dá)式的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、第一范式(原子性)

要求:每列的值必須是不可再分的原子值。

例如:出生日期這一列存了某年某月某日,但是把出生日期這列可以拆分為年,月,日,三列,這樣的列就不具有原子性。

二、第二范式(消除部分依賴)

要求:在滿足第一范式的基礎(chǔ)上,非主鍵列必須完全依賴整個(gè)主鍵(不能僅依賴主鍵的一部分)。

正例:
學(xué)生表:
學(xué)號(hào),年齡,姓名。
學(xué)生選修成績(jī)表:
學(xué)號(hào),課程編號(hào),成績(jī)。
在學(xué)生表中,學(xué)號(hào)作為主鍵,通過學(xué)號(hào),可以知道年齡,通過學(xué)號(hào)也可以知道姓名。這就是完全依賴。
在學(xué)生選修成績(jī)表中,學(xué)號(hào)和課程編號(hào)作為復(fù)合主鍵,通過這個(gè)復(fù)合主鍵可以唯一確定學(xué)生的成績(jī)。
反例:
學(xué)生選修課成績(jī)表:
學(xué)號(hào),姓名,年齡,課程名,學(xué)分,成績(jī)。
這個(gè)表中學(xué)號(hào)作為主鍵,只有姓名和年齡完全依賴于學(xué)號(hào)主鍵,學(xué)分這個(gè)字段依賴于課程名,成績(jī)字段依賴于課程名和學(xué)號(hào)這樣的復(fù)合主鍵,所以這個(gè)表只能滿足部分依賴。

三、第三范式(消除傳遞依賴)

要求:在滿足第二范式的基礎(chǔ)上,非主鍵列必須直接依賴主鍵,不能通過其他非主鍵列間接依賴(消除傳遞依賴)。

反例:
學(xué)生表:學(xué)號(hào),姓名,年齡,所在院校,學(xué)院電話,學(xué)院地址。
這個(gè)表中學(xué)號(hào)作為主鍵,只有姓名和年齡和學(xué)號(hào)是強(qiáng)相關(guān)的。
院校電話和院校地址是和所在院校強(qiáng)相關(guān)的。
存在的傳遞關(guān)系:
學(xué)號(hào)->所在院校->學(xué)院電話->院校地址。
解決辦法就是將學(xué)生表一分為二。
學(xué)生表:
學(xué)號(hào),年齡,姓名,學(xué)院編號(hào)
學(xué)院表:
學(xué)院編號(hào),學(xué)員名,學(xué)院電話,學(xué)院地址
用學(xué)院編號(hào)作為外鍵將兩張表聯(lián)系起來(lái)。
總結(jié):

范式核心目標(biāo)常見問題示例解決方案
1NF列原子性地址字段存復(fù)合信息拆分列
2NF消除部分主鍵依賴表的主鍵是組合鍵,非主鍵列依賴部分主鍵拆分表
3NF消除非主鍵間的傳遞依賴非主鍵列依賴其他非主鍵列拆分表,建立外鍵關(guān)聯(lián)

四、表設(shè)計(jì)

一對(duì)一模型:

或者:

一對(duì)多:

在n端加入另一張表的主鍵。

多對(duì)多:

例如學(xué)生運(yùn)動(dòng)會(huì)的模型如下:

(1)有若干個(gè)班級(jí),每個(gè)班級(jí)包括班級(jí)號(hào)、班級(jí)名、專業(yè)、人數(shù)。
(2)每個(gè)班級(jí)有若干個(gè)運(yùn)動(dòng)員,運(yùn)動(dòng)員只能屬于一個(gè)班,包括運(yùn)動(dòng)員號(hào)、姓名、性別、年齡。
(3)有若干個(gè)比賽項(xiàng)目,包括項(xiàng)目號(hào)、名稱、比賽地點(diǎn)。
(4)每個(gè)運(yùn)動(dòng)員可參加多個(gè)比賽項(xiàng)目,且每個(gè)項(xiàng)目可有多人參加。
(5)要求能夠公布每個(gè)比賽項(xiàng)目的運(yùn)動(dòng)員名次與成績(jī)。
(6)要求能夠公布各個(gè)班級(jí)團(tuán)體總分的名次和成績(jī)。

E-R圖:

關(guān)系模型:

運(yùn)動(dòng)員(運(yùn)動(dòng)員號(hào),班級(jí)號(hào),姓名,性別,年齡)
班級(jí)(班級(jí)號(hào),班級(jí)名,專業(yè),人數(shù))
比賽項(xiàng)目(項(xiàng)目號(hào),比賽地點(diǎn),名稱)
比賽(項(xiàng)目號(hào),運(yùn)動(dòng)員號(hào),成績(jī),名次)

五、聚合函數(shù)

函數(shù)名作用描述是否忽略 NULL示例代碼(含 GROUP BY)
COUNT()統(tǒng)計(jì)行數(shù)或列值個(gè)數(shù)是(COUNT(*)除外)SELECT city, COUNT(*) FROM users GROUP BY city;
SUM()求數(shù)值列總和SELECT user_id, SUM(amount) FROM orders GROUP BY user_id;
AVG()求數(shù)值列平均值SELECT category, AVG(price) FROM products GROUP BY category;
MAX()返回列最大值SELECT user_id, MAX(order_date) FROM orders GROUP BY user_id;
MIN()返回列最小值`SELECT user_id, MIN(order_date) FROM
COUNT(DISTINCT)統(tǒng)計(jì)去重后的行數(shù)SELECT COUNT(DISTINCT city) FROM users;
HAVING對(duì)聚合結(jié)果二次過濾SELECT user_id, SUM(amount) AS total FROM orders GROUP BY user_id HAVING total>1000;

六、正則表達(dá)式

維度符號(hào)/語(yǔ)法作用說(shuō)明(一句話)示例片段
字符集[a-z]任意單個(gè)小寫字母[a-z]
[A-Z0-9]任意大寫字母或數(shù)字[A-Z0-9]
[^abc]除 a、b、c 外的任意單個(gè)字符[^abc]
[[:alnum:]]任意字母或數(shù)字(POSIX 類)[[:alnum:]]
元字符.匹配除換行外的任意單個(gè)字符a.c → abc, a3c
^匹配字符串開頭^abc
$匹配字符串結(jié)尾xyz$
\轉(zhuǎn)義保留字符,使其按字面匹配\. 匹配真實(shí)點(diǎn)
|邏輯“或”cat|dog
量詞*前一項(xiàng) 0 次或多次ab*c → ac, abc
+前一項(xiàng) 1 次或多次ab+c → abc, abbc
?前一項(xiàng) 0 次或 1 次ab?c → ac, abc
{n}前一項(xiàng)恰好 n 次a{3} → aaa
{n,m}前一項(xiàng) n 到 m 次a{2,4} → aa, aaa
{n,}前一項(xiàng)至少 n 次a{2,} → aa, aaaa

示例1:查找 11 位手機(jī)號(hào)

SELECT * FROM users
WHERE phone REGEXP ‘^1[3-9][0-9]{9}$';

示例二: 查找郵箱格式

SELECT * FROM users
WHERE email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$';

示例三:查找 18 位身份證號(hào)

SELECT * FROM users
WHERE id_card REGEXP '^[0-9]{17}[0-9Xx]$';

示例四:查找包含至少 1 個(gè)大寫字母的密碼字段

SELECT * FROM users
WHERE password REGEXP '[A-Z]';

完結(jié)。

總結(jié)

到此這篇關(guān)于MySQL表設(shè)計(jì)和聚合函數(shù)以及正則表達(dá)式示例詳解的文章就介紹到這了,更多相關(guān)MySQL表設(shè)計(jì)和聚合函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 如何使用事務(wù)

    MySQL 如何使用事務(wù)

    這篇文章主要介紹了MySQL 如何使用事務(wù),幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • mysql忘記root密碼的解決辦法(針對(duì)不同mysql版本)

    mysql忘記root密碼的解決辦法(針對(duì)不同mysql版本)

    這篇文章主要介紹了mysql忘記root密碼的解決辦法(針對(duì)不同mysql版本),文章通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水)

    SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水)

    這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • mysql 不等于 符號(hào)寫法

    mysql 不等于 符號(hào)寫法

    今天在寫sql語(yǔ)句的時(shí)候,想確認(rèn)下mysql的不等于運(yùn)算符是用什么符號(hào)表示的
    2013-08-08
  • MySQL+Redis緩存+Gearman共同構(gòu)建數(shù)據(jù)庫(kù)緩存的方法

    MySQL+Redis緩存+Gearman共同構(gòu)建數(shù)據(jù)庫(kù)緩存的方法

    這篇文章主要介紹了MySQL+Redis緩存+Gearman共同構(gòu)建數(shù)據(jù)庫(kù)緩存,部署后在MySQL端進(jìn)行創(chuàng)建一個(gè)用戶給與遠(yuǎn)程登錄權(quán)限,使得Redis作為緩存可以用來(lái)同步數(shù)據(jù)使用,需要的朋友可以參考下
    2022-10-10
  • mysql Key_buffer_size參數(shù)的優(yōu)化設(shè)置

    mysql Key_buffer_size參數(shù)的優(yōu)化設(shè)置

    mysql數(shù)據(jù)庫(kù)中有許多重要的參數(shù),其中mysql key_buffer_size是對(duì)MyISAM表性能影響最大的一個(gè)參數(shù),下面就讓我們一起來(lái)了解一下
    2014-12-12
  • 解決SQLyog連接MySQL出現(xiàn)錯(cuò)誤Plugin caching_sha2_password could not be loaded

    解決SQLyog連接MySQL出現(xiàn)錯(cuò)誤Plugin caching_sha2_password co

    當(dāng)使用SQLyog連接MySQL時(shí),如果遇到插件caching_sha2_password無(wú)法加載的錯(cuò)誤,可以通過更改密碼并將其標(biāo)識(shí)為mysql_native_password來(lái)解決,具體步驟包括:打開命令提示符窗口,登錄MySQL,修改密碼并更換插件,然后使用新密碼連接SQLyog
    2025-01-01
  • Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程

    Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • mysql 控制臺(tái)操作

    mysql 控制臺(tái)操作

    其實(shí)MYSQL的對(duì)數(shù)據(jù)庫(kù)的操作與其它的SQL類數(shù)據(jù)庫(kù)大同小異,您最好找本將SQL的書看看。
    2009-06-06
  • mysql字符串拼接的幾種實(shí)用方式小結(jié)

    mysql字符串拼接的幾種實(shí)用方式小結(jié)

    在SQL語(yǔ)句中經(jīng)常需要進(jìn)行字符串拼接,下面這篇文章主要給大家介紹了關(guān)于mysql字符串拼接的幾種實(shí)用方式,文中通過圖文以及代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11

最新評(píng)論

纳雍县| 双柏县| 灌南县| 长武县| 清新县| 衢州市| 黔东| 封开县| 克山县| 罗城| 桦川县| 边坝县| 宁晋县| 台江县| 治多县| 墨脱县| 寿光市| 吉木萨尔县| 杭州市| 会昌县| 长泰县| 阿拉善右旗| 遂川县| 宁波市| 武川县| 隆尧县| 九龙坡区| 枝江市| 保康县| 衡水市| 黄浦区| 康平县| 曲松县| 察隅县| 忻州市| 乌苏市| 桦南县| 中宁县| 潜江市| 哈巴河县| 杂多县|