Node09 - MySQL

一、數據基本概念:javascript

  (01)、兩種單位html

        一、庫:文件夾 - 用來管理,自己無法存數據java

        二、表:文件 - 存數據的node

  (02)、表 => Excel
mysql

      一、行  --  一條數據sql

      二、列  -- (字段、域)一個數據項數據庫

二、基本用法express

  (01)、先建庫再建表npm

  (02)、名、類型、長度、小數點、不是null服務器

  (03)、主鍵:惟一標識符(特色:惟一的、性能高

三、下載MySQL依賴  =>  npm(或cnpm)   -i   mysql

四、SQL  =>  結構化查詢語句   標準:一、關鍵字大寫;二、庫、表、字段須要加上 ``

  (01)、增 - INSERT  

        語法:INSERT INTO 表名稱 VALUES (值1, 值2,....)

        INSERT  INTO 表 (字段列表) VALUES(值列表)

        例子:INSERT  INTO `user_table` ( `ID`, `username`, `password` )  VALUES  ( 0, 'bule2', '123456' ); 

  (02)、刪 - DELETE 語句用於刪除表中的行

        語法:DELETE FROM 表名稱 WHERE 列名稱 = 值

  (03)、改 - UPDATE 語句用於修改表中的數據

        語法:UPDATE 表名稱 SET  列名稱  = 新值  WHERE 列名稱  = 某值

  (04)、查 - SELECT

        語法:SELECT 列名稱 FROM 表名稱

        SELECT  選擇什麼  FROM  表

        例子:SELECT  *(*: 表明全部)  FROM user_table

        例子:SELECT * FROM article_table WHERE ID=${req.query.id}(當ID和地址欄的id相等時)

  (05)、運算符  -  SQL AND & OR 

        AND 和 OR 運算符用於基於一個以上的條件對記錄進行過濾。

        AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。

        若是第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。

        若是第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。

  (06)、排序  -  ORDER BY 語句用於對結果集進行排序。

        ORDER BY 語句

        ORDER BY 語句用於根據指定的列對結果集進行排序。

        ORDER BY 語句默認按照升序對記錄進行排序。

        若是您但願按照降序對記錄進行排序,可使用 DESC 關鍵字。

  (07)、聚類 - GROUP   合併相同 

        例子:查看班級出現次數,COUNT:計數

        SELECT class,COUNT(class)FROM student_table GROUP BY class;

//nodejs 代碼
const mysql = require('mysql');
//一、鏈接
//createConnection(哪臺服務器,用戶名,密碼,數據庫名)
var db = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '123456',
    database: '20171215',
  charset: "UTF8_GENERAL_CI", // 字符編碼 ( 必須大寫 )
  typeCast: true, // 是否把結果值轉換爲原生的 javascript 類
  supportBigNumbers: true, // 處理大數字 (bigint, decimal), 須要開啓 ( 結合 bigNumberStrings 使用 )
  bigNumberStrings: true, // 大數字 (bigint, decimal) 值轉換爲javascript字符對象串
  multipleStatements: false, // 容許每一個mysql語句有多條查詢, 未防止sql注入不開啓
  //connectTimeout: 5000, // 數據庫鏈接超時時間, 默認無超時
}); //二、查詢 //query(查詢操做(刪除、添加、修改),回調) //"":SQL 語句
db.query("SELECT * FROM user_table12", function(err, data){ if (err){ console.log('請求出錯!', err); }else{ console.log('請求成功!', data); } });

五、nodejs中MySQL實例:

一、MySQL表

 

//nodejs 代碼
const express = require('express');
const static = require('express-static');
const cookieParser = require('cookie-parser');
const cookieSession = require('cookie-session');
const bodyParser = require('body-parser');
const ejs = require('ejs');
const consolidate = require('consolidate');
const multer = require('multer');
const mysql = require('mysql');

//鏈接數據庫
const db = mysql.createConnection({host: 'localhost', user: 'root', password: '123456', database: 'blog'});

var server = express();
server.listen(8080);

//一、解析cookie
server.use(cookieParser('fjalskdjasdoasjdlaskd'));
//二、使用session
var arr = [];
for (var i=0; i<100000; i++){
    arr.push('win_bin' + Math.random());
}
server.use(cookieSession({name: 'bin_win', keys: arr, maxAge: 20*3600*1000}));
//三、post數據
server.use(bodyParser.urlencoded({extended: false}));

//四、配置模板
//4.一、輸出什麼東西
server.set('view engine', 'html');
//4.二、模板輸出放在哪
server.set('views','./views');
//4.三、以哪一種模板形式輸出
server.engine('html', consolidate.ejs);
//4.四、接受用戶數據
server.get('/', function (req, res) {
    //查詢數據庫
    db.query('SELECT * FROM banner_table', function (err, data) {
        if (err){
            console.log(err);
            res.status(404).send('訪問數據庫錯誤'+err);
        }else {
            console.log(data);
            res.render('index.ejs', {banners: data});
        }
    });
});

//五、static數據
server.use(static('./www'));

ejs代碼

  <% for (var i=0; i<banners.length; i++) { %>
                <li><img src="<%= banners[i].src %>" alt=""/>
                    <div class="text-box">
                        <h2><%= banners[i].title %></h2>
                        <p><%= banners[i].sub_title %> / 文</p>
                    </div>
                </li>
            <% } %>
相關文章
相關標籤/搜索