1. 程式人生 > 其它 >安卓清理快取怎麼做(未完)

安卓清理快取怎麼做(未完)

一、DQL:查詢語句

1.排序查詢:根據給出的列名進行排序
  • 語法:order by 子句

    order by 排序列名1 排序方式1,排序列名2,排序方式2;

    排序方式:ASC --升序

    DESC --降序

  • 注意:有多個排序條件時,當前面的條件值一樣。則會判斷第二條件

2.聚合函式:將一列資料作為一個整體進行縱向的計算
  • count:計算個數,一般用於統計記錄

    select count(列名) from student;

    一般選擇非空的列,如主鍵

  • max:計算最大值

    select max(列名) from student;

  • min:計算最小值

    select min(列名) from student;

  • sum:計算和

    select sum(列名) from student;

  • ave:計算平均值

    select ave(列名) from student;

  • 注意:聚合函式自動排除null值

    • 解決方案:

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

      2. ifnull(為null的列名,替換的值);

3.分組查詢:根據給出的列名進行分組查詢
  • 語法:group by 分組列名;

    根據性別查詢男生,女生各有多少人

    select sex,count(id) from student group by sex;

  • 注意: 分組之後查詢的欄位最好是分組欄位聚合函式,不建議查詢其他沒有參與到分組的欄位。

  • where 和 having的區別

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

    2. where後不可以跟聚合函式,having可以進行聚合函式的判斷。

4.分頁查詢
  • 語法:limit 開始的索引,每頁查詢的條數

    每頁顯示3條學生資料

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

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

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

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

  • limit 是一個MySQL方言


二、約束

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

2.分類:
  • 主鍵約束:primary key

    • 新增約束:

      建立表前:在型別後新增primary key;

      建立表後:alter table 表名 modify 列名 型別 primary key;

    • 刪除約束:alter table 表名 drop primary key; -- 注意在刪除約束前要先刪除相同的列。

    • 注意:

      1. 含義:非空且唯一

      2. 一張表只能有 一個欄位為主鍵

      3. 是表中記錄的唯一標識

    • 自動增長

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

      2. 新增自增:

        建立表前:在需要新增自動增長的列的型別後新增 auto_increment關鍵字;

        建立表後:alter table 表名 modify 列名 型別 auto_increment;

      3. 刪除自增:alter table 表名 modify 列名 型別;

  • 非空約束:not null --某一列的值不能為空

    • 新增約束:

      建立表前:在型別後新增not null

      建立表後:alter table student modify 列名 型別 not null;

    • 刪除約束:altet table 表名 modify 列名 型別;

  • 唯一約束:unique --某一列的值不能重複

    • 刪除唯一約束:alter tabale studen drop index 被約束的列名;

    • 新增約束:

      建立表前:在型別後新增unique

      建立表後:alter table 表名 modify 列名 型別 unique;

    • 注意在建立表之後新增唯一約束要先刪除表中重複的列,否則不能新增成功。

  • 外來鍵約束:foreign key

    • 含義:讓表與表之間產生關係,從而保證資料的正確性。

    • 新增約束:

      建立表之前:

      create table 表名(

      .....

      外來鍵列名 型別,

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

      );

      建立表後:alter table 表名 add constraint 外來鍵名稱 foreign key (外來鍵列名) references 主鍵表名(主鍵列名);

    • 刪除約束

      alter table 表名 drop foreign key 外來鍵名稱;

    • 注意:

      1. 建立外來鍵表之前,先建立主鍵表。

      2. 如果主鍵中引用了外來鍵列,那麼在刪除主鍵列時要先刪除外來鍵列。

    • 級聯操作

      1. 新增級聯操作

        alter table 表名 add constraint 外來鍵名稱 foreign key (外來鍵列名) references 主鍵表名(主鍵列名) on update cascade;

      2. 分類:

        • 級聯更新:on update cascade --外來鍵表中列的資料更新,主鍵表中引用的列資料也會更新

        • 級聯刪除:on delete cascade --外來鍵表中刪除列的資料,主鍵表中引用列的所有資料都會被刪除,謹慎使用、。


三、多表之間的關係

1.一對一(瞭解)

  • 如:人和身份證

  • 分析:一個人只能有一張身份證,一張身份證只能對應一個人。

2.一對多

  • 如:教師和學生

  • 一個老師可以教多個學生,多個學生可以上一個老師的課。

3.多對多

  • 如:學生和課程

  • 分析:一個學生可以選修多門課程,一門課程可以被多個學生選擇。

4.實現關係

  • 一對多:在多的一方建立外來鍵,並指向一的一方的主鍵。

  • 多對多:建立第三張表作為中間表,中間表至少包含兩個欄位,這兩個欄位作為第三張表的外來鍵,分別指向兩張表的主鍵。

  • 一對一:在任意一方新增唯一約束的外來鍵指向另一方的主鍵。


四、正規化

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

2.分類

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

  • 第二正規化(2NF):在第一正規化的基礎上,非碼屬性必須完全依賴於碼(在1NF基礎上消除主屬性對碼的部分函式依賴)。

  • 第三正規化(3NF):在2NF基礎上,任何非屬性不依賴與其他非主屬性(在2NF基礎上消除傳遞依賴)。

3.相關概念:

  • 函式依賴:A-->B,如果通過A屬性(屬性組)的值,可以確定唯一B屬性的值,則稱B依賴於A。

    如:學號--->學生姓名 (學號+ 課程名)--->分數

  • 完全函式依賴:A--->B,如果A是一個屬性組,則B屬性值的確定需要依賴於A屬性組中所有的屬性值。

    如:(學號+課程名)--->學生成績

  • 部分函式依賴:A--->B,如果A是一個屬性組,則B屬性值的確定只需要依賴於A屬性組中某一些值即可。

    如:(學號+課程名)---> 學生姓名

  • 傳遞函式依賴:A---B,B--->C,如果通過A屬性(屬性組)的值,可以確定唯一B屬性的值,在通過B屬性(屬性組)的值可以確定唯一C屬性的值,則稱C傳遞函式依賴與A。

    如:學號---->系名,系名--->系主任

  • 碼:如果在一張表中,一個屬性或屬性組被其他所有屬性所完全依賴,則稱這個屬性(屬性組)為該表的碼

    如:學生表中(學號)

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

  • 非主屬性:除碼屬性組的所有屬性


五、資料庫的備份與還原

1.命令列:

語法:備份:mysql -uroot -proot 資料庫名 > 儲存路徑

還原:1.登入資料庫

2.建立資料庫(與還原的資料庫名相同)

3.使用資料庫

4.執行命令:source 檔案路徑;