15、nodejs(国庆+中秋)(17-26)

2018-01-01  本文已影响20人  夜幕小草

------------------------------------------------------17------------------------------------------------------------
数据 - 数据库

关系型数据库:
MySQL、Oracle、SQLServer、Access、db2、fox pro

MySQL:
免费、中小网站
优点:性能非常不错
缺点:集群、容灾稍微弱一些

Oracle:
挺贵、大型应用、金融级
优点:性能非常不错、集群、容灾非常强
缺点:挺贵

文件型:
sqlite、mongodb

空间型:


Server端:
数据存在

Client端:
管理工具、Node


Server安装


数据基本概念:
两种单位:
1.库:文件夹-用来管理,本身没法存数据
2.表:文件-存数据的

表-Excel:
行-一条数据
列(字段、域)-一个数据项


用户名
密码

主键:唯一、性能高
唯一标识符


server:
client:
Navicat-管理工具
NodeJS-程序


库-管理,存不了数据
表-存数据
字段-列
行-一条数据

-------------------------------------------------------------18----------------------------------------------------------
数据库

NodeJS不支持MySQL

npm

服务端:
客户端:
node的mysql模块

1.连接
2.查询

SQL=>Structured Query Language(结构化查询语句)

SQL:
4大查询语句——增删改查

增-INSERT
INSERT INTO 表 (字段列表) VALUES(值列表)
INSERT INTO user_table (ID, username, password) VALUES(0, 'blue2', '987654');

删-DELETE

改-UPDATE

查-SELECT
SELECT 什么 FROM 表
SELECT * FROM user_table;

SQL标准写法:
1.关键字大写
2.库、表、字段需要加上``


1.下载mysql模块(client)
2.连接
var db=mysql.createConnection(host, port, user, password, database) //?
3.查询
db.query(SQL, (err, data)=>{})
4.SQL语句
增删改查

-------------------------------------------------------------19---------------------------------------------------------
数据字典——数据定出来

1.banner(banner_table)
ID
title 标题 varchar(32)
sub_title 副标题 varchar(16)
src 图片地址 varchar(64)

2.文章(article_table)
ID
author 作者 varchar(16)
author_src 作者头像 varchar(64)
title 标题 varchar(32)
post_time 发布时间(s) int
content 内容 text
n_like 赞 int

3.用户(user_table)
ID
username 用户名 varchar(32)
password 密码 varchar(32)
src 头像 varchar(64)
-------------------------------------------------------------24--------------------------------------------------------

数据库:
SQL
四大操作语句-
1.删 DELETE
DELETE FROM 表 WHERE 条件

2.增 INSERT
INSERT INTO 表 (字段列表) VALUES(值列表)

3.改 UPDATE
UPDATE 表 SET 字段=值,字段=值,... WHERE 条件

4.查 SELECT
SELECT * FROM 表 WHERE 条件

------------------------------------------------------------------------------

子句:
WHERE 条件

WHERE name='blue'
WHERE age>18
WHERE age<=18
WHERE age>=18 AND score<60
WHERE cach>100 OR score>10000

ORDER 排序
ORDER BY age ASC/DESC
  ASC-升序(从小到大)
  DESC-降序(从大到小)

--------------------------

ORDER BY price ASC

*价格(price)升序排序,如果价格相同,再按销量(sales)降序排序
ORDER BY price ASC, sales DESC

--------------------------

GROUP   聚类-合并相同

*统计每个班人数
ID  class   name
"1" "1" "小明"
"2" "2" "小红"
"3" "1" "小刚"
"4" "2" "小华"
"5" "3" "小强"
"6" "3" "小四"
"7" "1" "小刘"
"8" "1" "小花"

SELECT * FROM student_table;
ID  class   name
"1" "1" "小明"
"2" "2" "小红"
"3" "1" "小刚"
"4" "2" "小华"
"5" "3" "小强"
"6" "3" "小四"
"7" "1" "小刘"
"8" "1" "小花"

SELECT * FROM student_table GROUP BY class;
ID  class   name
"1" "1" "小明"
"2" "2" "小红"
"5" "3" "小强"

SELECT class FROM student_table GROUP BY class;
class
"1"
"2"
"3"

SELECT class,COUNT(class) FROM student_table GROUP BY class;
class   COUNT(class)
1   4
2   2
3   2

--------------------------

WHERE子句
ORDER子句——多条件排序
GROUP子句——合并
  COUNT、MIN、MAX、AVG

--------------------------

GROUP

-------------------------------------------------------------25--------------------------------------------------------

数据库

GROUP-合并

*统计每个班的平均分
>SELECT * FROM student_table;
ID  class   name    score
1   1   小明  34
2   2   小红  98
3   1   小刚  26
4   2   小华  99
5   3   小强  18
6   3   小四  95
7   1   小刘  57
8   1   小花  100

>SELECT * FROM student_table GROUP BY class;
ID  class   name    score
1   1   小明  34
2   2   小红  98
5   3   小强  18

>SELECT class,AVG(score) FROM student_table GROUP BY class;
class   score
1   54.25
2   98.5
3   56.5

*每个班级的最高、最低分
>SELECT class,MAX(score),MIN(score) FROM student_table GROUP BY class;
ID  class   name    score
1   1   小明  34
2   2   小红  98
3   1   小刚  26
4   2   小华  99
5   3   小强  18
6   3   小四  95
7   1   小刘  57
8   1   小花  100

------------------------------------------------------------------------------

*每个人的消费总额
ID  name    price
1   blue    3
2   blue    5
3   张三  28000
4   李四  81000
5   blue    4
6   张三  46000
7   李四  38000
8   赵六  18

SELECT name,SUM(price) FROM sales_table GROUP BY name;

SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) DESC;
name    SUM(price)
李四  119000
张三  74000
赵六  18
blue    12

SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) ASC;

------------------------------------------------------------------------------

WHERE
ORDER
GROUP
*LIMIT-分页

-------------------------------------------------------------26--------------------------------------------------------
LIMIT-限制输出

分页:
1.所有数据给前端
2.后台只给一丁点数据

LIMIT 10; 前10条
LIMIT 5,8; 从5开始,要8个

分页:
每页20条

第1页 0,20 0~19
第2页 20,20 20~39
第3页 40,20
第n页 (n-1)*20,20


子句之间是有顺序
WHERE GROUP ORDER LIMIT
筛选 合并 排序 限制

SELECT class,COUNT(class) FROM student_table
WHERE score>60
GROUP BY class
ORDER BY COUNT(class) DESC
LIMIT 2;


1.数据字典
2.后台接口、静态资源
3.angular


上一篇下一篇

猜你喜欢

热点阅读