Oracle
文章目录
1.为什么使用数据库
DB 数据库 (Database)
- JavaSE学习中,数据存储都是在内存里,程序结束后,相应内存空间会释放,数据消失
- IO流可以有效解决这以问题,但是,存储方式是文件形式,不便于查看
- 数据库则能很好解决数据存储问题(存储方式类似于excel表格)
2.DBMS
Database Management System
- 提供了数据
- 数据定义(给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中)
- 数据定义语言DDL(Data Definition Language)
- 三级模式结构、
- 两级映像
- 完整性约束
- 保密限制等约束
- 数据定义语言DDL(Data Definition Language)
- 数据操作 (实现对数据的追加、删除、更新、查询等操作)
- 数据操作语言DML(Data Manipulation Language)
2.1常见的数据管理系统软件
- Oracle
- MySql
- Sql Server
- SYBASE
- informix
- DB2
2.2关系型数据库
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体
- 单一的数据结构----关系(表文件)
关系数据库的表采用二维表格来存储数据,是一种按行与列排列的具有相关信息的逻辑组,类似Excle工作表。
- 属性(字段)
数据表中的每一列称为一个字段,表是由其包含的各种字段定义的,每个字段描述了它所含有的数据的意义
- **元组(记录) **
表中的一行即为一个元组,或称为一条记录
- 属性值
行和列的交叉位置表示某个属性值
- 域
(数据类型或者数据类型范围) 属性的取值范围
3.sql Plus基本命令
-
进入方式
- 直接启动sql Plus
- cmd中输入sqlplus
-
用户登录命令:
- 4个用户:
- 超级用户: sys / 1234
- 管理员用户: system/ manager
- 普通用户: scott /tiger
- 大数据用户: sh/sh
- 4个用户:
-
用户切换方式
- 普通用户:
- conn scott/tiger
- 管理员用户:
- as sysdba(强调是管理员)
- conn sys/1234 as sysdba ;
- as sysdba(强调是管理员)
- 普通用户:
-
查看用户
- show user;
-
上锁
- 切换管理用户 conn / as sysdba;
- 上锁 : alter user scott account lock;
-
解锁
- conn / as sysdba;
- alter user scott account unlock;
-
修改用户名(必须是管理员用户才可以修改)
- 切换用户: conn / as sysdba;
- 设置用户密码: password scott;
- 密码设置 : xxxx (没有显示密码)
- 密码设置2:xxxx (不显示密码)
-
屏幕清理:
- host cls;
-
设置数据输出格式
- set pagesize 30 一页显示30条数据
- set linesize 200 一行显示200字节数据
3.1用户管理
用户管理:
创建用户:
create user 用户名 identified by 密码;
注意:
-
只有管理员才可以创建用户
-
用户创建完了不能直接登录 需要授权
用户授权:
grant 权限 to 用户;
- 登录授权
grant connect to 用户名;
必须是管理员才可以授权
connect 这个权限只能连接数据库
- 创建表授权
1. 切换到管理员用户 conn / as sysdba;
2. 授权 grant resource to root;
3. 切换到 root 用户 conn root/root
4. 创建表: create table t_stu(xxx);
回收权限:
把之前的角色 清理掉
revoke 权限 from 用户名;
- 切换到管理员用户: conn / as sysdba;
- 回收授权 : revoke connect from root;
修改密码:
管理员可以修改用户密码:
alter user 用户名 identified by 密码;
password 用户名;
用户删除:
drop user 用户名 [cascade];
cascade 联级删除 ( 把删除的用户 产生的关联数据都删除)
3.2表的操作
创建表:
create table 表名(
字段1 数据类型(数据长度),
字段2 数据类型(数据长度),
字段3 数据类型(数据长度) --最后一字段没有“;”
....
);
注意事项:
1. oracle 中sql语句是不区分大小写,如果是小写 oracle 数据库把把小写转成大写
2. 如果表已存在就不能重写创建
3. 每个字段都是用逗号隔开最后一个字段不用逗号隔开
4. 表的命名规范见名知意一般命名为 t_表名,
删除表:
drop table 表名;
表添加一个字段:
alter table 表名 add 字段 字段类型;
修改字段类型 :
alter table 表名 modify 字段 新的字段类型;
修改字段名称:
alter table 表名 rename column 旧字段 to 新字段;
删除表的字段 :
alter table 表名 drop column 字段名;
注解: (解释)
- 表的注解
comment on table 表名 is '注解内容'
comment on table 表名 is '注解内容'
comment on table t_stu is '学生表';
- 字段注解
comment on column 表名.字段 is '解释内容';
comment on column t_stu.sid is '学生id';
comment on column t_stu.sname is '学生名字';
4.数据类型
字符型数据类型
- char 字符型[长度固定]
- 能够存储2000个字节
- 系统会分配固定的空间不会因为数据大小的改变进行空间的调整节约了计算空间的时间提高了效率
- varchar2 字符型[可变长度]
- 能够存储4000个字节
- 相比char 而言 内存利用更高 会随着数据大小进行 长度的动态分配
- long 字符型[大型的字符串]
- 能够存储最大长度是2G 文本
4.1注意:
- char 可以有默认长度 1 个
- varchar2 必须要给长度
数据类型
number
数据值类型 可以表示我们的小数 整数
根式: number[p(,s)]
p是整数 s小数精度
number 表示默认的整数长度32最高进度38位
number(3) 表示整数的长度是 3
number(5,2) 5个长度
整数是5-2 长度
小数2个 , 如果不够2位补 0
如果从超过2位四舍五入保留 2位
create table testNum(
id1 number, -- 默认长度
id2 number(5), -- 5个长度
id3 number(5,2) -- 3个整数,2小数
);
date 日期类型数据:
- date 日期精确到秒 2019/11/25:14:21:23
- timestamp 时间戳精确到秒后面的 6 位
create table testDate(
time1 date,
time2 timestamp
);
-- 插入一个 timestamp 这个时间格式
Insert into testDate(time2) values (to_timestamp('1990/07/17','yyyy/mm/dd hh24:mi:ss'));
大数据类型 lob
大数据类型 lob jdbc 中我们可以把一张使用 blob 类型存到数据中
- blob 存储大型二进制文件
- clob 存储大型的字符文件
5.可视化工具
PLSQL( oracle 视图工具 油漆桶)
SQLyog ,Navicat (mysql比较好用的视图工具)
DataDrip
5.PLSQL的基本设置
sql窗口 书写sql代码
命令窗口 和我们的sqlplus窗口类似
视图工具 对象 选择 scott用户 :
myobject
tables 表
scott用户 默认有四张 数据表 (学习mysql使用)
选择表 可以查询数据 (表有锁图标 不能修改数据 )
编辑数据可以修改数据 (编辑数据后 保存数据 / 提交数据 到数据库)
编辑表 就是设置 表的结构