Linux 和數(shù)據(jù)庫day03隨堂筆記
一. 數(shù)據(jù)庫是什么?
為什么學習數(shù)據(jù)庫:
? ? ? 軟件中產(chǎn)生的所有數(shù)據(jù), 最終都要存儲于數(shù)據(jù)庫當中
? ? ? 測試人員如果想要進行數(shù)據(jù)查詢/數(shù)據(jù)校驗, 就必須掌握對數(shù)據(jù)庫的基本操作
數(shù)據(jù)庫是什么?
? ? ?定義: 用于存儲數(shù)據(jù)的軟件
? ? ?特點: 表是數(shù)據(jù)存儲的核心體現(xiàn)
二. 數(shù)據(jù)庫常見分類
關系型數(shù)據(jù)庫(重點)
RDMS:(Relational Database Management System)關系型數(shù)據(jù)庫系統(tǒng)
特征: 以數(shù)據(jù)表的形式存儲數(shù)據(jù), 便于數(shù)據(jù)查詢
常見的數(shù)據(jù)庫代表:
? ? ? ? Oracle:在大型項目中使用,例如:銀行腹尖、電信等項目
? ? ? ? MySQL:Web 項目中使用最廣泛的關系型數(shù)據(jù)庫
? ? ? ?Microsoft SQL Server:在微軟的項目中使用
? ? ? ? SQLite:輕量級數(shù)據(jù)庫,主要應用在移動平臺
關系型數(shù)據(jù)庫的核心要素:
? ? ? ? ? ? ?數(shù)據(jù)行(一條記錄)
? ? ? ? ? ? ? ?數(shù)據(jù)列(字段)
? ? ? ? ? ? ? ?數(shù)據(jù)表(數(shù)據(jù)行的集合)
? ? ? ? ? ? ? ?數(shù)據(jù)庫(數(shù)據(jù)表的集合伐脖,一個數(shù)據(jù)庫中能夠有 n 多個數(shù)據(jù)表)
非關系型數(shù)據(jù)庫:
? ? ? ? ? ? 不以數(shù)據(jù)表的形式存儲數(shù)據(jù)的數(shù)據(jù)庫類型
三. SQL 介紹
SQL:Structured Query Language(結(jié)構(gòu)化查詢語言)热幔,通過SQL語言可以對數(shù)據(jù)庫進行操作
特點: 所有主流的關系型數(shù)據(jù)庫, 都支持使用SQL語句進行數(shù)據(jù)查詢!
注意: 雖然 SQL 語言分支很多, 但對于測試人員而言, 我們重點掌握查詢操作即可!
DQL:數(shù)據(jù)查詢語言,用于對數(shù)據(jù)進行查詢讼庇,例如:select
擴展: 在 MySQL 中绎巨,默認對 SQL 語法不區(qū)分大小寫
四. MySQL 介紹
來源: 目前屬于 Oracle 旗下產(chǎn)品, 目前只有社區(qū)版免費
特點: 開源, 支持多平臺(Linux/Windows/macOS), 支持多語言(Java/C/Python...)
注意: 熟悉 SQL 和熟悉 MySQL 不是一回事兒(熟悉 SQL : 熟悉 SQL語言; 熟悉 MySQL: 用過 MySQL 數(shù)據(jù)庫)
五. 數(shù)據(jù)庫的遠程連接(重點)
注意: 實際工作中, 數(shù)據(jù)庫是安裝在服務器當中的, 如果要直連數(shù)據(jù)庫進行數(shù)據(jù)校驗, 就必須遠程連接
連接步驟
1. 獲取兩個信息: 服務器的 IP 地址; 數(shù)據(jù)庫的賬號和密碼(找相關人員詢問)
2. 在自己電腦上使用數(shù)據(jù)庫連接工具(例如: Navicat), 建立連接, 遠程連接數(shù)據(jù)庫
3. 連接過程中需要確認自己電腦和服務器是否能夠正常通信(ping命令)
注意事項:
1. 課上使用的 MySQL 的賬號密碼雖然是 root 和 123456, 但是和CentOS 系統(tǒng)的 root 用戶沒有關系
課程注意:
DQL:數(shù)據(jù)查詢語言,用于對數(shù)據(jù)進行查詢蠕啄,例如:select1. 如果第一次連接成功, 再次使用時, 提示 IP 地址問題, 則需要重新獲取虛擬機系統(tǒng)的 IP 地址
2. 使用過程中, 要確保虛擬機系統(tǒng)不會待機或進入休眠狀態(tài), 修改方法如下:
點擊電源 -> 點擊設置
修改 power -> 空白屏幕(從不)
六. Navicat 基本使用
數(shù)據(jù)庫連接操作
常規(guī)操作
注意: 連接只需要建立一次, 后續(xù)使用中, 可以通過'編輯連接', 調(diào)整連接選項設置即可!
數(shù)據(jù)庫操作
注意: 默認的數(shù)據(jù)庫不要隨意操作
連接上鼠標右鍵 -> 新建數(shù)據(jù)庫
如圖設置字符集和排序規(guī)則
數(shù)據(jù)庫操作注意事項
編輯數(shù)據(jù)庫
數(shù)據(jù)庫修改注意事項
數(shù)據(jù)表操作
表 -> 鼠標右鍵 -> 新建表
添加一個字段 -> 填寫表名 -> 保存
再次添加或修改字段
添加或修改字段注意事項
數(shù)據(jù)操作
打開表
數(shù)據(jù)修改注意事項
數(shù)據(jù)常規(guī)操作
刪除數(shù)據(jù)注意事項
清空表 : 清理數(shù)據(jù)保留字段
數(shù)據(jù)修改后, 常用刷新
七. 數(shù)據(jù)庫的備份與還原(Navicat)
測試過程中會產(chǎn)生垃圾數(shù)據(jù), 測試結(jié)束時一般都需要還原原有數(shù)
據(jù), 因此需要在測試執(zhí)行前先備份, 測試結(jié)束后執(zhí)行還原
注意: 如果是測試工作中的備份與還原, 以下步驟對同一個數(shù)據(jù)庫進
行操作即可!
備份操作
要備份的數(shù)據(jù)庫上鼠標右鍵 -> 轉(zhuǎn)儲SQL文件
還原操作
1. 新建一個與備份數(shù)據(jù)庫設置相同的數(shù)據(jù)庫
2. 運行上一步保存的SQL文件即可
找到之前報錯的SQL文件
確認路徑后, 點擊開始
如圖提示成功, 關閉即可
進入新建數(shù)據(jù)庫中, 刷新數(shù)據(jù), 確認還原成功即可
八. 數(shù)據(jù)類型與約束(重點)
作用: 為了更加準確存儲數(shù)據(jù), 保證數(shù)據(jù)的有效性, 需要結(jié)合數(shù)據(jù)類型和約束來限制數(shù)據(jù)的存儲
數(shù)據(jù)類型:
整數(shù):int场勤,有符號范圍(-2147483648 ~2147483647),無符號范圍(0 ~ 4294967295)
小數(shù):decimal歼跟,例如:decimal(5,2) 表示共存5位數(shù)和媳,小數(shù)占2位,整數(shù)占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'
整數(shù)類型設置
約束
主鍵(primary key):物理上存儲的順序
非空(not null):此字段不允許填寫空值
惟一(unique):此字段的值不允許重復
默認值(default):當不填寫此值時會使用默認值,如果填寫時以填寫為準
外鍵(foreign key):維護兩個表之間的關聯(lián)關系(現(xiàn)階段先不講解, 后邊再進行擴展)
九. SQL 語言
注意: SQL 語言重點是查詢語句, 因此對表和數(shù)據(jù)的操作語句僅做了解, 主要是為了熟悉SQL語句的編寫習慣
數(shù)據(jù)表
-- 創(chuàng)表語句
-- create table 表名(
-- 字段1 類型,
-- 字段2 類型
-- );
-- 優(yōu)化
drop table if exists goods;
-- drop table : 刪表 if exists : 如果存在
-- 如果表存在, 執(zhí)行刪除操作
create table goods(goodsName varchar(20),price decimal(4, 2));
增加數(shù)據(jù)(插入數(shù)據(jù))
-- 語法 insert into 表名 values(...)
insert into goods values
(0, '戰(zhàn)神筆記本', 6000.00, 100, '某東', '戰(zhàn)神在手, 天下我有!');
-- 注意: 插入的數(shù)據(jù)個數(shù)與字段數(shù)必須匹配, 數(shù)據(jù)類型也需要對應
-- 插入多條數(shù)據(jù)
insert into goods values
(0, '小新筆記本', 5000.00, 100, '某東', '小新小新, 蠟筆小新!'),
(0, '外星人筆記本', 9999.00, 100, '某寶', '外星人上位, 戰(zhàn)神渣渣!');
-- 注意: 插入多條數(shù)據(jù), 每條數(shù)據(jù)使用逗點分隔即可
-- 擴展: 插入指定字段數(shù)據(jù)(了解)
-- insert into 表名(字段名) values(字段對應值)
修改數(shù)據(jù)
-- 需求2: 修改商品數(shù)據(jù)1條, 刪除1條數(shù)據(jù)
-- 修改
-- 先查詢所有數(shù)據(jù), 便于觀察數(shù)據(jù)內(nèi)容
select * from goods;
-- 補充惠普電腦的數(shù)據(jù)
update goods set price=4500.00,num=50,company='并夕夕' where id=4;
-- 注意: 修改數(shù)據(jù)時, 為保證修改準確性, 務必要給出限定條件(where)
update goods set price=4500.00,num=50,company='并夕夕';