其中,MySOL\Oracle\SQL Server屬於傳統型數據庫(關系型數據庫)
Mongodb又稱作非關系型數據庫,在一定程度上彌補了傳統型數據庫的缺陷。
傳統數據庫的組織結構:數據庫、數據表、數據行、字段(相當於列 )
字段的特殊標識:
PK(primary Key)主鍵、唯一標識
NN(not Null)值不允許為空
UQ(unique)值唯一
A I(Auto Increment)值自動增長
SQL語句
-- 通過*把表中的數據查詢出來
select * from users;
-- 從users表中把username和password對應的數據查詢出來
select usrname,password from users;
-- 插入一條記錄
-- insert into users (usrname,password) values('tony','123456');
-- 修改記錄內容
-- update users set password='99999' where id=4;
-- 更新某一行的若干列
-- update users set password='987654321' ,status=1 where id=2;
-- 刪除某行記錄
-- delete from users where id=7;
WHERE子句
select * from users where status =1;
select * from users where id<>2;
select * from users where usrname ='ss’;
select * from users where id>3;
AND 和 OR運算符
select * from users where status=0 and id<4;
select * from users where status=1 or usrname='ss’;
Order by子句
-- 對users表中的數據,按照id字段進行降序排序--
select * from users order by id desc;
默認升序asc
select * from users order by id ;
多重排序
-- 對users表中的數據,先按照status降序,再按照username升序
select * from users order by status desc,usrname asc;
COUNT(*)函數
統計數據條數
-- 使用count(*)統計users表中,狀態為0的用戶數量
select count(*) from users where status=0;
用AS為列設置別名
select count(*) as total from users where status=0;
在項目中操作MySQL
首先建立數據庫連接
//導入mysql模塊 const mysql = require('mysql'); //建立數據庫鏈接關系 const db = mysql.createPool({ host: 'localhost',//數據庫的ip地址 user: 'root',//登陸數據庫的賬號 password: '999813sch',//登陸數據庫的密碼 database: 'my_newdb'//指定要操作那個數據庫 });
進行測試,看數據庫是否正常工作
// //測試模塊是否正常工作 db.query('select 1', (err, results) => { if (err) { return console.log(err.messsge); } console.log(results); })
查詢功能
//1.查詢users表中的所以數據 const sqlstr = "select * from users"; db.query(sqlstr, (err, results) => { if (err) { //查詢失敗 return console.log(err.messsge); } //查詢成功 //如果是執行的select語句,則執行結果是數組 console.log(results); })
終端node運行js文件
查詢結果
shuchenhao@shuchenhaodeMacBook-Air DB % node 1操作數據庫.js
[
RowDataPacket { id: 1, usrname: 'zs', password: '123456', status: 0 },
RowDataPacket { id: 2, usrname: 'ss', password: '111', status: 0 },
RowDataPacket { id: 3, usrname: 'www', password: '1', status: 0 }
]
//插入數據 // const user = { usrname: 'spiderman', password: 'spiderman' }; // //定義執行的sql語句 // const sqlstr1 = "insert into users (usrname,password) values (?,?)"; // //執行sql語句 // db.query(sqlstr1, [user.usrname, user.password], (err, results) => { // if (err) { // //插入失敗 // return console.log(err.messsge); // }; // // if (results.affectedRows === 1) { // // console.log('插入數據成功'); // // } // console.log('插入數據成功'); // })
簡潔方法
//插入數據 const user = [1, 'spiderman', '123', 1]; //定義執行的sql語句 const sqlstr1 = "insert into users values(?,?,?,?);"; //執行sql語句 db.query(sqlstr1, user, (err, results) => { if (err) { //插入失敗 return console.log('插入失敗' + err.messsge); results; }; console.log('插入數據成功'); })
// //更新用戶信息 const user1 = { id: 2, username: 'aaa', password: '0000' }; //定義sql語句 const sqlstr = "update users set username=?, password=? where id=?"; //執行sql語句 db.query(sqlstr, [user1.username, user1.password, user1.id], (err, results) => { if (err) { return console.log(err.message); } // if (results.affectedRows == 1) { // console.log('更新成功'); // } console.log('更新成功'); })
//刪除 const sqlstr = 'delete from users where id=1'; db.query(sqlstr, (err, results) => { if (err) { return console.log("刪除失敗" + err.message); } console.log('刪除數據成功'); })