一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情。
什么是数据库?
数据库 (database) 是用来组织、存储和管理数据的仓库。
当今世界是一个充满着数据的互联网世界,充斥着大量的数据。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数据进行新增、查询、更新、删除等操作。MySQL 数据库(目前使用最广泛、流行度最高的的开源免费数据库)
我们作为前端开发人员,不需要像后端那样对数据库掌握的那么深,但是基本的连接数据库,增删改查的操作是需要我们掌握的
查询数据
基本的查询语法
SELECT 字段1,字段2,... FROM 表名
不区分大小写
select 字段,字段,.... from 表名
查询所有的字段
SELECT * FROM 表名
带条件的查询
SELECT * FROM 表名 [WHERE 条件] [ORDER BY 排序字段[, 排序字段]] LIMIT [开始位置,]长度
例1: 查询所有学生的姓名和年龄
select username,age from student
例2: 查询全部学生的全部信息
select * from student
带条件的查询
语法:select 字段 from 表名 **where 条件**
查询id小于10的学生
select * from student where 条件
select * from student where id<10
查询id小于20的女学生
select * from student where id<20 and sex='女'
查询年龄大于等于20小于等于30的学生
select * from student where age>=20 and age<=30
对查询结果排序
- 升序 asc (默认值)
- 降序 desc
对查询结果进行排序
查询所有的同学,并按年龄升序排序
select * from student order by age asc
select * from student order by age
查询所有的同学,按年龄降序排序
select * from student order by age desc
查询所有的同学,按年龄降序排序,如果年龄相同,按id降序排序
select * from student order by age desc, id desc
如果SQL中既有条件、又有排序,必须先写条件
查询所有的男同学,并按年龄升序排序
select * from student where sex='男' order by age asc
注意:如果SQL语句中,有where和order by,where一定要放到order by之前。
添加数据
语法: insert into 表名 set 字段=值, 字段=值
insert into 表名 set 字段=值, 字段=值, ....
insert into student set age=30, sex='男', username='李青'
修改数据
语法:update 表名 set 字段=值, 字段=值,...... where 修改条件
注意点:不指定修改条件会修改所有的数据
修改id为11的数据
update student set age=20, sex='女' where id=11
没有指定条件,全部的数据都会修改
update student set age=25, sex='女'
删除数据
语法:delete from 表名 where 删除条件
注意点:不指定条件将删除所有数据
删除一条数据
delete from student where id=11
删除满足条件的数据
delete from student where id>6
没有指定条件,删除全部数据
delete from student
数据在数据库中保存着,但用户应该在浏览器界面上看到数据,这就需要使用 JS 代码,将数据库中的数据查询出来。mysql模块是一个第三方模块,专门用来操作MySQL数据库。 可以执行增删改查操作
先下载MySQL模块
npm i mysql
使用步骤
- 加载 MySQL 模块
- 创建 MySQL 连接对象
- 连接 MySQL 服务器
- 执行SQL语句
- 关闭链接
// 1. 加载mysql模块
const mysql = require('mysql');
// 2. 创建连接对象(设置连接参数)
const conn = mysql.createConnection({
// 属性:值
host: 'localhost',
port:8888,//端口名
user: 'root',
password: '密码',
database: '数据库名'
});
// 3. 连接到MySQL服务器
conn.connect();
// 4. 完成查询(增删改查)
conn.query(SQL语句, (err, result) => {
err: 错误信息
result: 查询结果
});
// 5. 关闭连接,释放资源
conn.end();
真实案例使用
const mysql = require('mysql')
const conn = mysql.createConnection({
host: 'localhost',
port:3306,
user:'root1',
password:'123456',
database:'student'
})
conn.connect()
let sql = 'select * from student'
conn.query(sql,(err,result) =>{
if(err===null){
console.log(result)
}else{
console.log(err)
}
})
conn.end()
平时在使用时,我们一般都会封装mysql,然后导出
传入sql语句和函数
module.exports = function (sql, callback) {
const mysql = require('mysql');
const conn = mysql.createConnection({
host: 'localhost',
port:3306,
user:'root1',
password:'123456',
database:'student'
});
conn.connect();
// 完成增删改查
conn.query(sql, callback);
conn.end();
}
创建一个文件,试试封装的函数
// 加载自定义模块
const db = require('./db');
// 调用函数,传入sql语句和函数
db('select * from student where id<5', (err, result) => {
if (err) throw err;
console.log(result);
});