Part01_MySQL數據庫的基本操作

Part01_MySQL數據庫的基本操作

------------------------------------------------------------------------------------
內容大綱:
1. 對數據庫的操作(創建數據庫、刪除數據庫、數據庫的存儲引擎)
2. 對的操作(創建、修改、刪除和查看錶)
3. 索引(創建、刪除、查看索引)
4. 視圖(創建、刪除、查看、修改視圖)
5. 觸發器(創建、刪除、查看、使用觸發器)


------------------------------------------------------------------------------------

 

正文:

------------------------------- [ 我是每章的分界線 ] -------------------------------
00. 登錄進去數據庫


01. WIN + CMD -> mysql –u –root -p


------------------------------- [ 我是每章的分界線 ] -------------------------------
00. 第01章:數據庫概述

 

01. 數據庫_是指長期存儲在計算機內、有組織、可共享的數據集合。

 

02. 數據庫泛型_是指數據庫應遵循的規則。(最低要求的範式是第一範式(1NF),然後2NF...)

 

03. 數據庫系統(DataBase System,DBS)_ 由數據庫、數據庫管理系統、應用開發工具等構成。

 

04. 數據庫管理系統(DataBase Management System, DBS)_定義數據、管理和維護數據的軟件。

 

05. SQL語言(Structured Query Language 結構化查詢語言)_ 用於存儲數據、管理數據、更新數據和管理關係數據庫系統。

    00.SQL分爲三個部分數據定義語言(Data Definition Language, DDL)
    01.數據庫定義語言(Data Definition Language, DDL)_定義數據庫、表、視圖、索引和觸發器等。
    02.數據庫操作語言(Data Manipulation Language, DML)_ 插入數據、查詢數據、更新數據和刪除數據。
    03.數據庫控制語言(Data Control Language, DCL) _ 控制用戶的訪問權限。


------------------------------- [ 我是每章的分界線 ] -------------------------------
00. 第05章:創建數據庫

 

01. 創建數據庫:           CREATE DATABASE 數據庫名;

 

02. 展示數據庫列表:       SHOW DATABASES;

 

03. 刪除數據庫:           DROP DATABASE 數據庫名;

 

04. 顯示數據庫存儲引擎:   SHOW ENGINES;

 

05. 顯示數據庫支持的引擎: SHOW VARIABLES LIKE ‘have%’;

 

06. 查詢默認存儲引擎:     SHOW VARIABLES LIKE ‘storage_engine’;

 

07. 使用數據庫:           USE 數據庫名;


------------------------------- [ 我是每章的分界線 ] -------------------------------
00. 第06章:創建、修改和刪除表

 

--------------> 我是小節的小小分界線 <--------------(創建表)
01. 創建表:
    CREATE TABLE 表名(屬性名 數據類型 [完整性約束條件], 屬性名 數據類型 [完整性約束條件], ...);

 

02. 設置表的主鍵:
    概念_主鍵是表的能唯一標識表中的每條信息的一個特殊字段。
    作用_幫助MySQL以最快速度查找到表中的某一條信息。
    單字段主鍵: 屬性名 PRIMARY KEY;
    多字段主鍵: PRIMARY KEY(屬性名1, 屬性名2, ... 屬性名n);

 

03. 設置表的外鍵:
    概念_通過外鍵爲該子表(外鍵)建立與父表(主鍵)的聯繫。
    原則_必須依賴於與其父表的關聯關係。
    語法_CONSTRAINT 外鍵別名 FOREIGN KEY (屬性名, 屬性名...)
                    REFERENCES 表名(父表主鍵對應的屬性名,父表主鍵對應的屬性名)

 

04. 設置表的非空約束
    概念_非空性是指字段的值不能爲空值(NULL)。
    作用_保證所有記錄中該字段都有值。
    語法_屬性名 數據類型 NOT NULL

 

05. 設置表的唯一性約束
    概念_唯一性是指所有記錄中該字段的值不能重複出現。
    作用_保證所有記錄中該字段的值不能重複出現。
    語法_屬性名 數據類型 UNIQUE

 

06. 設置表的屬性的值自動增加
    作用_爲表中插入的新記錄自動生成唯一的ID。
    使用注意_一個表中只能有一個作爲主鍵一部分的字段使用AUTO_INCREMENT約束。
             默認情況下,該字段的值是從1開始自增的。
    語法_屬性名 數據類型 AUTO_INCREMENT

 

