測試開發(fā)筆記三(SQL語法與數(shù)據(jù)庫)

01 | MySQL數(shù)據(jù)庫搭建


安裝mysql(windows)

  • 下載地址:https://dev.mysql.com/downloads/mysql/

    image.png

    image.png

  • 選擇歷史版本(若想選擇歷史版本嫉拐,可切換到Archives頁簽)


    image.png

    image.png
  • 解壓后無需安裝


    image.png
  • 新建data目錄和my.ini文件


    image.png
  • 配置my.ini內(nèi)容

[mysqld]
# 設置3306端口
port=3306
# 設置mysql的安裝目錄
basedir=D:\\Program Files\\mysql-8.0.19-winx64
# 設置mysql數(shù)據(jù)庫的數(shù)據(jù)存儲目錄
datadir=D:\\Program Files\\mysql-8.0.19-winx64\\data
# 允許最大連接數(shù)
max_connections=200
# 允許連接失敗的次數(shù)骗灶。為防止有人從該主機攻擊數(shù)據(jù)庫系統(tǒng)
max_connect_errors=10
# 服務端使用的字符集默認為UTF8
character-set-server=utf8
# 創(chuàng)建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[client]
# 設置mysql客戶端連接服務端時默認使用的端口
port=3306
default-character-set=utf8
  • 配置環(huán)境變量
image.png

image.png
  • 執(zhí)行初始化命令:mysqld --initialize --user=mysql --console笔宿;生成臨時密碼(記住此密碼,第1次登錄時會用到)

    image.png

    遇到問題:
    image.png

    解決方案:
    清空data目錄中所有文件

  • 將mysql添加都服務:執(zhí)行mysqld -install
    遇到問題:

    image.png

    解決方案:
    https://www.cnblogs.com/dhpong/p/10613915.html

  • 啟動mysql服務:net start mysql
    遇到問題:
    無法啟動mysql服務孩哑,系統(tǒng)錯誤1067
    解決方案:
    https://www.cnblogs.com/strawqqhat/p/10602228.html

  • 登錄:
    1.執(zhí)行mysql -u root -p
    2.密碼是之前的臨時密碼

到此mysql安裝完了,真是一步一個坑啊,還好當天都解決了嚷炉,如果留到第2天,晚上會睡不著覺的

navicat連接數(shù)據(jù)庫

  • 修改臨時密碼
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by '1234qwer';
flush privileges;
  • 新建數(shù)據(jù)庫
    1.字符集:utf8mb4 -- UTF-8 Unicode
    2.排序規(guī)則:utf8mb4_general_ci

  • 命令行界面
    右擊數(shù)據(jù)庫-命令行界面

  • sql文件導入(導入表探橱、初始數(shù)據(jù))
    右擊數(shù)據(jù)庫 - 運行SQL文件 - 選擇sql文件-開始


    image.png
  • sql文件導出
    右擊數(shù)據(jù)庫 或 右擊表 - 轉(zhuǎn)儲SQL文件

02 | 數(shù)據(jù)庫結(jié)構(gòu)解析


創(chuàng)建表

