突擊學習之資料庫基礎彙總

Ostep發表於2020-11-25

1、資料庫是按照一定的形式來組織儲存資料,目的是為了對資料操作-增刪改查;

2、發展歷史:網狀資料庫->層次型資料庫->關係型資料庫->非關係型資料庫(nosql);

3、關係型資料庫邏輯結構
server伺服器->Database資料庫->Table表->Row(行)-Cloumn(列)

4、常見的關係型資料庫

SQLite微型資料庫
SQLserver只能用在windows系統
Oracle大型資料庫,收費
MySql中小型資料庫(免費)(瑞典)適用於各種作業系統

5、伺服器套裝:XAMPP軟體

  1. mysql.exe 客戶端負責向伺服器端發起增刪改查操作;
    mysqld.exe 負責儲存資料;

  2. 使用客戶端連線伺服器端
    mysql.exe -h127.0.0.1 -P3306 -uroot -p或簡寫為
    mysql.exe -uroot
    ---------------h主機 ----------P埠- u使用者名稱- p密碼

  3. Mysql常用管理命令:
    quit-退出伺服器連線
    show databases; -顯示所有資料庫
    use 資料庫名;-使用資料庫
    show tables;-顯示資料庫中的所有表
    desc 表名;-檢視該表中的所有表頭

  4. SQL命令(structured Query language結構化查詢語言)
    作用:用於操作關係型資料庫,對資料執行增刪改查;
    兩種執行方式:①互動模式,客戶端輸入一行,伺服器執行一行,適用於臨時性的檢視資料;②指令碼模式,客戶端把要執行的多行命令寫在一個文字檔案中,一次性的提交給伺服器,適用於批量的運算元據
    執行指令碼方法:mysql -uroot <指令碼檔案路徑

  5. SQL語法規範
    ①每條sql命令可以跨越多行,遇英文符號結束;
    ②假如某一條命令出現語法錯誤,則此條語句以及後邊所有的語句都不會執行;
    ③sql命令不區分大小寫,習慣上關鍵字大小,非關鍵字小寫;
    ④sql命令有多行註釋(/* */)和單行註釋(#);

  6. 常用的sql命令
    建立新的資料庫:CREATE DATABASE 資料庫名;
    丟棄(刪除)指定的資料庫,表也可以丟棄:DROP DATABASE IF EXISTS 資料庫名
    建立表:CREATE TABLE 表名(屬性1,屬性2…);
    向表中插入資料:INSERT INTO 表名 VALUES(‘ ’,‘ ’,‘ ’);
    查詢資料:SELECT *FROM 表名;
    修復資料:UPDATE 表名 SET 屬性;
    刪除資料:DELETE *FROM 表名;

  7. 標準SQL命令分類
    DDL-Data Define Language-定義資料結構:CREATE/DROP/ALTER
    DML-Data Manipulate Language-運算元據:INSERT/UPDATE/DELETE
    DQL-Data Query Language-查詢資料:SELECT
    DCL:Data Control Language-控制使用者許可權:GRANT/REVOKE
    設定客戶端連線伺服器端的編碼為UTF-8:SET NAMES UTF8,解決儲存中文亂碼問題。

  8. mysql中的列的型別

型別位元組數
TINYINT1
SMALLINT2
MEDIUNINT3
INT4
BIGINT8
FLOAT4
DOUBLE8
CHAR1
VARCHAR2
TEXT
BLOB
TINYBLOB
DATE
TIME
DATETIME
BOOLTRUE/FALSE
DECIMAL(M,D)定點小數,無誤差

注意:①BOOL型別儲存資料時會變成TINYINT型別,使用true和false是不能加單引號!②在插入數值型別時,引號可加可不加;③在插入字串型別和日期時間型別時,必須加單引號!

  1. 列約束:mysql可以對插入的資料進行特定驗證,只有滿足條件才允許插入到資料表中,否則認為是非法的插入
    ①主鍵約束:PRIMARY KEY(不能為空)
    注意:主鍵是唯一的,不能出現多個主鍵;
    ②非空約束:NULL是不能確定的時候用的,NULL和任何值都不相等,包括他自己;
    ③唯一約束-UNIQUE,允許為空,一個表中可以出現多個唯一約束;
    ④檢查約束-CHECK(條件),檢查約束可以對插入的資料進行自定義條件驗證,mysql不支援檢查約束,會降低資料的插入速度;
    ⑤預設值約束-DEFAULT(預設值);
    ⑥外來鍵約束-FOREIGN KEY REFERENCES 表(主鍵);

  2. mysql的自增列
    AUTO_INCREMENT:自增給編號設值;
    不足:自動尋找最大的進行自增賦值;只適用於整形的列上,自增列允許手動賦值;

  3. 簡單查詢
    查詢列:SELECT * FROM 表名;
    給列起別名:SELECT 列名 AS 中文別名;在起別名的時候,AS可以省略;
    顯示不同的記錄、合併相同的記錄使用DISTINCT;
    查詢時計算,示例:SELECT 表示式;
    查詢結果排序:ORDER BY #ascendant 升序ASC 降序DESC

  4. 條件查詢
    字串:WHERE …LIKE…“%多個字元、_單個字元”
    比較運算子:>、<、<=、>=、!=;
    BTWEEN …AND…
    NOT BTWEEN …AND…
    WHERE …OR…
    WHERE A AND B=WHERE IN(A,B)在A,B之間

  5. 分頁查詢
    假如查詢的結果集有太多的資料,一次顯示不完,可以使用分頁顯示;
    *每頁的開始=(當前的頁碼-1)每頁的資料量
    格式:LIMIT start, count------start每頁的開始,count------每頁的資料量。

相關文章