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