07. 設置表的默認值。
    語法1_屬性名 數據類型 DEFAULT 默認值
    語法2_屬性名 數據類型 某約束條件 DEFAULT 默認值

 

08. 查看錶的結構
    查看錶基本結構語句:DESCRIBE 表名;
                        DESC 表名;
    查看錶詳細結構語句:SHOW CREATE TABLE 表名;
                        SHOW CREATE TABLE 表名 \G;
                        SHOW CREATE TABLE 表名 \g;

 

--------------> 我是小節的小小分界線 <--------------(修改表)
09. 修改表名
    ALTER TABLE 舊錶名 RENAME [TO] 新表名;(在使用時[TO]不用寫上)

 

10. 修改字段的數據類型
   ALTER TABLE 表名 MODIFY 屬性名 數據類型;

 

11. 修改字段名
    ALTER TABLE 表名 CHANGE 舊屬性名 新屬性名 新數據類型;

 

12. 修改字段的排列位置
    00. 通用語句  
        ALTER TABLE 表名 MODIFY 屬性名1 數據類型 FIRST | AFTER 屬性名2;
    01. 字段修改到第一個位置
        ALTER TABLE 表名 MODIFY 屬性名1 數據類型 FIRST;
    02. 字段修改到指定位置(屬性名2的後面)
        ALTER TABLE 表名 MODIFY 屬性名1 數據類型 AFTER 屬性名2;

 

13. 增加字段
    00. 通用語句
        ALTER TABLE 表名 ADD 屬性名1 數據類型 [完整性約束條件] [FIRST | AFTER 屬性名2];
    01. 在表的最後位置增加字段
        ALTER TABLE 表名 ADD 屬性名1 數據類型 [完整性約束條件];
    02. 在表的第一位置增加字段
        ALTER TABLE 表名 ADD 屬性名1 數據類型 [完整性約束條件] FIRST;
    03. 在表的某一位置增加字段:(排列在屬性名2後面加上字段)
        ALTER TABLE 表名 ADD 屬性名1 數據類型 [完整性約束條件] AFTER 屬性名2;

 

14. 刪除字段
    ALTER TABLE 表名 DROP 屬性名;

 

15. 更改表的存儲引擎
    ALTER TABLE 表名 ENGINE=存儲引擎名;

 

16. 刪除表的外鍵約束
    ALTER TABLE 表名 DROP FOREIGN KEY 外鍵別名;


--------------> 我是小節的小小分界線 <--------------(刪除表)
17. 刪除沒有被關聯的普通表
    DROP TABLE 表名;

 

18. 刪除被其他表關聯的父表
    00. 有兩步驟:
    01. 刪除該表的外鍵約束:     ALTER TABLE 表名 DROP FOREIGN KEY 外鍵別名;
    02. 以刪除普通表的方法刪除: DROP TABLE 表名;

 


------------------------------- [ 我是每章的分界線 ] -------------------------------
00. 第07章:索引

 

01. 索引的含義及特點
    概念_索引是創建在表上的,是對數據庫表中一列或多列的值進行排序的一種結構。
  作用_提高對錶中數據的查詢速度。(通過索引,查詢數據時可不必讀完記錄的所有信息,而只是查詢索引列。)
  約束_不同的存儲引擎定義了每個表中的最大索引數和最大索引長度。所有存儲引擎對每個表至少支持16個索引,總索引長度至少爲256字節。
  優點_提高檢索數據的速度。
  缺點_創建和維護索引需要耗費時間,增加、刪除和修改數據時,要動態維護索引。

 

