數據庫MySQLⅠ

目錄

 

1. 爲什麼學習數據庫

2. 數據庫

3. RDBMS

4. SQL

5. MySQL

6. 數據表操作

7. 數據操作-增刪改查


1. 爲什麼學習數據庫

  • 90%以上的軟件都需要操作數據,⽐如遊戲、社交、新聞、商城、財務等,這些軟件都在不停的展示、存儲數據, 它們的數據都存儲在數據庫,數據庫是軟件的基礎
  • 測試⼯程師在測試軟件的過程中,不僅需要在界⾯上操作,還需要檢查數據庫中的數據是否正確。從⽽在軟件出問 題時,測出更深層的問題。 ⽐如測試註冊登錄功能,在輸⼊了註冊信息後,提示註冊成功,但是使⽤剛纔註冊的信息登錄不成功。這時需要檢查數據庫中是否保存了正確的註冊信息,如果數據庫中沒有保存數據,那麼使⽤剛纔註冊的賬號肯定登錄不了,這樣就能定位問題:註冊時,沒有把數據存儲起來

2. 數據庫

        數據庫是指⻓期存儲在計算機內、有組織的數據集合。簡⽽⾔之,數據庫就是⼀個存儲數據的地⽅。表是數據庫中存儲數據的基本單位,數據按照分類存儲到不同的表中,能夠⾮常⾼效的查詢其中的數據

3. RDBMS

Relational Database Management System

關係型數據庫系統

關係型數據庫的主要產品:

  • oracle:在以前的⼤型項⽬中使⽤,銀⾏,電信等項⽬
  • mysql:web時代使⽤最⼴泛的關係型數據庫
  • ms sql server:在微軟的項⽬中使⽤
  • sqlite:輕量級數據庫,主要應⽤在移動平臺

關係型數據庫核心元素:

  • 數據⾏(⼀條記錄)
  • 數據列(字段)
  • 數據表(數據⾏的集合)
  • 數據庫(數據表的集合,⼀個數據庫中能夠有 n 多個數據表)

4. SQL

Structured Query Language

結構化查詢語⾔

       在數據庫中進⾏操作的語⾔,稱爲sql,結構化查詢語⾔,當前關係型數據庫都⽀持使⽤sql語⾔進⾏操作,也就是說可以 通過 sql 操作 oracle,sql server,mysql,sqlite 等等所有的關係型的數據庫

  • sql語⾔主要分爲:

         DQL:數據查詢語⾔,⽤於對數據進⾏查詢,如select

         DML:數據操作語⾔,對數據進⾏增加、修改、刪除,如insert、udpate、delete

         TPL:事務處理語⾔,對事務進⾏處理,包括begin transaction、commit、rollback

         DCL:數據控制語⾔,進⾏授權與權限回收,如grant、revoke

         DDL:數據定義語⾔,進⾏數據庫、表的管理等,如create、drop

         CCL:指針控制語⾔,通過控制指針完成表的操作,如declare cursor

  • 對於測試⼯程師來講,重點是數據的查詢,需要熟練編寫DQL,其它語⾔如TPL、DCL、CCL瞭解即可
  • SQL 是⼀⻔特殊的語⾔,專⻔⽤來操作關係數據庫
  • 不區分⼤⼩寫

5. MySQL

MySQL是⼀個關係型數據庫管理系統,由瑞典MySQL AB公司開發,後來被Sun公司收購,Sun公司後來⼜被 Oracle公司收購,⽬前屬於Oracle旗下產品

常⽤數據類型 :

整數:int,有符號範圍(-2147483648 ~2147483647),⽆符號範圍(0 ~ 4294967295)

⼩數:decimal,如decimal(5,2)表示共存5位數,⼩數佔2位,整數佔3位

字符串:varchar,範圍(0~65533),如varchar(3)表示最多存3個字符,⼀箇中⽂或⼀個字⺟都佔⼀個字符

⽇期時間: datetime,範圍(1000-01-01 00:00:00 ~ 9999-12-31 23:59:59),如'2020-01-01 12:29:59'

約束:

主鍵(primary key):物理上存儲的順序

⾮空(not null):此字段不允許填寫空值

惟⼀(unique):此字段的值不允許重複

默認值(default):當不填寫此值時會使⽤默認值,如果填寫時以填寫爲準

外鍵(foreign key):維護兩個表之間的關聯關係

6. 數據表操作

  • 創建表

create table 表名(

字段名 類型 約束,

字段名 類型 約束,

...

)

  • 刪除表

格式⼀:drop table 表名

格式⼆:drop table if exists 表名

7. 數據操作-增刪改查

  • 簡單查詢

select * from 表名

  • 添加數據

添加⼀⾏數據:

insert into 表名 values(...)           # 主鍵列是⾃動增⻓,插⼊時需要佔位,通常使⽤0或者 default 或者 null 來佔位

insert into 表名(字段1,...) values(值1,...)

添加多⾏數據:

insert into 表名 values(...),(...)...

insert into 表名(列1,...) values(值1,...),(值1,...)...

  • 修改

update 表名

set 列1=值1,列2=值2...

where 條件

  • 刪除

delete from 表名 where 條件

truncate table 表名(刪除表的所有數據,保留表結構)

Truncate和Delete、Drop的區別:

1、Delete刪除數據時,即使刪除所有數據,其中的⾃增⻓字段不會從1開始

2、Truncate刪除數據時,其中的⾃增⻓字段恢復從1開始

3、Drop是刪除表,所有數據和表結構都刪掉

總結: 

在速度上,drop > truncate > delete

如果想刪除部分數據⽤delete,注意帶上where⼦句

如果想刪除表,⽤drop

如果想保留表⽽將所有數據刪除,⾃增⻓字段恢復從1開始,⽤truncate

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發佈了11 篇原創文章 · 獲贊 1 · 訪問量 1499
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章