1. 程式人生 > 其它 >Ch14學習筆記——MySQL資料庫系統

Ch14學習筆記——MySQL資料庫系統

Ch14學習筆記——MySQL資料庫系統

14.1 MySQL簡介

MySQL (MySQL2018 )是一個關係資料庫系統(Codd 1970 )。在關係資料庫中,資料儲存在表中。每個表由多個行和列組成。表中的資料相互關聯。表也可能與其他表有關聯。關係結構使得可在表上執行查詢來檢索資訊並修改資料庫中的資料。關係資料庫系統的標準查詢語言是SQL (結構化查詢語言),包括MySQL

14.2 安裝MySQL

Ubuntu20.04中使用sudo apt install mysql-server安裝MySQL。

使用mysql_secure_installation命令進行安全配置

一路yes保持預設,設定密碼

到此已完成MySQL資料庫的安裝和配置。

14.3 使用MySQL

使用命令sudo mysql -u root -p命令連線到資料庫。

14.3.1 簡單的命令

命令 作用
SHOW DATABASES; 顯示資料庫
CREATE DATABASE ; 建立資料庫
DROP DATABASE ; 刪除資料庫
use ; 選擇資料庫

14.3.2 複雜一點點的命令

1. MySQL中的資料型別

  1. 數值型別
    • INT:整數4位元組,TINYINT:1位元組, SMALLINT:2位元組
    • FLOAT:浮點數
  2. 字串型別
    • CHAR(size):固定長度字串,長度為1~255位元組
    • VARCHAR(size):可變長字串,但不能使用任何空格
    • TEXT:可變長度的字串
  3. 日期和時間型別
    • DATE:日期格式為YYYY-MM-DD格式
    • TIME:以HH:MM:SS格式儲存時間

2. 表操作

建立表和刪除表

使用CREATE TABLE <TABLENAME>命令建立表,使用DROP TABLE <TABLENAME>刪除表

  • 示例 建立一個帶有如下資料結構的表

    struct students{
    int student_id; # an integer ID number must exist
    char name[20]; # name string of 20 chars
    int score; # an integer exam score, which may not exist
    }
    

    使用如下命令

    CREATE TABLE students (
        student_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        name CHAR(20),
        score INT );
    
修改表
  • 插入行

    INSERT INTO table_name VLAUES (columnValue1, columnValue2, ... .);
    
  • 刪除行

    DELETE FROM table_name; # delete all rows of a table
    DELETE FROM table_name WHERE condition; # delete row by condition
    
  • 更新表

    UPDATE table_name SET col1 = value1, col2 = value2, ... WHERE condition;
    
  • 修改表

    ALTER TABLE table_name RENAME TO new_name; # 修改表名
    ALTER TABLE table_name ADD column_name datatype; # 新增列
    ALTER TABLE table_name DROP column_name datatype; # 刪除列
    ALTER TABLE table_name ALTER COLUMN column_name datatype; # 修改行
    

14.3.13 關聯表

1. 一對一關係

一對一(1-1 )關係是指兩個表僅基於一個匹配行相互關聯的關係。可以使用主鍵-外來鍵約束條件建立這類關係。

2. 一對多關係

在資料塊中,一對多或1-M關係比1-1關係更常見,也更有用。一對多關係是指一 個表中的一行在另一個表中有多個匹配行的關係。可以使用主鍵-外來鍵關係來建立這種關係。

3. 多對多關係

如果一個表中的多條記錄與另一個表中的多條記錄相關,則兩個表具有多對多(M-M) 關係。

4. 連線操作

MySQL中,可使用連線操作在多個表中檢索資料。連線操作有4種不同的型別。

  • (INNER) JOIN table 1, table2:檢索兩個表中共有的項。

  • LEFT JOIN table 1, table2:檢索表1中的項以及兩個表中共有的項。

  • RIGHT JOIN tablel,table2:檢索表2中的項以及兩個表中共有的項。

  • OUTER JOIN tabell,table2:檢索兩個表中非共有以及沒有用的項。

14.3.16 MySQL 指令碼

與普通Unix/Linux sh 一樣,MySQL shell也可以接受和執行指令碼檔案。MySQL指令碼文 件的字尾是.sql。它們包含MySQL伺服器要執行的MySQL命令。我們可以使用MySQL 指令碼來建立資料庫,在資料庫中建立表,插入表條目和修改表內容,而不是手動輸入命令列。