資料庫的基礎介紹(2)

2022-09-06 18:42:08 字數 4568 閱讀 8156

1).排序查詢

*語法: order by子句

格式:order by 排序欄位1 排序方式1,排序欄位2 排序方式2...

*排序方式:

*asc:公升序,預設的。

*desc:降序。

*注意:

*如果有多個排序條件,則當前邊的條件值一樣時,才會判斷第二條件。

2).聚合函式:將一列資料作為乙個整體,進行縱向的計算。

* count:計算個數

—般選擇非空的列∶主鍵

*count(*)

*max:計算最大值

*min :計算最小值

*sum:計算和

***g:計算平均值

*注意:聚合函式的計算,排除null值。

解決方案:

1.選擇不包含非空的列進行計算

2.ifnull函式

格式:(if null 欄位名,0)

3)分組查詢:

*語法:group by分組字段;

*注意:

分組之後查詢的字段∶分組字段、聚合函式

*where和h**ing的區別?

where後不可以跟聚合函式,h**ing可以進行聚合函式的判斷。

where在分組之前進行限定,如果不滿足條件,則不參與分組。h**ing在分組之後進行限定,如果不滿足結果,則不會被查詢出來

4).分頁查詢

*語法:limit開始的至引,每頁查詢的條數;

*公式:開始的索引=(當前的頁碼-1)*每頁顯示的條數

例如:-- 每頁顯示3條記錄

select * from student limit 0,3; -- 第1頁

select * from student limit 3,3;-- 第2頁

select * from student limit 6,3; -- 第3頁

*limit是乙個mysql"方言」

*概念:對錶中的資料進行限定,保證資料的正確性、有效性和完整性。

*分類:

1).主鍵約束:primary key

2).非空約束:not null

3).唯一約束:unique

4).  外來鍵約束:foreign key

*非空約束:not null

1).建立表時新增約束。

例如:create table stu(

id int,

name varchar(20) not null -- name為非空

);2).建立表完後,新增非空約束

alter table 表名 modify 字段 字段字元型別 not null;

3).刪除的非空約束

alter table 表名 modify 字段 字段字元型別;

*唯—約束: unique,某一列的值不能重複

1).注意:

唯一約束可以有null值,但是只能有一條記錄為null

2).在建立表時,條件唯一約束

create table stu(

id int,

phone_nuymber varchar( 20) unique -- 手機號

);3).刪除唯一約束

altertable stu drop index phone_number;

4).在表建立完後,新增唯一約束

alter table stu modify phone_numbervarchar(20) unique;

主鍵約束: primary key。

*注意∶

1).含義∶非空且唯一

2).—張表只能有乙個字段為主鍵

3).主鍵就是表中記錄的唯一標識

*在建立表時,新增主鍵約束

create table stu(

id int primary key,-- 給id新增主鍵約束

name varchar( 20)

);*刪除主鍵

-- 錯誤寫法: alter table stu modify id int ;

-- 正確寫法:alter table stu drop primary key;

*建立完錶後,新增主鍵

alter table stu modify id int primary key;

*自動增長∶

1).概念∶如果某一列是數值型別的,使用auto_increment可以來完成值得自動增長

2).在建立表時,新增主鍵約束,並且完成主鍵自增長

create table stu(

id int primary key auto_increment,--給id新增主鍵約束

name varchar( 20)

);3).刪除自動增長

altertable stu modify id int;工

4).新增自動增長

alter table stu modify id int auto_increment;

*外來鍵約束:foreign key,讓表與表產生關係,從而保證資料的正確性。

1).在建立表時,可以新增外來鍵

*語法:

create table表名(

....

外來鍵列constraint外來鍵名稱foreign key(外來鍵列名稱) references主表名稱(主表列名稱)

);2).刪除外來鍵

alter table 表名dropforeign key外來鍵名稱;

3).建立表之後,新增外來鍵

alter table 表名 add constraint 外來鍵名稱 foreign key(外來鍵欄位名稱)references主表名稱(主表列路稱);

4),級聯操作

*新增級聯操作

語法∶alter table 表名add constraint外來鍵名稱

foreign key (外來鍵欄位名稱)references 主表名稱(主表列名稱) on update cascade on delete cascade ;

*分類∶

級聯更新∶on update cascade

