### MySQL服務器提供數據管理服務
1. GUI
2. CUI
3. 程序連接( Node PHP JAVA )提供的API連接管理數據庫
### MySQL嚴格意義上來說并不是一個數據庫,它是一個數據庫管理軟件,里面提供了很多的東西
1. 安裝目錄mysql.exe用來連接數據庫服務器 ./mysql -uroot -p
2. 顯示數據庫表:show databases;
| information_schema | 數據庫內置表,不能改動
| mysql | 數據庫內置表,不能改動
| performance_schema | 數據庫內置表,不能改動
| phpmyadmin |
| test |
3. 創建數據庫:create database name;
4. 操作數據庫:use first;
5. 查看表:show tables;
6. 選擇表中的某一項數據:select * from users; select * from users where gender="男"
### Navicat:GUI圖形操作軟件
1. 連接主機填寫對應的服務器IP地址,本機填寫本機
2. 客戶端裝客戶端連接軟件,服務器提供服務,可以不需要安裝
### 數據庫的組成
1. 數據庫是由表組成的,表是由行和列組成的
2. MySQL維護著各種各樣的數據庫,比如商城數據庫,博客數據庫,MySQL是數據庫的集合,數據庫是表的集合,表是行和列的集合
### Node程序連接數據庫
1. Node并未原生提供連接數據庫的API,使用第三方模塊進行連接
2. mysql2:Node連接數據庫模塊
const connection = mysql.createConnection(opt) 創建連接
connection.query('SELECT username,age,gender FROM tableName ORDER BY id DESC') 查詢表數據,并按id序
connection.query('INSERT INTO todo (title,done) VALUES ("'+ title + '", 0)') 插入數據
connection.close() 關閉數據庫連接
3. 查詢數據庫是耗時操作,需要使用異步操作
4. 數據庫分頁查詢原理:LIMIT OFFSET
### 數據庫相關命令
1. ORDER BY:排序
2. DESC:降序
3. ASC:升序:默認
4. LIMIT 3:限制三條數據
5. OFFSET 1:偏移1條數據,使用限制:必須配合LIMIT使用,單獨使用無效
6. LIMIT OFFSET聯合書寫:limit 4, 2:OFFSET在前,LIMIT在后
6. WHERE done = 1:根據條件進行查詢
7. 查詢參數:??:表示表名或字段名 ?:表示值
8. UPDATE tableName SET property=newval:更新值
9. DELETE FROM tableName WHERE id= 1:刪除值,特別注意,不帶where會刪整個庫
10. SELECT DISTINCT done FROM todos:篩選狀態,查詢某個字段有幾種狀態
11. 多條件排序:ORDER BY id DESC, done ASC:先按ID降序,再按done升序
12. 模糊查詢:Jack%開頭 %Jack結尾 %Jack%包含Jack
SELECT * FROM TODO WHERE title LIKE '%koa%' || NOT LIKE 不相同
13. 批量處理: UPDATE TODO SET done=1 WHERE id in (3,6)