数据库笔记

视图(DQL语句)

简化开发,利于后期维护

create view grages_view as select * from grages;               //创建视图

drop view grages_view;       //删除视图

//面向视图的 CRUD 会导致原表数据改变

select * from 视图名_view;          //面向视图查询          

delete from 视图名_view;            //面向视图删除

insert into 视图名_view(列名,列名,列名,...)values(插入数据1,插入数据2,插入数据3,...) //面向视图插入

三范式

数据库三范式,避免数据冗余,空间浪费(面试问) /主键(pk)/外键(fk)/

多对多怎么设计?多对多,三张表,两个外键!!!!!! 

一对多怎么设计?一对多,两张表,多的表加外键!!!!!!!

一对一拆表? 一对一,外键唯一       //login_id(fk+unique)

三范式是理论的,实际中为了满足客户,可能会拿冗余换执行速度,虽然存在冗余但是减少了表的连接次数,这也算合理。(面试问)

DDL数据库操作

SHOW DATABASES;

CREATE DATABASE 数据库名;

USE数据库;

SELECT DATABASE();

DROP DATABASE数据库名;

DDL表操作

SHOW TABLES;

CREATE TABLE表名(字段 字段类型,字段 字段类型)

DESC表名;

SHOW CREATE TABLE 表名';

ALERT TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO...;

DROP TABLE 表名;

事实四大特征

  1. A原子性:事务是不可分割的最小操作单位,要么同时成功,要么同时失败
  2. C一致性:事务完成时,必须是所有数据保持一致
  3. I隔离性:多个事物之间,操作的可见性
  4. D持久性:事务一旦提交或者回滚,他对数据库的改变是永久性的

JDBC

Orm

所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把Java应用程序中的对象,持久化到关系型数据库的表中。

Connection

Statement

//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");

//2.获取链接
String url="jdbc:mysql://127.0.0.1:3306/db1";
String username="root";
String password="1234";

Connection conn= DriverManager.getConnection(url,username,password);

//3.定义sql
String sql="insert into dept(name,addr) values ('奥尼尔','美国')";
//4.获取执行sql对象 Statement
Statement stm=conn.createStatement();

//5.执行sql
int count=stm.executeUpdate(sql);

//6.处理结果
System.out.println(count);
//7.
stm.close();
conn.close();

查询当前地址:

Oracle

ORACLE时间戳,自动更新时间

create or replace trigger ygbmxx_trigger

  before insert or update

  on ygbmxx

  for each row

declare

  -- local variables here

begin

  :NEW.YGBMXX_UPDATETIME := SYSDATE;

end ygbmxx_trigger;

去重分割单列

select thr_zrr

from thr_fxgkcs s

where s.thr_fxsb_id =88355

SELECT distinct COLUMN_VALUE 

FROM TABLE(STR_SPLIT((SELECT wm_concat(G.THR_ZRR)

FROM THR_FXGKCS G

WHERE g.thr_fxsb_id = 88355),',') )

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值