CREATE TABLE `test_user` (
    `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
    `name` VARCHAR(100) DEFAULT NULL COMMENT '名稱',
    PRIMARY KEY (`id`) USING BTREE  # 索引
)ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=UTF8 ROW_FORMAT=DYNAMIC COMMENT '測試用戶表';
  • row_format
    1.fixed:若一張表不存在varchar申屹、text以及其變形、blob以及其變形的字段隧膏,這張表就是靜態(tài)表哗讥;靜態(tài)表每條記錄所占用的字節(jié)一樣,優(yōu)點是讀取快胞枕,缺點是浪費空間杆煞。
    2.dynamic:若一張表里面存在varchar、text以及其變形腐泻、blob以及其變形的字段决乎,這張表就是動態(tài)表;動態(tài)表每條記錄所占用的字節(jié)是動態(tài)的派桩,其優(yōu)點節(jié)省空間构诚,缺點增加讀取的時間開銷。
    3.搜索查詢量大的表一般都以空間來換取時間铆惑,設計成靜態(tài)表唤反。

03 | 修改表結(jié)構(gòu)


  • 格式
    ALTER TABLE <表名> [修改選項]

  • 修改選項預發(fā)格式
    1.ADD COLUMN <列名> <類型> // 添加字段
    2.CHANGE COLUMN <舊列名> <新列名> <新列類型> //改變字段名
    3.MODIFY COLUMN <列名> <類型> //修改字段類型
    4.DROP COLUMN <列名> //刪除字段
    5.RENAME TO <新表名> //修改表名

04 | 表數(shù)據(jù)的增刪改查


語法

  • 插入1條數(shù)據(jù)
    insert into 表名(字段名[,字段名2]) values(字段值1,字段值2)
  • 刪除數(shù)據(jù)
    1.delete from 表名 where 字段名=字段值 //刪除1條數(shù)據(jù)
    2.delete from 表名 //刪除所有數(shù)據(jù)
  • 查詢數(shù)據(jù)
    select * from 表名
  • 更新數(shù)據(jù)
    1.update 表名 set 字段名1=字段值1 where 字段名2=字段值2
    2.update 表名 set 字段名1=字段值1 //修改表里所有數(shù)據(jù)

05 | join


左連接查詢 left join

  • 語句
    select * from a_table a left join b_table b on a.a_id = b.b_id;

  • 說明
    1.左表(a_table)記錄都會顯示
    2.右表(b_table)符合on后面條件的記錄才會顯示
    3.左表有鸭津,右表沒有彤侍;則右表所有字段顯示NULL

右連接查詢 right join

  • 語句
    select * from a_table a right join b_table b on a.a_id = b.b_id;

  • 說明
    1.右表(b_table)記錄都會顯示
    2.左表(a_table)符合on后面條件的記錄才會顯示
    3.右表有,左表沒有逆趋;則左表所有字段顯示NULL

  • 語句
    select * from a_table a inner join b_table b on a.a_id = b.b_id;

  • 說明
    返回兩個表的交集盏阶,左表和右表都有,且符合on后面條件的記錄會顯示

05 | redis內(nèi)存數(shù)據(jù)庫


簡介

  • 開源高性能的key-value數(shù)據(jù)庫
  • 支持數(shù)據(jù)的持久化闻书,可將內(nèi)存中的數(shù)據(jù)保存在磁盤中
  • 支持list名斟,set,zset魄眉,hash等數(shù)據(jù)結(jié)構(gòu)的存儲
  • 支持master-slave模式的數(shù)據(jù)備份
  • 性能極高砰盐,redis讀的速度是110000次/s,寫的速度是81000次/s
  • 支持事務坑律,要么成功執(zhí)行要么失敗完全不執(zhí)行
  • 支持publish/subscribe岩梳,通知,key過期等特性

下載安裝

  • 下載地址
    https://github.com/microsoftarchive/redis/releases

    image.png

  • 啟動
    1.命令行->cd redis安裝目錄
    2.運行redis-server.exe redis.windows.conf

  • 連接
    1.原cmd窗口不要關(guān)閉,否則無法連接
    2.另開1個cmd窗口冀值,進入redis的安裝目錄也物,運行redis-cli.exe -h localhost -p 6379

  • 設置密碼
    1.編輯redis.windows.conf
    2.搜索requirepass,修改配置如下


    image.png

數(shù)據(jù)類型

類型 簡介 特性 應用場景
String(字符串) - 二進制安全的列疗;可存儲任何數(shù)據(jù)(如jpg圖片或序列化對象)滑蚯;1個鍵能存儲512Mb數(shù)據(jù) -
Hash(字典) 鍵值對集合 string類型的key-value的映射表,特別適合存儲對象抵栈,每個hash可以存儲40多個億鍵值對 存儲告材、讀取、修改用戶屬性
List(列表) 簡單的字符串列表古劲,按照插入順序排序创葡,可添加1個元素到列表頭部或尾部,1個列表可存儲40多個億的元素 增刪快绢慢,提供了操作某一段元素的API 最新消息排行等功能(比如朋友圈)灿渴;消息隊列
Set(集合) String 類型的無序集合,元素不重復 通過哈希表實現(xiàn)胰舆;添加骚露、刪除、查找的復雜度都是0(1)缚窿;每個集合可存儲40多億個成員 共同好友棘幸;利用唯一性統(tǒng)計訪問網(wǎng)站的所有獨立ip;好友推薦時倦零,根據(jù)tag求交集误续,大于某個閾值就可以推薦
Sorted Set(有序集合) String 類型的有序集合,元素不重復 每個元素會關(guān)聯(lián)1個double類型的分數(shù)扫茅;redis通過分數(shù)來為集合中的成員進行從小到大排序蹋嵌;有序集合的成員是唯一的,但分數(shù)(score)可重復葫隙;通過哈希表實現(xiàn)栽烂;添加、刪除恋脚、查找的復雜度都是0(1)腺办;每個集合可存儲40多億個成員 排行榜;帶權(quán)重的消息隊列

基本使用

  • String
set key value
get key
  • Hash
hmset key field value [field value ...] 
hget key field
hgetall key
  • List
lpush  "key" value [value ...]
lrange "key" start stop
  • Set
sadd key member [member ...]
smembers key
  • Sorted Set
zadd key [NX|XX] [CH] [INCR] score member [score member ...]
zrange key start stop [WITHSCORES]
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

06 | MongoDB NoSQL數(shù)據(jù)庫


關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫

  • 關(guān)系型數(shù)據(jù)庫
    1.存儲在硬盤上糟描,讀寫慢
    2.保持ACID(事物原則)怀喉,擴展難

  • 非關(guān)系型數(shù)據(jù)庫
    1.NoSql(Not Only SQL),不僅僅是SQL船响,更超越SQL
    2.key-value形式
    3.CAP->BASE
    一致性(Consistency):分布式系統(tǒng)躬拢,所有節(jié)點在同一時間擁有相同的數(shù)據(jù)
    可用性(Availability):保證每個請求不管成功還是失敗都有響應
    分離容忍(Partition tolerance):系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運作
    注:以上3個原則可以兩兩組合使用躲履,但不能一起使用
    4.沒有標準化的語言
    5.有限的查詢功能

MongoDB

  • 簡介
    1.非關(guān)系型數(shù)據(jù)庫
    2.文檔存儲:類json格式
    3.有機會對字段建立索引,可實現(xiàn)關(guān)系型數(shù)據(jù)庫

  • 下載安裝啟動
    1.下載地址:https://www.mongodb.com/download-center/community
    2.安裝:一直下一步
    3.啟動:
    mongod -dbpath=/path/mongodb
    mongo

數(shù)據(jù)庫操作

  • 查看當前數(shù)據(jù)庫:show dbs
  • 切換數(shù)據(jù)庫(若沒有則自動創(chuàng)建):use demo1
  • 插入1條數(shù)據(jù):db.demo1.insert({"name":"小紅"})
  • 刪除數(shù)據(jù)庫:
    1.切換數(shù)據(jù)庫:use demo1
    2.刪除:db.dropDatabase()

集合操作

  • 創(chuàng)建集合:db.createCollection('collection1')
  • 查看已經(jīng)創(chuàng)建的集合:show collections
  • 刪除集合:db.collection1.drop()
  • 插入文檔
    1.文檔是mongodb中的基本單元
    2.相當于表中的1條記錄
    3.以json格式顯示
    4.插入:db.collection1.insert({"name":"hello"})
    5.查看插入內(nèi)容:db.collection1.find().pretty()
    6.插入復雜文檔
# 聲明變量
document=({
  title:'MongoDB',
  by:'RuotongYu',
  tags:['mongodb','database','NoSQL']
});
# 插入文檔
db.collection1.insert(document)

比較大小

操作 格式 范例 類似語句
等于 {<key>:<value>} db.coll.find({"by":"2"}).pretty() where by = "2"
小于 {<key>:{$lt:<value>}} db.coll.find({"by":{$lt:50}}).pretty() where by < 50
小于等于 {<key>:{$lte:<value>}} db.coll.find({"by":{$lte:50}}).pretty() where by <= 50
大于 {<key>:{$gt:<value>}} db.coll.find({"by":{$gt:50}}).pretty() where by > 50
大于等于 {<key>:{$gte:<value>}} db.coll.find({"by":{$gte:50}}).pretty() where by >= 50
不等于 {<key>:{$ne:<value>}} db.coll.find({"by":{$ne:50}}).pretty() where by != 50

修改刪除文檔

  • 格式
db.collection.update(
  <query>,
  <update>,
  {
    upsert:<boolean>,  # 若不存在update的記錄就插入估灿,默認false
    multi:<boolean>,  # 更新所有按條件查出來的多條記錄,默認false(只更新第1條)
    writeConcern:<document>  # 拋出異常級別
  }
)

注:update是替換的意思缤剧,整條數(shù)據(jù)都會被替換

  • 修改單個文檔和多個文檔
    1.db.col.update({"tittle":"MongoDB"},{"title":"MongoDB123"})
    2.db.col.update({"name":"hello"},{$set:{"name":"hello123"}},{multi:true})

  • 刪除單個文檔和多個文檔
    1.db.col.remove({"name":"hello123"},1)
    2.db.col.remove({"name":"hello"})

修改操作符

  • $inc
    1.用法:{$inc{field:value}}
    2.作用:對1個數(shù)字字段的某個field增加value
    3.示例:將name為xiaoming學生的age增加5馅袁,db.students.update({name:"xiaoming"},{$inc:{age:5}})

  • $set
    1.用法:{$set:{field:value}}
    2.作用:把文檔中某個字段field的值設為value
    3.示例:把xiaohong的年齡設為10,db.students.update({name:"xiaohong"},{$set:{age:10}})

  • $push
    1.用法:{$push:{field:value}}
    2.作用:把value追加到field里荒辕。注:field只能是數(shù)據(jù)類型汗销,若field不存在,則自動插入1個數(shù)據(jù)類型
    3.示例:wangyaxiong添加別名“timothy”抵窒,db.students.update({name:"wangyaxiong"},{$push:{"ailas":"timothy"}})

  • $rename
    1.用法:{$rename:{old_field_name:new_field_name}}
    2.作用:對字段進行重命名
    3.示例:把xiaohong記錄的name字段重命名為name2弛针,db.students.update({name:"xiaohong"},{$rename:{"name":"name2"}})

07 | Neo4j圖數(shù)據(jù)庫


image.png

定義

Neo4j是一個高性能的nosql圖形數(shù)據(jù)庫,它將結(jié)構(gòu)化數(shù)據(jù)存儲在網(wǎng)絡上而不是表中

下載安裝

  • 下載地址:https://neo4j.com/download-center/#community

  • 安裝使用(windows)
    1.解壓壓縮包李皇,并配置環(huán)境變量
    2.命令行運行neo4j console(4.0.1版本不支持jdk8削茁,需要升級到jdk11以上)
    3.瀏覽器輸入http://localhost:7474
    4.輸入默認的用戶名/密碼:neo4j

節(jié)點

  • 創(chuàng)建節(jié)點
    1.創(chuàng)建emp節(jié)點,標簽為Employee掉房,create(emp:Employee)
    2,.創(chuàng)建xiaohong節(jié)點茧跋,帶有屬性:create(xiaohong:People{no:1,age:10,gender:"M"})

  • 刪除節(jié)點:match(e:people)delete e

  • 添加屬性

# 篩選age為32的節(jié)點,并賦值給a
match(a{age:32})
set a.name="hello"
return a
  • 查詢節(jié)點屬性
match(a:peple)  # match(變量名:標簽名)
return a  # 返回節(jié)點所有屬性
return a.age  # 返回節(jié)點單個屬性

match(a:{age:"32"})
return a 
  • 刪除屬性
match(book{title:"book1"})
remove book.price
return book

關(guān)系

  • 創(chuàng)建關(guān)系
create (p1:profile1{name:"xiaoming"})-[r1:friends]->(p2:profile2{name:"limei"}) 

match(a:people),(b:people)
where a.name="xiaohong" and b.name="wangwu"
create (a)-[r1:friends]-(b)
  • 刪除關(guān)系
match(a:profile1)-[friends]->(b:profile2)
delete a,b,friends

delete和remove

  • delete刪除節(jié)點和關(guān)系
  • remove刪除標簽和屬性

其他

  • 排序
match(emp:employee)
return emp.empid,emp.name,emp,salary,emp.deptno
order by emp.name desc

08 | MYSQL環(huán)境部署


docker鏡像

docker run \
--name mysql \
-v $PWD/mysql:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=hogwarts \
-d mysql:5.7

WorkBench

測試數(shù)據(jù)庫

  • 項目地址:https://github.com/datacharmer/test_db
  • 導入sql
    1.方式1
    mysql -h localhost -u root -p < employees.sql
    2.方式2
    cat employees.sql | sed -e "s#employees;#employees_wangyaxiong;#g" | mysql -h sql.testing-studio.com -u root -p

09 | SQL語法和關(guān)鍵知識點


SQL分類

分類 說明 關(guān)鍵字
DDL(Data Definition Language) 數(shù)據(jù)定義語言卓囚,對數(shù)據(jù)庫中的對象進行操作瘾杭,不能操作表中的數(shù)據(jù) create(創(chuàng)建)
alter(修改)
drop(刪除)
rename(重命名)
truncate(截斷)
comment(注釋)
DML(Data Manipulation Language) 數(shù)據(jù)操作語言,用來操作表中的數(shù)據(jù) select(查詢)
insert(插入)
update(更新)
merge(合并)
call
explain plan
lock table
DCL(Data Control Language) 數(shù)據(jù)控制語言哪亿,控制的是用戶的權(quán)限 grant(向用戶賦予權(quán)限/角色)
revoke(撤銷用戶的權(quán)限/角色)
TCL(Transaction Control Language) 事物控制語言 commit
rollback(回滾)
savepoint(設置保存點)
set transaction

基本信息

  • show databases;
  • show tables;
  • help show;

增刪改查

語句類型 示例
查詢 select * from Customers;
增加 insert into Customeres values ('Cardinal','Stavanger','Norway');
insert into Customeres(CustomerName,City,Country) values ('Cardinal','Stavanger','Norway')
更新 update Customers set ContactName='Alfred Schmidt',City='Frankfurt',where CustomerID=1;
刪除 delete from Customers where CustomerName='Alfreds';

基本查詢

查詢類型 示例
基本查詢 select * from table_name
字段查詢 select fileds from table
條件查詢 select * from table where a = 1
排序 select * from table order by b desc
分頁 select * from table order limit 10 offset 0
去重 select distinct gender from employees
  • 練習
    1.select birth_date 生日, gender 性別 from employees;
    2.select * from employees limit 10 offset 0粥烁;offset(偏移)=0,顯示第1頁(1-10條數(shù)據(jù))
    3.select * from employees limit 10 offset 10蝇棉;offset(偏移)=10讨阻,顯示第2頁(11-20條數(shù)據(jù))

條件查詢where

類型 示例
比較 =、>篡殷、<变勇、<>
通配 where CustomerName like '%or%';
范圍 where price between 10 and 20;
子集限定 where Country in ('Germany','France','UK')
邏輯關(guān)系 and or not
  • 練習
    1.SELECT * FROM departments WHERE dept_no BETWEEN 'd001' AND 'd003';;注 d001 和 d003 要加引號
    2.SELECT * FROM departments WHERE dept_no in (SELECT dept_no FROM departments WHERE dept_no BETWEEN 'd001' AND 'd003');贴唇;括號里可寫子查詢

聚合查詢

  • 基本語法:group by 字段 having 條件
  • 常用函數(shù):count,max,minx,sum,avg
  • 示例
    1.select count(gender),gender from employees group by gender;
    2.select count(gender),gender from employees group by gender having gender='F';
  • 練習
    1.統(tǒng)計employees表中數(shù)據(jù):select count(*) from employees;
    2.查詢employees表生日最小的記錄:SELECT * FROM employees WHERE birth_date in (SELECT MAX(birth_date) FROM employees);
    3.查詢employees表男女人數(shù):SELECT gender 性別,COUNT(*) 人數(shù) FROM employees GROUP BY gender;

進階查詢-多表join

  • 查詢員工的生日搀绣、部門、工資:
SELECT
    first_name 名,
    last_name 姓,
    birth_date 生日,
    departments.dept_name 部門,
    salaries.salary 工資
FROM
    employees
JOIN dept_emp ON employees.emp_no = dept_emp.emp_no
JOIN departments ON dept_emp.dept_no = departments.dept_no
JOIN salaries ON employees.emp_no = salaries.emp_no
WHERE
    first_name = 'Nahum';
  • 查詢各部門歷任領導的記錄并附上部門名字
SELECT
    first_name 名,
    last_name 姓,
    departments.dept_name 部門
FROM
    employees
JOIN dept_manager ON employees.emp_no = dept_manager.emp_no
JOIN departments ON dept_manager.dept_no = departments.dept_no
  • 計算各個部門的平均工資并排序戳气,給出平均工資链患、部門名稱
SELECT
    departments.dept_name ,
    AVG(salary)  salary
FROM
    salaries
LEFT JOIN dept_emp ON dept_emp.emp_no = salaries.emp_no
LEFT JOIN departments ON departments.dept_no = dept_emp.dept_no
GROUP BY
    departments.dept_no
ORDER BY
    salary;

10 | 實戰(zhàn)


關(guān)鍵名字

  • 主鍵:表中記錄的唯一標識符、非空瓶您、不重復
  • 外鍵:字段中的值來自于其他表的主鍵
  • 索引:加速表的查詢

內(nèi)置函數(shù)

官網(wǎng)地址:https://dev.mysql.com/doc/refman/8.0/en/

查看日志

  • general log:記錄所有sql
SET GLOBAL general_log = 'ON';
SHOW VARIABLES LIKE "general_log%";  可查看log的位置
SELECT * FROM mysql.general_log;
  • slow log:記錄慢查詢
show VARIABLES LIKE "slow%";
show VARIABLES LIKE "long%";  可查看log的位置
SET GLOBAL slow_query_log = "ON";
SET GLOBAL long_query_time = 5;
  • 查看當前mysql的連接數(shù)
select count(*) from sys.`session`;

備份

  • 用工具(navicat)麻捻,參考《01 | MYSQL數(shù)據(jù)庫搭建》中sql導出導入
  • 用命令
mysqldump -h localhost -uroot -p1234qwer --databases employees

使用python連接mysql

  • 安裝依賴:pip install mysql-connector-python
  • 示例
import datetime
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="1234qwer",
  database="employees"
)
mycursor = mydb.cursor()

query = ("select first_name,last_name,hire_date from employees "
          "where hire_date between %s and %s")

hire_start = datetime.date(1999,1,1)
hire_end = datetime.date(1999,12,31)

mycursor.execute(query,(hire_start,hire_end))

for (first_name,last_name,hire_date) in mycursor:
  print("{},{} was hired on {:%d %b %Y}".format(
    last_name,first_name,hire_date))
 
mycursor.close()
mydb.close()

數(shù)據(jù)庫面試題

  • 知識點結(jié)構(gòu)
    1.數(shù)據(jù)定義:DDL
    2.sql基本查詢知識:DML
    3.sql的知識進階:DML
    4.數(shù)據(jù)庫實操經(jīng)驗:自身機制與性能
  • 數(shù)據(jù)定義
    1.數(shù)據(jù)類型:常見數(shù)字類型纲仍、字符串類型(varchar)
    2.關(guān)系定義:主鍵、外鍵贸毕、索引
    3.表解雇修改:alter
  • 數(shù)據(jù)定義
    1.條件查詢
    2.分頁查詢
    3.聚合查詢
    4.更新符合條件數(shù)據(jù)
    5.刪除符合條件數(shù)據(jù)
  • sql進階
    1.鏈接(join)查詢
    2.事物:定義與語法
    3.索引:價值與用途
    4.存儲過程:如何對存儲過程進行測試
  • 數(shù)據(jù)庫使用經(jīng)驗
    1.常見數(shù)據(jù)庫:mysql郑叠、oracle、mongodb明棍、redis
    2.數(shù)據(jù)庫的部署:docker乡革、開放端口、連接方式
    3.數(shù)據(jù)庫備份與恢復:mysqldump摊腋、mysql
    4.性能統(tǒng)計:連接數(shù)沸版、show sql
    5.加鎖機制:悲觀鎖、樂觀鎖兴蒸、行鎖视粮、表鎖

推薦書籍與學習建議

  • SQL必知必會(第4版)
  • 高性能MySQL(最新版)
  • MySQL官方文檔
  • 熟悉MySQL,不要學習SQL Server等邊緣數(shù)據(jù)庫
  • 學號SQL橙凳,RDBMS與NoSQL產(chǎn)品多數(shù)也都支持SQL
  • NoSQL數(shù)據(jù)庫多數(shù)應用與大數(shù)據(jù)蕾殴,可以用于拔高了解
  • 使用flask編寫小網(wǎng)站熟悉下SQL的應用場景

11 | 補充


docker的mysql容器導入sql文件

  • 若服務器在遠端,執(zhí)行以下命令
docker run -it -v /Users/seveniruby/projects/test_db:/data/ --rm mysql bash -c "cd /data; mysql -h sql.testing-studio.com -u root -p < /data/employees.sql"
  • 若在服務器上岛啸,執(zhí)行以下命令
docker exec -i mysql mysql -h sql.testing-studio.com -uroot -phogwarts  < /tmp/demo.sql

測試工程師用sql做什么区宇?

  • 測試數(shù)據(jù)構(gòu)造(假設你搞不定mock)
  • 清理和還原被測系統(tǒng)數(shù)據(jù), 一鍵恢復原來數(shù)據(jù)
  • 測試數(shù)據(jù)的提取
  • 寫數(shù)據(jù)的校驗
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末值戳,一起剝皮案震驚了整個濱河市议谷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌堕虹,老刑警劉巖卧晓,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赴捞,居然都是意外死亡逼裆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門赦政,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胜宇,“玉大人,你說我怎么就攤上這事恢着⊥┯洌” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵掰派,是天一觀的道長从诲。 經(jīng)常有香客問我,道長靡羡,這世上最難降的妖魔是什么系洛? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任俊性,我火速辦了婚禮,結(jié)果婚禮上描扯,老公的妹妹穿的比我還像新娘定页。我一直安慰自己,他們只是感情好绽诚,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布典徊。 她就那樣靜靜地躺著,像睡著了一般憔购。 火紅的嫁衣襯著肌膚如雪宫峦。 梳的紋絲不亂的頭發(fā)上岔帽,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天玫鸟,我揣著相機與錄音,去河邊找鬼犀勒。 笑死屎飘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的贾费。 我是一名探鬼主播钦购,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼褂萧!你這毒婦竟也來了押桃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤导犹,失蹤者是張志新(化名)和其女友劉穎唱凯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谎痢,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡磕昼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了节猿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片票从。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖滨嘱,靈堂內(nèi)的尸體忽然破棺而出峰鄙,到底是詐尸還是另有隱情,我是刑警寧澤太雨,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布先馆,位于F島的核電站,受9級特大地震影響躺彬,放射性物質(zhì)發(fā)生泄漏煤墙。R本人自食惡果不足惜梅惯,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仿野。 院中可真熱鬧铣减,春花似錦、人聲如沸脚作。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽球涛。三九已至劣针,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亿扁,已是汗流浹背捺典。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留从祝,地道東北人襟己。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像牍陌,于是被迫代替她去往敵國和親擎浴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 2017/3/14 RDBMS:關(guān)系型數(shù)據(jù)庫管理系統(tǒng) 關(guān)系模型獨立于語言 SQL有幾種不同類型的語言:數(shù)據(jù)定義語言...
    ancherl閱讀 1,589評論 0 6
  • MSSQL 跨庫查詢(臭要飯的!黑夜) 榨干MS SQL最后一滴血 SQL語句參考及記錄集對象詳解 關(guān)于SQL S...
    碧海生曲閱讀 5,557評論 0 1
  • MySQL5.6從零開始學 第一章 初始mysql 1.1數(shù)據(jù)庫基礎 數(shù)據(jù)庫是由一批數(shù)據(jù)構(gòu)成的有序的集合毒涧,這些數(shù)據(jù)...
    星期四晚八點閱讀 1,136評論 0 4
  • 常用語句: sql/plus sqlplus 'amdocs/Amdocs.Jx.China.110#@ysdb1...
    好好學習的蝸牛閱讀 2,965評論 0 0
  • 今天在杭州游覽了西湖贮预,去了宋城,觀看了宋朝千古情表演契讲,有馬不停蹄的趕到烏鎮(zhèn)仿吞,逛了一圈,緊接著飛奔上海怀泊,來到上海環(huán)球...
    輕描淡寫的小情緒晴閱讀 142評論 0 0