請自行查詢相關資料
npm install mysql
連線數據庫
var mysql = require('mysql');
//建立連線物件,並設定參數
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'nfq123456',
database : 'udata'
});
// 連線數據庫
connection.connect();
// 查詢數據庫
connection.query('select * from user', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results);
});
// 關閉連線,釋放資源
connection.end();
使用連線池,預設會在連線池中建立10個連線物件(connectionLimit),使用完成自動放回連線池,不需要手動關閉
var mysql = require('mysql');
//建立連線池
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'nfq123456',
database: 'udata',
multipleStatements: true
});
pool.query('select * from user', function(error, rows){
console.log(rows);
});
封裝模組
// 設定參數
// ...
module.exports = {
query: sql=>{
return new Promise((resolve,reject)=>{
pool.query(sql, function(err, rows){
if(err) return reject(err);
resolve(rows);
});
})
}
}
數據庫操作:
query(sql,callback)
insert into <表名> [(<欄位名1>[,..<欄位名n > ])] values ( 值1 )[, (值n )];
insert into MyGuests (firstname, lastname, email) values ('John', 'Doe', '[email protected]');
delete from <表名> where <條件>
--刪除MyGuests表中id爲1的數據
DELETE FROM MyGuests where id=1;
--刪除所有數據
DELETE FROM MyGuests
update <表名> set 欄位=新值,… where 條件
update MyGuests set name='Mary' where id=1;
select <欄位1, 欄位2, ...> from <表名> where <表達式>
--檢視錶 MyGuests 中所有數據
select * from MyGuests;
--檢視錶 MyGuests 中前10行數據:
select * from MyGuests order by id limit 0,10;
條件控制語句: WHERE
SELECT * FROM tb_name WHERE id=3;
MongoDB是一個基於分佈式檔案儲存的數據庫,由C++語言編寫,旨在爲WEB應用提供可延伸的高效能數據儲存解決方案,是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。它支援的數據結構非常鬆散,是類似json的bson格式
bson:是一種類json的一種二進制形式的儲存格式,簡稱Binary JSON
安裝mongodb預設自動設定環境變數,方便在命令列中使用相關命令
mongod.exe --dbpath D:\data\mongodb\db
啓動成功後,可通過 http://127.0.0.1:27017 存取,但關閉後每次存取都必須重複以上操作
設定爲 windows 服務,實現開機自動啓動Mongodb
systemLog:
destination: file
path: d:\data\mongodb\log\mongod.log
storage:
dbPath: d:\data\mongodb\db
mongod.exe --config c:\mongodb\mongod.cfg --service --serviceName MongoDB --install
PS: MongoDB4.0後預設安裝windows服務
輸入help可以看到基本操作命令
show dbs
use DBNAME
如果數據庫不存在,則建立數據庫,否則切換數據庫。
db
db.stats()
db.getMongo()
db.dropDatabase()
利用use DBNAME 切換到當前數據庫後,可以進行集合與文件的操作
建立集合:
db.createCollection(NAME)
;PS:只有建立了集合,數據庫才能 纔能真正成功建立
查詢所有集合:
show collections
刪除集合:
db.NAME.drop();
文件就是數據,這裏的所有操作都是針對數據,格式:db.NAME.方法()
db.user.insertOne({username:'fqniu'});
db.user.insertMany([{"username": 'fqniu'}, {'username': '小牛牛'}]);
當你插入一些文件時,MongoDB 會自動建立集合NAME
//更新指定欄位
//查詢name屬性爲fqniu的數據,並更新age屬性爲25
db.user.updateOne({name:'fqniu'},{$set:{age:25}})
// 找到所有年齡大於18的數據,並設定description爲成年
db.user.updateMany( { age: { $gt : 18 } } , { $set : { description : "成年"} } );
查(查詢數據):
db.NAME.find()
db.NAME.find(query)
db.NAME.findOne(query)
find()方法一般後一般使用toArray()方法把結果轉成陣列
//查詢user下所有數據
db.user.find().toArray((err,result)=>{});
// 查詢user下年齡爲38的
db.user.find({age:38}).toArray()
// 查詢user下年齡大於38的
db.user.find({age:{$gt:38}}).toArray()
//利用pretty()方法格式化結果
db.user.find().toArray().pretty();
$gt
$lt
$gte
$lte
$ne
$in/$nin
db.goods.find({id:{$in:[10,18,26,13]}})
db.user.find({$or:[{name:'fqniu'},{name:'牛牛'}]})
db.user.find({$or:[{age:{$gt:18}},{description:"成年"}]})
db.user.find({password:{$exists:true}}) //查詢屬性password存在的使用者
db.user.find({password:{$exists:false}}) //查詢屬性password不存在的數據
db.user.find({age:{$in:[null],$exists:true}}) //查詢age屬性存在但值爲null的數據
db.user.find({"name":/jack/i});//查詢name屬性包含jack的數據(不區分大小寫)
db.表名.find().limit(數量);
db.表名.find().skip(數量)
sort({key:1})
三個放在一起使用的時候,執行的順序是先 sort(), 然後是 skip(),最後是 limit()
// 把型別爲字String的價格按數位排序
db.goods.find().collation({numericOrdering:true}).sort({price:1})
// 根據某個值修改文件中的另一個值(把price的值改成sale_price的8折)
db.goods.find({price:0}).forEach(item=>{
db.goods.updateOne({_id:item._id},{$set:{price: item.sale_price*0.8}})
})
npm install mongodb --save
const mongodb = require('mongodb');
const MongoClient = mongodb.MongoClient;
//連線mongoDB
MongoClient.connect("mongodb://localhost:27017", function(err, client) {
if(err) throw err;
// 連線數據庫,無則自動建立
let db = client.db('userlist');
});
格式:db.createCollection(name, options)
db.collection(name)
格式:db.COLLECTION_NAME.drop(callback)
db.createCollection('site', function (err, res) {
if (err) throw err;
console.log("建立集合!");
db.close();
});
同上命令列操作 <文件操作(Document)>
導出mongoexport
把一個collection導出成JSON格式或CSV格式的檔案。可以通過參數指定導出的數據項,也可以根據指定的條件導出數據
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
mongoexport -d mytest -c goods -o D:/data/goods.json --type json -f "_id,name,price,img_url,add_time"
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
mongoimport -d mongotest -c goods --file D:/data/goods.json --type json
備份
格式:mongodump -h dbhost -d dbname -o dbdirectory
參數說明:
當然該目錄需要提前建立,這個目錄裏面存放該數據庫範例的備份數據。
mongodump -h 127.0.0.1:27017 -d mytest -o D:/mongodump/
恢復
格式:mongorestore -h dbhost -d dbname --dir dbdirectory
參數或名:
mongorestore -h 192.168.17.129:27017 -d mytest --dir D:/mongodump/
【實現需求】