Java Web
前端 + 后端 + 数据库
DB DataBase
数据库是一个服务,启动服务才能使用,开机自动启动,存储业务数据
关系型数据库,传统数据,主要的业务数据,MySQL、Oracle、SQLServer(C#)
结构复杂、性能稳定、速度较慢
非关系型数据库,MongoDB、Redis
结构灵活、速度快,功能有限,查询次数比较多,更新比较频繁的数据
MySQL
数据库 -》数据表 -》数据
SQL
- DML:数据操作语言,操作数据库中的数据
- DDL:数据定义语言,创建、删除、修改数据库、数据表
- DQL:数据查询语言,查询数据库
- DCL:数据控制语言,控制数据库组件事务、视图、触发器、存储过程
学习数据库
1、掌握数据库的使用,建库建表 CRUD
2、设计数据库,根据项目的需求,设计数据表和表之间的关联关系
3、数据优化、SQL 优化、性能优化、分表分库、分布式数据库、分布式事务
事务
将多条 SQL 作为一个整体,要么全部执行,要么一条都不执行
为了实现业务的统一性
1、原子性:多条 SQL 是一个整体,不可再分割
2、一致性:SQL 语句执行前后,数据库数据的值保持一致
3、隔离性:一个事务的执行不能被其他事务干扰
4、持久性:一个事务一旦提交,数据库中的数据改变是永久性的
事务的操作:
1、开启事务
start transaction
2、回滚
rollback
3、提交
commit
视图
是一张虚拟的表,数据和主表同步,为什么要使用视图?
字段的可见性,有些字段对某些用户可见,其他用户不可见
创建视图
create view view_common as select id,username,password from account;
create view view_all as select * from account;
使用视图
select * from view_common;
删除视图
drop view view_common;
数据库管理工具,在可视化界面中操作管理数据库,方便代码开发
触发器
定义了一系列的操作,可以在对指定表进行操作的时候自动执行这些操作
数据库端数据同步的组件
创建触发器
use test12;
create trigger t_afterinsert_on_tab1
after insert on tab1
for each row
begin
insert into tab2(tab2_id) values(new.tab1_id);
end;
create trigger t_afterdelete_on_tab1
after delete on tab1
for each row
begin
delete from tab2 where tab2_id = old.tab1_id;
end;
删除触发器
drop trigger t_afterinsert_on_tab1;
drop trigger t_afterdelete_on_tab1;
存储过程
存储过程是一组为了完成特定功能的 SQL 语句的集合,经过编译存储在数据库中,用户通过指定存储过程的名字以及参数来调用存储过程,一次编写,多次调用,避免开发人员编写重复的代码,从而提高代码的复用性,减少客户端和数据库的交互,提高效率。
create procedure 存储过程名称(参数列表)
存储过程方法体
参数列表:输入输出类型、参数名称、参数类型
入参和出参
入参由外部传入到方法内部的参数
出参由方法向外返回的参数
创建存储过程
use test12;
create procedure add_name(in target int)
begin
declare name varchar(20);
if target = 1 then
set name = 'MySQL';
else
set name = 'Java';
end if;
insert into account(username) values(name);
end;
调用存储过程
call add_name(11);
删除存储过程
drop procedure add_name;
出参
use test12;
create procedure count_of_account(out count_num int)
begin
select count(*) into count_num from account;
end;
调用存储过程
call count_of_account(@count_num);
select @count_num;
删除存储过程
drop procedure count_of_account;
分布式事务
微服务模块 seata
标签:count,存储,name,记录,数据库,学习,java018,tab1,view From: https://blog.csdn.net/qq_30522357/article/details/136659612