mysql数据库
mysql
所有的关于数据库的操作,都是基于MySql的运行
数据持久化保存
- 服务端
数据库:MySql、MongoDB、redis、oracle
文件存储:fs - 客户端
本地缓存:localstroage、sessionstorage、cookie…
数据库
Database 是按照数据结构来组织、储存和管理数据的仓库
数据库操作
推荐大写;小写不稳定,会有错误;记得写分号
- 关联数据库
前往数据库安装位置去操作数据库
C:\Program Files\MySQL\MySQL Server 8.0\bin => cmd => mysql -u root -p =>
密码( 输入自己的数据库密码 ) => 关联数据库
( USE 数据库名 ) 进入指定的数据库 => 小黑屏幕操作数据表 => 操作结束退出数据库 quit; 退出数据库 - 创建
CREATE DATABASE 数据库名; - 显示数据库
SHOW DATABASES; - 查看数据库信息
SHOW CREATE DATABASE 数据库名; - 修改数据库编码
ALTER DATABASE 数据库名 CHARACTER SET = utf8; - 删除数据库
DROP DATABASE 数据库名;
借助Navicat(兔子)进行数据表可视化操作
连接数据库; 连接 ---- 选定数据库方式 ----连接名(随意,建议与数据库名一致) 密码
双击图标才会变绿连接
数据库增表
操作数据表
-
增
INSER INTO 表名 (字段⼀,字段⼆,字段三) VALUES (“值⼀”,“值⼆”,“值三”); -
删
DELETE FROM 表名 WHERE 条件; -
改
UPDATE 表名 SET 设置的内容 WHERE 条件语句; -
查
SELECT 字段 FROM 表名 WHERE 条件语句; -
联表查询
附表 LEFT JOIN 主表 ON 连接条件
"SELECT pr.name,user.name FROM pr LEFT JOIN user ON user.id=pr.id " -
条件语句
年龄大于21 且 姓志的数据
"SELECT * FROM user WHERE age>21 AND username LIKE ‘志%’ ";年龄的顺序 排列的数据
ORDER BY 条件 ASC 正序(默认 可省略)
ORDER BY 条件 DESC 倒序
"SELECT * FROM user WHERE age>20 ORDER BY age ASC ";限制查询 LIMIT ( 分页 ) 跳过 2 条数据,要3条数据
"SELECT * FROM user LIMIT 2,3 "别名: AS
“SELECT un.name,un.age FROM user AS un”;
后端使用数据库示例
- 连接数据库
// 数据库模板
const mysql = require("mysql2");
// 配置和数据库之间的连接
const connection = mysql.createConnection({
host:"localhost",
user:"root",
password:"123123",
database:"my_try",
charset:"utf8"
})
router.get("/index",async ctx=>{
let mydata;
let sql = "INSERT INTO user (username,age,hobby) VALUES (?,?,?)";
// ?,?,? 占位符,防止恶意破坏入侵
try{
let [rows] = await connection.promise().query(sql,[username,age,hobby]);
mydata = rows;
}catch(err){
console.log(err)
}
// ctx.body = mydata;
await ctx.render("index",{
mydata
})
})