1. 程式人生 > 其它 >20191310李燁龍第十四章讀書筆記

20191310李燁龍第十四章讀書筆記

第14章:MySQL資料庫系統

知識點歸納總結

本章討論了MySQL關係資料庫系統;介紹了MySQL並指出了它的重要性;

MySQL簡介

  • MySQL是一個關係資料庫系統在關係資料庫中,資料儲存在表中。每個表由多個行和列組成。表中的資料相互關聯。表也可能與其他表有關聯。關係結構使得可在表上執行查詢來檢索資訊並修改資料庫中的資料。
  • MySQL是一個開源資料庫管理系統,由伺服器和客戶機組成。在將客戶機連線到伺服器後,使用者可向伺服器輸入SQL命令,以便建立資料庫,刪除資料庫,儲存、組織和檢索資料庫中的資料。- -- MySQL有廣泛的應用。除了提供標準的資料庫系統服務外,MySQL 和PHP已成為大多數資料管理和線上商務網站的主幹網。

安裝與使用MySQL

  • Ubuntu Linux 可通過以下命令安裝
 sudo apt-get install mysql-server
 mysql_secure_installation
  • Slackware Linux在Slackware 14.0或更早版本中,可通過以下步驟配置MySQL:
    1.設定my.cnf : MySQL在啟動時載入一個名為my.cnf的配置檔案。該檔案要在首次設定MySQL時建立。在/etc目錄中,有幾個示例my.cnf檔案,檔名分別是my-small. cnf. my-large.cnf等。選擇所需的版本來建立my.cnf檔案,如
    cp /etc/my-small.cnf /etc/my.cnf

    2.安裝所需資料庫:MySQL需要一個所需資料庫集,用於使用者識別等。要安裝它們, 可使用mysql使用者作為超級使用者,並使用以下命令安裝所需的初始資料庫。
    mysql_install_db
    3.設定所需的系統許可權:該步驟確保mysql使用者擁有mysql系統的所有權。
    chown -R inysql.mysql /var/lib/mysql
    4.通過以下操作使Zetc/rc.d/rc.mysqld可執行:
    chmod 7S5 /etc/rc.d/rc.mysqld
    • 這將在後續系統引導上自動啟動MySQL守護程序mysqld。
  • 資料庫操作
    • 連線MYSQL伺服器:
mysql -u root -p
Enter password:
mysql>
  • 顯示資料庫:SHOW DATABASES命令可顯示MySQL中的當前資料庫
  • 新建資料庫:CREATE DATABASE dbname 建立一個名為dbname的資料庫,如果資料庫已經存在,則可以使用IF NOT EXISTS子句對命令限定。
  • 刪除資料庫:DROP DATABASE dbname 刪除已存在的命名資料庫,該命令可以用一個可選的IF EXISTS 子句限定。
  • 選擇資料庫:USE dbname命令選擇一個數據庫
  • 建立表:CREATE TABLE table_name 命令回在當前資料庫中建立一個表;DESCRIBE 命令顯示錶格式和列屬性。
  • 刪除表:DROP TABLE table_name 命令刪除表
  • Mysql中的資料型別
    • 數值型別:
      • INT:整數(4位元組),TINYINT:(1位元組)S,MALLINT:(2位元組)等。
      • FLOAT:浮動指標數。
    • 字串型別:
      • CHAR(size):固定長度字串,長度為1~255字元。
      • VARCHAR(size):可變長度字串,但不能使用任何空格。
      • TEXT:可變長度的字串。
    • 日期和時間型別:
      • DATE:日期格式為YYYYMM-DD。
      • TIME:以HHMMSS格式儲存時間.
  • Mysql中的資料操作
    • 插入行:
      • 要在表中新增行,可使用INSERT命名,具有語法形式:
        INSERT INTO table_name VLAUES(columnValuel,columnValue2,....);
    • 刪除行:
      • 使用DELETE命令從表中刪除行
DELETE FROM table_name;
DELETE FROM table_name WHERE condition;
  • 更新表:
    • UPDATE命令用於修改表中的現有記錄(列)
      UPDATE table_name SET coll = value1, col2 = value2,…… WHERE condition;
  • 修改表:
    • ALTER TABLE命令用於新增、刪除或修改當前表中的列。它還用於新增和刪除當前表中的各種約束條件。
    • 修改表名
      • 如需修改表名,可使用以下命令:
        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 COLUNN column_name datatype;
      • 關聯表
        • 一個真正的資料庫可以能包含多個相互關聯的表,使用主鍵-外來鍵約束條件來定義表關係。
          • 一對一
          • 一對多
          • 多對多
          • 自引用
      • 連線操作
        • 在MySQL中,可使用連線操作在多個表中檢索資料。連線操作有4種不同的型別。
          • (INNER)JOIN tablel,table2:檢索兩個表中共有的項。
          • LEFT JOIN tablel,table2:檢索表1中的項以及兩個表中共有的項。
          • RIGHT JOIN tablel,table2:檢索表2中的項以及兩個表中共有的項。
          • OUTER JOIN tabell, table2:檢索兩個表中非共有以及沒有用的項。
        • 對於正則集運算,MySQL中的連線操作可以解釋如下。+表示兩個集合的並集,^表示兩個集合的交集。則有
          • (INNER) JOIN t1, t2 = t1 ^ t2
          • LEFT JOIN t1, t2 m t1 + (t1 ^ t2)
          • RIGHT JOIN t1, t2 = t2 +(t1 ^ t2)
          • OUTER JOIN t1, t2 = t1 + t2;