今天結束的挺早,因為今天的內容還可以不是很難,今天全程是學了一些關于mysql資料庫和sql查詢陳述句的內容包括在node終端里面怎么來連接資料庫,經過今天的一個學習,我感覺離那個地步越來越近了,就是那個自己完成一個網站,有服務器、有回應,就跟現在這些上線的網站一樣一樣的,越來越近了,
1.
這些內容其實上學期間就學過了,現在主要是拿來復習一下,
首先我們先了解一下資料庫的基本概念,用來組織、存盤,管理資料的倉庫,
我們傳統型資料庫(mysql、sql、Oracle)的一個資料結構為:資料庫》資料表》資料行》欄位
庫、表、行、欄位之間的一些關系:
①每個專案都有獨立的資料庫檔案
②不同的資料要放在不同的表中,比如一個用戶資訊就應該放到user表中
③每個表要存放哪些資訊是由欄位來決定的
④表中的行代表一條具體的資料
1.1
安裝配置mysql,其實還是有一些步驟的,建議baidu就不多贅述了這里,
然后裝好后用workbench去創建一個資料庫再去創建一個表這個時候就有一些資料型別參考了,常見的int整數型,varchar字串型、tinyint是布林值
包括還有一些特殊標識,pk代表主鍵具有唯一標識,nn是not null不能為空值,uq是值唯一,ai是值會自增
1.2
上面是通過用那個工具去寫一些資料進去,但是我們是程式員那肯定是要用代碼來實作的,sql結構化查詢語言來了,專門搞資料庫的語言,
無非就是四個增刪改查,我說一下一些注意點,然后就可以看代碼就行了,
首先是增這里的列名和值必須要一一對應就沒有了
-- 通過 * 把 users 表中所有的資料查詢出來 -- select * from users -- 從 users 表中把 username 和 password 對應的資料查詢出來 -- select username, password from users -- 向 users 表中,插入新資料,username 的值為 tony stark password 的值為 098123 -- insert into users (username, password) values ('tony stark', '098123') -- select * from users -- 將 id 為 4 的用戶密碼,更新成 888888 -- update users set password='888888' where id=4 -- select * from users -- 更新 id 為 2 的用戶,把用戶密碼更新為 admin123 同時,把用戶的狀態更新為 1 -- update users set password='admin123', status=1 where id=2 -- select * from users -- 洗掉 users 表中, id 為 4 的用戶 -- delete from users where id=4 -- select * from users -- and運算子 -- select * from users where id = 1 and username = '2' -- select * from users where id = 1 or username = '2' -- oder by -- select * from users order by id desc -- count select count(*) as total from users where status = 0
1.3
看到mysql模塊
怎么在專案中來操作一個mysql
首先要安裝通過npm然后要配置來連接那個資料庫,再去執行一些陳述句,主要實作的功能還是一個增刪查改
注意
查:回傳的是一個陣列
增:sql陳述句中用?先來作為占位符先不填充資料,后面的也是這樣,回傳的是一個物件,里面有一個屬性affectedRows也就是被影響的行,要等于一這個操作才能被算作生效,
然后由于我們的id具有唯一標識性,所以如果你刪了4,又去增加一個那么他的id是5不是4,增有便捷版操作
改:也有便捷版,也回傳的是一個物件,注意他的便捷版的where條件不能夠省略
刪:推薦以id這個唯一識別符號作為條件來洗掉,然后我們delete就是真的從資料庫洗掉了,其實是有點危險的,因為萬一用戶反悔了想恢復回來,這個時候就沒辦法了,所以我們一般是用標記洗掉,也就是通過update來改類似于status的值來達到一個模擬洗掉的操作,并沒有真正從資料庫洗掉
// 1. 前面如果通過npm安裝了mysql第三方包后,就需要配置一下mysql模塊了 // 首先是匯入 const mysql = require('mysql') // 通過mysql.createPool來配置 const db = mysql.createPool({ host : '127.0.0.1', // 資料庫的ip地址 user : 'root' , // 登錄資料庫的賬號 password : 'admin123', // 登錄資料庫密碼 database : 'my_db_01' // 指定要操作哪個資料庫 }) // 2.測驗mysql // select 1 沒有任何作用只是可以測驗是否連接成功 db.query('select 1' ,(err, results) => { if (err) return err.message return console.log(results); }) // 3. 查詢資料 db.query('select * from users', (err, results) => { if (err) return err.message return console.log(results); }) // 4.插入資料 /* let obj = { username : '流星', password : '653213' } */ // 4.1注意sql陳述句中可用?來占位 /* let insertStr = 'insert into users(username, password) values (?,?)' // 4.2使用陣列的形式可以依次去填補?里面的值 db.query(insertStr, [obj.username, obj.password] ,(err, results) => { if (err) return err.message // 4.3用到rsults的一個屬性 表示影響的行數,只有當為一才表示真正的插入成功了 if (results.affectedRows == 1) return console.log('資料添加成功'); }) */ // 4.2插入資料便捷版 /* let obj = { username : 'jj', password : '653213' } let insertStr = 'insert into users set ?' // 4.2使用陣列的形式可以依次去填補?里面的值 db.query(insertStr, obj ,(err, results) => { if (err) return err.message // 4.3用到rsults的一個屬性 表示影響的行數,只有當為一才表示真正的插入成功了 if (results.affectedRows == 1) return console.log('資料添加成功'); }) */ // 5.改資料 /* let user = {username : '姐姐', password : '1243333', id : '9'} let updateStr = 'update users set username = ? , password = ? where id = ?' db.query(updateStr, [user.username, user.password, user.id], (err, results) => { if (err) { return err.message } else if (results.affectedRows == 1) { return console.log('更新資料成功'); } }) */ // 5.1便捷版 /* let user = {username : '姐姐', password : '1243333', id : '9'} let updateStr = 'update users set ? where id = ?' db.query(updateStr, [user, user.id], (err, results) => { if (err) { return err.message } else if (results.affectedRows == 1) { return console.log('更新資料成功'); } }) */ // 6.洗掉資料 let deleteStr = 'delete from users where id = ?' db.query(deleteStr, 9, (err, results) => { if (err) { return err.message } else if (results.affectedRows == 1) { return console.log('洗掉資料成功'); } })
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/458308.html
標籤:其他
