01 | MySQL數(shù)據(jù)庫搭建
安裝mysql(windows)
-
下載地址:https://dev.mysql.com/downloads/mysql/
-
選擇歷史版本(若想選擇歷史版本嫉拐,可切換到Archives頁簽)
-
解壓后無需安裝
-
新建data目錄和my.ini文件
配置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)境變量
- 以管理員身份打開cmd取刃,并cd到mysql的bin目錄
遇到問題:
解決方案:https://blog.csdn.net/weixin_42545675/article/details/104108216
-
執(zhí)行初始化命令:
mysqld --initialize --user=mysql --console
笔宿;生成臨時密碼(記住此密碼,第1次登錄時會用到)
遇到問題:
解決方案:
清空data目錄中所有文件 -
將mysql添加都服務:執(zhí)行
mysqld -install
遇到問題:
解決方案:
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文件-開始
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
啟動
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,修改配置如下
數(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ù)庫
定義
Neo4j是一個高性能的nosql圖形數(shù)據(jù)庫,它將結(jié)構(gòu)化數(shù)據(jù)存儲在網(wǎng)絡上而不是表中
下載安裝
安裝使用(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鏡像
- 地址:https://hub.docker.com/_/mysql
- 安裝命令
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ù)的校驗