------------------------------------------------------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