数据库基本知识点

一、JAVA模拟数据库和数据库

JAVA中的模拟数据库

文件存储方式保存数据的弊端:

1、缺乏对数据的整体管理,数据不便修改。

2、不利于数据分析和共享。

3、数据量急剧增长,大量数据不可能长期保存在文件中。

数据库

存储数据

本质:软件,将数据存储到特定格式的文件中,类似excel表格(表头,内容,一行数据代表一条)

数据类型

列: 字段 field 属性

行:一条数据

二、数据库

1.数据库基本知识

关系型数据库:                      版本

Oracle        -甲骨文                 11g

MySQL        -甲骨文                5.5  5.7

SqlServer -微软

DB2                -IBM - eclipse

关系数据库简介

本质:描述两个元素间的关联或对应关系,使用关系模型把数据组织到二维数据表(Table)中。

表的概念:

一个关系数据库由多个数据表(Table)组成,数据表是关系数据库的基本存储结构。

表是二维的,由行和列组成。

表的行(Row)是横排数据,也被称作记录(Record)

表的列(Column)是纵列数据,也被称作字段(Field)

表和表之间存在关联关系。

非关系型数据库:NoSQL

SQLDeveloper - Oracle官方提供可视化连接工具 - 底层 :sqlplus

Navicat - 第三方可视化连接工具

可视化设计表 --DDL

可视化管理数据 - DML

导出SQL语句

MySQL连接时:

SID:orcl-连接Oracle数据库使用的唯一标识-默认值orcl

port:1521 - Oracle默认端口号

2.数据库语句

SQL语句:99标准

DDL:数据定义语言 - 表

create  drop  truncate  rename  alter

DML:数据操纵语言 - 数据

insert updata delete

DCL:数据控制语言 - 数据库的用户以及权限 - 不讲

create User、grant

TCL:事务控制语言 - 操作事务

commit rollback savepoint

Navicat 中不支持TCL

DQL:属于DML,不属于99标准

数据查询语言

 

DDL 创建语句

	--创建表
	create table user_zld(
	--字段 类型
	    id number(6),
	    name varchar(20),
	    className varchar(20),
	    score number(5,1),
	    birthday date
	    
	);
	
	--删表 --不可逆 
	drop table user_zld;
	
	--删除字段
	alter table user_zld drop (score);
	
	--修改字段类型,不能修改字段名
	alter table student.user_zld MODIFY(
	className VARCHAR2(10) not null --不能为空
	);
	
	--修改表结构
	--添加字段
	--表中少字段 出生日期
	alter table user_zld ADD(
	birthday date
	);
	
	--修改表的名字
	rename user_zld to user_ZZZ;
	
	--表别名
	--别名:可以给字段加别名 
	-- 只能在orderby使用
	-- 也可以在给表明加别名
	
	Select a.score from user  as a;--AS 可以省略用空格代替
	--truncate 删除表中所有数据 - 不可逆
truncate table user_ZZZ;

DML数据操纵语言

DML:数据操纵语言
	insert into user_zld values
	(1,'rose','java1906',92.3,sysdate);--值的个数和顺序必须按照表中定义
	--即使设置默认值,也不能主动添加null
	--insert into user_zld values
	--(1,'rose',null,92.3,sysdate);
	--设置classname字段默认值是'java1906'
	alter table user_zld MODIFY
	(className VARCHAR2(20)  default 'java1906');--not null
	
	--指定字段添加值
	insert into USER_ZLD(NAME,BIRTHDAY,SCORE) values
	('lucy',sysdate,99);
	
	--查询制定表中所有数据
	SELECT
	    *
	FROM user_zld;
	
	--修改指定表中数据
	
	--案例:修改班级为java1907
	UPDATE user_zld set className = 'java1907';
	
	--筛选:where 条件
	update user_zld set className = 'java1906'
	    where name = 'lucy';
	
	--删除指定表中所有数据,
	    delete from user_zld
	    where score = 99;
	
	--多条语句同时修改
	update user_zld 
	set classname = 'java1906',
	    score = 100;

TCL:事务

事务 TCL COMMIT ROLLBACK SAVEPOINT

概念:业务层面上操作的最小单位,不可分割的

案例:转账业务 - update -100 +100

特点:原子性、一致性、隔离性、持久性

事务的并发问题:脏读、幻读、不可重复读

事务的隔离级别:

    读未提交 - 最低,解决不了任何问题

    读已提交 - 解决藏独问题

    可重复读 - 解决脏读,不可重复读问题

    串行化 - 最高级别,解决所有问题,效率低

--TCL事务管理 commit  rollback  savepoint
--只有DML需要配合TCL来使用,TCL是让DML对于数据的操作生效或者生效
--不同的会话 - 连接 ,都有单独的事务,如果DML后没有进行事务提交,操作是不生效的
/**TCL事务管理 rollback - 回滚 - 只有DML可以回滚
*delete 和 truncate 区别
*truncate属于DDL,不可逆
*delete属于DML,可逆
*Navicat 什么都不可逆,Navicat不支持TCL
**/
--提交事务 -当前会话的DML操作生效

COMMIT;


--回滚事务 - 让当前会话的DML操作撤销 - 从上一次提交后的地方开始撤销
 delete from user_zld
    where score = 100;

ROLLBACK;

-- 一次事务中,可以执行多次SQL语句
insert INTO user_zld (id) VALUES(2);
insert INTO user_zld (id) VALUES(2);
UPDATE user_zld set score = 90;

--保存一个事务节点,但是事务并没有提交/结束
--事务结束的途径: commit提交、rollback回滚、关闭连接自动提交
SAVEPOINT a;

update user_zld set name = 'rose';

--回滚到指定节点 -一旦提交,该节点消失
rollback to a;

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值