級聯刪除∶on delete cascade

*多表之間的關係

1).—對一(了解)∶

*如∶人和身份證

*分析:乙個人只有乙個身份證,乙個身份證只能對應乙個人

2).一對多(多對一)∶

*如∶部門和員工

*分析:乙個部門有多個員工,乙個員工只能對應乙個部門

3).多對多:

*如∶學生和課程

*分析:乙個學生可以選擇很多門課程,乙個課程也可以被很多學生選擇

*實現關係∶

1).—對多(多對一):

*如∶部門和員工

*實現方式:在多的一方建立外來鍵,指向一的一方的主鍵。

2).多對多∶

*-如∶學生和課程

*實現方式:多對多關係實現需要借助第三張中間表。中間表至少包含兩個字段,這兩個字段作為第三張表的外來鍵,分別指向兩張表的主鍵,這兩個外來鍵可以組成第三張表的聯合主鍵。

3).一對一(了解)∶

*如∶人和身份證

*實現方式:一對一關係實現,可以在任意一方新增唯一外來鍵指向另一方的主鍵。

概念∶設計資料庫時,需要遵循的一些規範。要遵循後邊的正規化要求,必須先遵循前邊的所有正規化要求

設計關聯式資料庫時,道從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。

目前關聯式資料庫有六種正規化:第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf)、巴斯-科德正規化(bcnf)、第四正規化(4nf)和第五正規化(5nf,又稱完美正規化)。

*分類∶

1).第一正規化(1nf):每一列都是不可分割的原子資料項

2),第二範擊。(2nf):在1nf的基礎上,非碼屬性必須完全依賴於候選碼(在1nf基礎上消除非主屬性對主碼的部分函式依賴)

3).第三正規化(3nf):在2nf基礎上,任何非主屬性不依賴於其它非主屬性(在2nf基礎上消除傳遞依賴)

*幾個概念∶

*主性:碼屬性組中的所有屬性

*非主屬性:除碼屬性組的屬性

1),函式依賴∶a-->b,如果通過ala性(u性組)的值,可以確定唯一b屬性的值。則稱b依賴於a,例如:學號-->姓名。(學號,課程名稱)-->分數

2).完全函式依賴∶a-->b,如果a足乙個ks性組,則bh性值行確定鼎要依賴於a小性組中所有的kt性值。例如:(學號,課程名稱)-->分數

3),部分函式依賴∶a-->b,如果a足乙個hs性組,則bs性值行確定只化要依賴於a小性組中某一些值即可。例如:(學號,課程名稱)-- >姓名

4),傳遞面數依賴∶a-->8,b--x,如果通過ad的性(a性組)的值,可以確定唯一bs性的值,在通過bl性(a性組)的值可以確定唯一c屬性的值,則稱c傳遞函式依賴於a。例如∶學號-->系名,系名-->系主任

5),碼∶如果在一張表中,乙個k性或ht性組,被其他所有k性所完全依賴,則稱這個;性(&t性組)為該錶的碼。例如:該表中碼為∶(學號,課程名稱)。

在命令列:

*語法∶

*備份:mysqldump -u使用者名稱 -p密碼 資料庫名稱 > 儲存的路徑

*還原∶

1),登入資料庫

2).建立資料庫

3),使用資料庫

4).執行檔案。source 檔案路徑

資料庫基礎2

資料型別 保證資料的準確性和標準性。類 型別 說明 整數 tinyint 0 255 整數 smallint 215 215 1 整數 mediumint 中型整數 整數 int 常規 231 231 1 整數 bigint 263 263 1 浮點數 float 單精度浮點數 4位元組 浮點數 d...

資料庫基礎2 正規化

第一正規化 1nf 無重複的列 所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義乙個新的實體,新的實體由重複的屬性構成,新實體與原實體之間為一對多關係。在第一正規化 1n...

資料庫的介紹

why 記憶體級別的資料 不是持久化的資料 mysql 會把這些資料一直儲存 資料庫是一類專門管理資料的軟體的抽象概念,mysql屬於其中的乙個具體的品牌 有利於增刪查改 為什麼用mysql 開源,成本低,好用 用的人多,有利於交流 how 1.怎麼使用 重點 2.他是怎麼做到的 資料庫分類 關係型...