MySQL 的服務器 使用

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();
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章