SQL資料庫

weixin_46546499發表於2020-11-07

資料庫概述

學習目的

  • 瞭解資料庫的相關概念、分類、關係型資料庫的特點
  • 瞭解MySQL資料庫的安裝、配置、相關管理工具的使用
  • 掌握MySQL資料庫的基礎操作命令(建庫、建表、插入查詢資料)等熟悉MySQL資料庫information_schema系統表
  • 瞭解資料庫安全風險,為後續web安全打好基礎

資料庫概述

  • 資料庫(Database ):按照資料結構來組織、儲存和管理資料的倉庫。
  • 資料庫管理系統(Database Management System,DBMS)∶對資料進行管理的軟體系統。
  • 為什麼要使用資料庫﹖我們也可以將資料儲存在檔案中,但是讀寫資料速度相對較慢。所以,使用資料庫管理系統來儲存和管理大資料量,從而方便資料的儲存、訪問、安全控制等。
  • 常見資料庫型別∶關係型資料庫和非關係型資料庫。
  • 常見關係型資料庫:MySQL,SQLserver , oracle , access·常見非關係型資料庫:MongoDB、Redis、HBase
  • 關係型資料庫是建立在關係模型基礎上的資料庫,把複雜的資料結構歸結為簡單的二元關係
    (即二維表格形式),通過SQL結構化查詢語言訪問和處理資料。
  • 關聯式資料庫管理系統(Relational Database Management System,RDBMS)用於對關係型資料庫進行管理,其特點如下∶1.資料以表格的形式出現;2.每行為一條資料記錄;3.每列資料型別相同﹔4.許多的行和列組成一張資料表;5.若干資料表組成資料庫。

##Mysql概述##

  • MySQL是最流行的開源關係型資料庫管理系統,在WEB應用方面MySQL是最好的
  • RDBMS(關聯式資料庫管理系統)應用軟體之一。MySQL由瑞典MySQL AB公司開發,目前屬於Oracle旗下產品。
  • SQL語言用於訪問資料庫的最常用的標準化語言。
  • SQL語言詳細教程請參考: https://www.runoob.com/sql/sql-tutorial.htmlMySQL默
  • 認埠號:3306l
  • MySQL的安裝︰

1.官網下載: https:lldev.mysql.com/downloads/mysql

2.安裝phpstudy,自帶MySQL(建議)。
MySQL環境變數配置:https://www.php.cn/mysql-tutorials-419508.html

  • 配置環境變數的好處是任意位置開啟cmd均可執行mysql命令,無需切換至bin目錄下。
  • mysql管理工具: sqlyog、 Navicat等

Mysql基本術語

  • 資料庫︰由多個資料表組成的集合。
  • 資料表︰由表名、表中的欄位和表的記錄三個部分組成的。設計資料表結構就是定義資料表檔名,確定資料表包含哪些欄位,各欄位的欄位名、欄位型別、及寬度,並將這些資料輸入到計算機當中。
  • 主鍵:用於唯一標識表中的某一條記錄,主鍵不能為空。
  • 索引∶使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。

Mysql常用命令

  • 啟動mysql服務,開啟 Windows 命令視窗(cmd)並進入MySQL安裝目錄的bin目錄(若已配置環境變數,則無需進入bin目錄)執行∶

  • mysql -u使用者名稱-p,輸入密碼,進入MySQL控制檯,用於對MySQL資料庫進行各類操作。

    • 顯示所有資料庫: show databases

    • 使用某個資料庫:use 資料庫名

    • 顯示資料庫下的所有資料表:show tables>查

    • 看某資料表結構:desc資料表名

    • 清空某資料表資料: truncate table資料表名

    • 刪除資料表:drop table資料表名

    • 刪除資料庫:drop database

    • 資料庫名≥退出mysql控制檯:lq(或quit、exit)

    • Mysql常用命令

    • 建立資料庫:create database資料庫名

    • 建立資料表: create table資料表名(column_name column_type);

    • 插入資料:insert into資料表名( column_name1,column_name2…column_nameN )values
      ( value1, value2…valueN );

    • 查詢資料: select column_name1,column_name2 , …column_nameN from

      資料表名
      [where Clause] [limit N]

    • 聯合查詢: select …union select …用於連線兩個以上的 SELECT 語句的結果組合到一個結果集合中,多個SELECT語句會刪除重複的資料

    • mysql函式: concat . group_concat、 substring函式

    mysql自帶有四個資料庫,分別是:mysql、information_schema、test、performance_schema。

    mysql自帶有四個資料庫,分別是:mysql、information_schema、test、performance_schema。>mysql庫主要儲存各類許可權相關資訊及幫助資訊
    mformation_schema庫主要儲存資料庫物件相關概要( schema )資訊>test是個測試用的空資料庫;)
    performance_schemg主要儲存配置及效能資訊。

資料庫紫統裝結構—information_schema庫

information_schema
l_schemata
所有資料庫的名字
l_schema_name
資料庫名
l__tab1es
所有表的名字
l__ tab1e_schema
表所屬資料庫的名字
l_ tab1e_name
表的名字
l_columns
所有欄位的名字
l_ table_schema
欄位所屬資料庫的名字
l__ table_name
欄位所屬表的名字
l__ co1umn_name欄位的名字

SQL隱碼攻擊是黑客對資料庫進行攻擊的常用手段之一。
SQL隱碼攻擊的攻擊原理就是攻擊者通過Web應用程式利用SQL語句或字串將非法的資料插入到伺服器端資料庫中,獲取資料庫的管理使用者許可權,然後將資料庫管理使用者許可權提升至作業系統管理使用者許可權,控制伺服器作業系統,獲取重要資訊及機密檔案。
SQL隱碼攻擊能夠通過構建惡意的SQL語句來實現攻擊者想要達到的目的,而並不是按照開發者的意圖去執行SQL語句。

相關文章