一、數據基本概念: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> <% } %>