java018学习记录

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

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值