复习了前端后端,现在来复习数据库MySQL。
一个网站,用户注册要保存用户信息,用户信息数据就是保存到数据库MySQL的。
定义:MySQL是一种开源的关系型数据库管理系统,在全球范围内被广泛应用于各种规模的项目中。
就记住MySQL是数据库,用来保存数据的就行,我是这样理解的
编程软件我用的是MySQL Workbench。
在MySQL Workbench创建我的第一个数据库mydb01,
创建语句:CREATE DATABASE mydb01;
有了数据库再建数据库表,这里我简称表。建表之前建议自己先梳理网站的整体业务流程,需要多少个表,哪两个表有联系,有联系就给它整上外键和唯一。
血的教训,小组作业跟外校同学组队,老师把材料上传网站让我们自己看,然后上课教我们用的表跟材料上的表不一样,我们学校用网站上的表,外校同学用老师上课的表,最后合并代码的时候蒙圈了当时小组六个人,两个学校都是三个人,因为我们都要提交仓库的代码给老师,两个学校要求不一样,材料得分开提交,所以就没有再建仓库了,都是双方各自建自己的仓库。小组作业要准备验收的时候我们双方才拉了一个群把代码发群里的
数据库MySQL的常用语句
如 在数据库mydb01里建表user,
USE mydb01;
CREATE TABLE user (
account VARCHAR(50) NOT NULL,
password VARCHAR(100) NOT NULL
);
在表user里添加一个用户,把同一个操作如添加用户的方法写在后端路由里,使用时在前端axios请求方法里写上路径(/接口/路由)就可以直接调用这个方法了。acc和pas是从前端传过来的用户账号和密码。
INSERT INTO user (account, password) VALUES ('acc', 'pas');
在表user里查询用户信息,跟上面一样也是把方法封装在路由里
查询一个用户:SELECT * FROM user WHERE account = 'acc';
查询所有用户:SELECT * FROM user;
更新用户信息new_pas是前端传过来的新密码,不能直接把用户密码保存到数据库,这样会泄露用户信息的,要先加密再存到表里,注册的时候也是,我不太会这里就不写了。
UPDATE user SET password = 'new_pas' WHERE account = 'acc';
删除某个用户
DELETE FROM user WHERE account = 'acc';
还有连表,不喜欢连表,然后我的毕设就嵌套了。
用户表user和地址簿表address,一个用户可以有多个地址,当用户想把某个地址设为默认地址时,需进行连表操作。
设默认地址前要先清空原来的默认地址,这里:略。
再 设默认地址:UPDATE address a JOIN user u ON a.account = u.account SET a.is_default = 1 WHERE u.account = 'acc' AND a.address_id = old_id;
就这样了,好像没有哪个面试会问这个吧自己理解就行了