MySQL 的服務器
-
下載地址:
- https://dev.mysql.com/downloads/mysql/5.7.html#downloads
-
MySQL 安裝與配置
-
準備工作
在 C 盤根目錄建立目錄: c:\develop
-
解壓並移動位置
解壓縮 mysql-5.7.23 的壓縮包,將其中的
mysql-5.7.23-xxxxx
目錄移動到C:\develop
目錄下並把名字修改爲mysql
-
MySQL 的配置文件 my.ini
在
c:\develop\mysql
目錄下新建一個my.ini
的配置文件[mysqld] # MySQL 安裝目錄 basedir=C:/develop/mysql # 數據文件所在目錄 datadir=C:/develop/mysql/data character-set-server=utf8 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
-
以管理員身份運行 CMD 執行以下命令,安裝一個 MySQL 服務
# 定位到安裝目錄下的 bin 文件夾 # cd <MySQL安裝目錄>\bin cd c:\develop\mysql\bin # 初始化數據所需文件以及獲取一個臨時的訪問密碼 mysqld --initialize --user=mysql --console
初始化成功如下圖:記下臨時密碼(只能使用一次)
-
```
# 將 MySQL 安裝爲服務 可以指定服務名稱
mysqld --install MySQL
# 沒有以管理員的身份運行命令行
# 安裝失敗提示:Install/Remove of the Service Denied!
# 安裝成功後,啓動 MySQL 服務器
net start MySQL
```
-
重置 MySQL 密碼
# 先通過用戶名密碼進入 MySQL 操作環境 mysql -u root -p Enter password: # 輸入臨時密碼 # 設置數據庫訪問密碼,一定要加分號 mysql> set password for root@localhost = password('*******');
MySQL 的客戶端
- 數據庫的客戶端 Navicat
- 使用 Navicat 創建數據庫
- 使用 Navicat 創建表,添加數據
SQL
要在程序中對數據庫進行操作需要 SQL 語句
-
什麼是 SQL
- SQL 指結構化查詢語言
- SQL 使我們有能力訪問數據庫
- 參考網站
-
增刪改查
-
插入數據
INSERT INTO users (uname, upwd, uqq) values('zs','123', '12345') INSERT INTO posts SET uname='zs', upwd='123', uqq='12345' -- 如果是所有列,可以省略列名稱,不推薦 INSERT INTO users values('zs','123', '12345')
-
修改數據
UPDATE users SET uname='zsxxx', uqq='111' WHERE uid=1
-
刪除數據
DELETE FROM users WHERE uid = 1 -- 不帶條件刪除表中所有數據,禁止使用 DELETE FROM users
-
查詢數據
SELECT * FROM users
-
查詢
-
條件查詢
SELECT * FROM users WHERE uname='zs' AND uname='000000' SELECT * FROM users WHERE uname='zs' OR uname='ls'
下面的運算符可在 WHERE 子句中使用:
操作符 描述 = 等於 <> 不等於 > 大於 < 小於 >= 大於等於 <= 小於等於 BETWEEN 在某個範圍內 LIKE 搜索某種模式 -
模糊查詢
SELECT * FROM users WHERE uname like '%s%'
-
in 語句
SELECT * FROM users WHERE uname in ('zs','ls')
-
排序
order by 要寫在 sql 語句的最後
-- asc 升序 desc 降序 SELECT * FROM users ORDER BY DESC SELECT * FROM users WHERE uage > 18 ORDER by desc
-
限制查詢條數
-- 取前3條數據 SELECT * FROM users LIMIT 3 -- 降序後去3條數據 SELECT * FROM users ORDER BY DESC LIMIT 3 -- 跳過3條,取2條 SELECT * FROM users ORDER BY DESC LIMIT 3,2
-
獲取總條數
SELECT COUNT(*) FROM users
-
表連接
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
Node.js 中操作 MySQL
使用 mysql 第三方包
https://github.com/mysqljs/mysql
安裝
npm install mysql
Hello World
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
connection.end();
增刪改查
查詢
基本查詢:
connection.query('SELECT * FROM `books` WHERE `author` = "David"', function (error, results, fields) {
// error will be an Error if one occurred during the query
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
});
條件查詢:
connection.query('SELECT * FROM `books` WHERE `author` = ?', ['David'], function (error, results, fields) {
// error will be an Error if one occurred during the query
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
});
添加
var post = {id: 1, title: 'Hello MySQL'};
var query = connection.query('INSERT INTO posts SET ?', post, function (error, results, fields) {
if (error) throw error;
// Neat!
});
console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL'
刪除
connection.query('DELETE FROM posts WHERE title = "wrong"', function (error, results, fields) {
if (error) throw error;
console.log('deleted ' + results.affectedRows + ' rows');
})
修改
connection.query('UPDATE users SET foo = ?, bar = ?, baz = ? WHERE id = ?', ['a', 'b', 'c', userId], function (error, results, fields) {
if (error) throw error;
// ...
})
封裝 dbHelper.js
const mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
user : 'root',
password : 'root',
database : 'guestbook'
});
exports.query = (sql, params, callback) => {
connection.connect();
connection.query(sql, params, function (error, results, fields) {
callback(error, results, fields);
});
connection.end();
};