15、nodejs(國慶+中秋)(17-26)

------------------------------------------------------17------------------------------------------------------------
數(shù)據(jù) - 數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫:
MySQL、Oracle、SQLServer、Access、db2、fox pro

MySQL:
免費、中小網(wǎng)站
優(yōu)點:性能非常不錯
缺點:集群、容災(zāi)稍微弱一些

Oracle:
挺貴、大型應(yīng)用、金融級
優(yōu)點:性能非常不錯、集群、容災(zāi)非常強
缺點:挺貴

文件型:
sqlite、mongodb

空間型:


Server端:
數(shù)據(jù)存在

Client端:
管理工具、Node


Server安裝


數(shù)據(jù)基本概念:
兩種單位:
1.庫:文件夾-用來管理,本身沒法存數(shù)據(jù)
2.表:文件-存數(shù)據(jù)的

表-Excel:
行-一條數(shù)據(jù)
列(字段、域)-一個數(shù)據(jù)項


用戶名
密碼

主鍵:唯一、性能高
唯一標(biāo)識符


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


庫-管理,存不了數(shù)據(jù)
表-存數(shù)據(jù)
字段-列
行-一條數(shù)據(jù)

-------------------------------------------------------------18----------------------------------------------------------
數(shù)據(jù)庫

NodeJS不支持MySQL

npm

服務(wù)端:
客戶端:
node的mysql模塊

1.連接
2.查詢

SQL=>Structured Query Language(結(jié)構(gòu)化查詢語句)

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標(biāo)準(zhǔn)寫法:
1.關(guān)鍵字大寫
2.庫、表、字段需要加上``


1.下載mysql模塊(client)
2.連接
var db=mysql.createConnection(host, port, user, password, database) //?
3.查詢
db.query(SQL, (err, data)=>{})
4.SQL語句
增刪改查

-------------------------------------------------------------19---------------------------------------------------------
數(shù)據(jù)字典——數(shù)據(jù)定出來

1.banner(banner_table)
ID
title 標(biāo)題 varchar(32)
sub_title 副標(biāo)題 varchar(16)
src 圖片地址 varchar(64)

2.文章(article_table)
ID
author 作者 varchar(16)
author_src 作者頭像 varchar(64)
title 標(biāo)題 varchar(32)
post_time 發(fā)布時間(s) int
content 內(nèi)容 text
n_like 贊 int

3.用戶(user_table)
ID
username 用戶名 varchar(32)
password 密碼 varchar(32)
src 頭像 varchar(64)
-------------------------------------------------------------24--------------------------------------------------------

數(shù)據(jù)庫:
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   聚類-合并相同

*統(tǒng)計每個班人數(shù)
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--------------------------------------------------------

數(shù)據(jù)庫

GROUP-合并

*統(tǒng)計每個班的平均分
>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.所有數(shù)據(jù)給前端
2.后臺只給一丁點數(shù)據(jù)

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.數(shù)據(jù)字典
2.后臺接口、靜態(tài)資源
3.angular


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容