02. 索引的分類
        1.普通索引_創建普通索引時,不附加任何限制條件。這類索引可以創建在任何數據類型中,其值是否唯一和非空由字段本身的完整性約束條件決定。
  2.唯一性索引_UNIQUE_限制該索引的值必須是唯一的,主鍵就是一種特殊唯一性索引。
  3.全文索引_FULLTEXT_查詢數據量較大的字符串類型的字段時,使用全文索引可以提高查詢速度。全文索引只能創建在CHAR、VARCHAR或TEXT的字段上。
  4.單列索引_在表中的單個字段上創建索引。單列索引可以是普通索引,也可以是唯一必性索引,還可以是全文索引。
  5.多列索引_在表的多個字段上創建一個索引,該索引指向創建時對應的多個字段,可以通過這幾個字段進行查詢。(只有查詢條件使用了這些字段中第一個字段時,索引纔會被使用。
  6.空間索引_SPATIAL_空間索引只能建立在空間數據類型上,這樣可以提高系統獲取空間數據的效率。

 

03.創建表的時候創建索引
   CREATE TABLE 表名(屬性名 數據類型 [完整性約束條件],
           屬性名 數據類型 [完整性約束條件],
           ...
                                            屬性名 數據類型 [完整性約束條件],
           [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [別名] (屬性名1 [(長度)] [ASC|DESC])
                                           );

 

04.創建普通索引_INDEX(屬性名);

 

05.創建唯一性索引_UNIQUE INDEX  別名(屬性名 ASC|DESC);

 

06.創建全文索引_FULLTEXT INDEX 別名(屬性名); (目前只有MyISAM存儲引擎支持全文索引)

 

07.創建單列索引_INDEX(屬性名);

 

08.創建單列索引_INDEX(屬性名1, 屬性名2...);

 

09.創建空間索引_SPATIAL INDEX 別名(屬性名)

 

10.在已存在的表上創建索引
  方法1: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名 (屬性名[(長度)] [ASC|DESC]);
  方法2: ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名(屬性名[(長度)] [ASC|DESC]);

 

11.刪除索引
  DROP INDEX 索引名 ON 表名;

 


------------------------------- [ 我是每章的分界線 ] -------------------------------
00. 第08章:視圖

 

01. 視圖相關概念
    定義_視圖是一種虛擬的表,是從數據庫中一個或多個表中導出來的表。
  特點_數據庫中只存放了視圖的定義,而並沒有存放視圖中的數據。視圖中的數據是依賴於原來的表中的數據的。
    作用_使操作簡單化、增加數據的安全性、提高表的邏輯獨立性。

 

02. 創建視圖的語法形式
    CREATE [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}]
            VIEW 視圖名 [(屬性清單)]
            AS SELECT 語句
            [WITH [CASCADED|LOCAL] CHECK OPTION];

 

03.查看用戶是否有權限使有視圖
    SELECT Select_priv, Create_view_priv FROM mysql.user WHERE user = '用戶名';

 

04.在單表上創建視圖
    CREATE
    VIEW 視圖名(字段...)
    AS SELECT (表字段...) * FROM 表名;

 

05.在多表上創建視圖
    CREATE ALGORITHM = MERGE
    VIEW 視圖名(視圖字段...)
    AS SELECT(表字段...)
    FROM 表名,表名 WHERE
    WITH LOCAL CHECK OPTION;

 

06.查看視圖的基本信息
  DESCRIBE 視圖名;
        DESC 視圖名;
  SHOW TABLE STATUS LIKE '視圖名';[\G \g]
        SHOW CREATE VIEW 視圖名;[\G \g]

 

07.在表中查看視圖的詳細信息
    SELECT * FROM 數據庫名.表名;[\G \g]

 

08.修改或創建視圖語句
  CREATE OR REPLACE [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}]
                   VIEW 視圖名 [(屬性清單)]
                   AS SELECT 語句
                   [WITH [CASCADED|LOCAL] CHECK OPTION];

 

09.修改視圖語句
           ALTER [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}]
          VIEW 視圖名[(屬性清單)]
          AS SELECT 語句
   [WITH [CASCADED|LOCAL] CHECK OPTION];

 

10.更新視圖(通過視圖來插入,更新和刪除表中的數據)
  UPDATE 視圖名 SET 屬性名 = 值, 屬性名 = 值...;

 

11.刪除視圖
    DROP VIEW [IF EXISTS] 視圖名列表 [RESTRICT|CASCADE];

 


------------------------------- [ 我是每章的分界線 ] -------------------------------
00. 第09章:觸發器

 

01.觸發器的基本概念
  定義_觸發器(TRIGGER)是由事件來觸發某個操作。滿足觸發器的觸發條件時,數據庫系統就會執行觸發器中定義的程序語句。

 

02.創建只有一個執行語句的觸發器
  CREATE TRIGGER 觸發器名 BEFORE|AFTER 觸發事件
          ON 表名 FOR EACH ROW 執行語句

 

03.創建有多個執行語句的觸發器
  CREATE TRIGGER 觸發器名 BEFORE|AFTER 觸發事件
           ON 表名 FOR EACH ROW
           BEGIN
                執行語句列表
           END

 

04.查看觸發器信息_SHOW TRIGGERS;

 

05.在triggers表中查看觸發器信息_ SELECT * FROM information_schema.triggers;

 

06.查詢指定觸發器的詳細信息_ SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME = '觸發器名';

 

07.刪除觸發器 DROP TRIGGER 觸發器名;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章