2.Oracle_2
1 Scott是demo用户
2. Oracle的结构:
物理:
- 数据文件: .DBF
- 控制文件: .CTL
- 日志文件: .LOG
逻辑:
- 数据库: 实例
- 表空间: 对应用户, 系统表空间,用户表空间,临时表空间。 对应一个或多个BDF。一个数据文件只能与一个表空间相联。
- 段:对应表, 多个区组成一个段。 数据段(表),索引段(索引),回退,临时段
- 区:连续的数据块。 表是可以分区存储。
- 数据块: 一行数据
3. 工具: SQLPLUS
desc + 表名:描述
4. 创建用户:
-- 创建用户 指定默认表空间,和临时表空间
create user mazheng
identified by 123456
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
-- 授权访问
grant create session to mazheng;
-- 切换用户访问。。。
-- 删除用户
drop user mazheng;
5. 授权:
- 系统权限: 允许用户执行某些操作:创建表权限
create table
- 对象权限:在对象上的操作 ::对象(表,索引,序列。。。。)
select on table
-- 授权
grant 权限/角色 to 用户/角色;
-- 撤销
revoke 权限 from 用户;
6 修改和删除
ALter USER 用户 identifeid by 密码; 修改密码
7 SQL: 结构化查询语句
sql是 关系型数据库通用
ORDBMS:对象关系型数据库管理系统
- SQLServer: MS : 大型
- MySQL: oracle: 中小型
- Oracle: 大型
- DB2: ibm: 大型
- gaussDB: huawei: 涵盖所有
- teradata: 美商天睿:超大型:
NOSQL:非关系型数据
- mongo: 基于document的
- redis: key,vale数据库
- 图库,
8. SQL分类:※
-
DDL: 数据定义语言:
create创建 alter修改 drop摧毁 truncate截断(把表中数据清空,保留表结构)
-
DML:数据操纵语言
insert插入 update更新 delete删除 select查询
- DQL: 数据查询
select
- DQL: 数据查询
-
DCL: 数据控制语言
grant授权 revoke回收
-
TCL: 事务控制语言
commit提交 rollback回滚 savepoint保存回滚点
9 数据类型:
-
字符:
char varchar2 nchar nvarchar2 long clob
-
char: 定长字符型: 右侧补空格 2000
-
varchar2;不定长字符型 4000
-
nchar:定长字符型:可以放全角2000
-
nvarchar:不定长字符型:可以放全角4000
-
long: 2G以内不定长字符型
-
clob: 4G以内不定长字符型
-- DDL 创建表 create table A1 (a char(10), b varchar2(10)); -- DQL DML查询表 select * from a1; -- DML 插入数据 insert into a1 (A, B) values ('hello', 'world'); -- length函数: 字符的长度 select A , length(A), B, length(B) from a1; alter table A1 add C nchar(10); alter table A1 add D nvarchar2(10) select * from A1; insert into A1 (C, D) values ('abcdefghij', '一二三四五六七八九十') insert into A1 (C, D) values ('abcdefghij1', '一二三四五六七八九十')
-
-
number(p,s); 数值类型:
- number(5,2) 五位数小数是两位 999.99
- number(2) 两位整数 99 -99
alter table A1 add E number(5,2);
alter table A1 add F number(2);
update a1 set E=3.119, F=1
- Date: 日期类型 年月日时分秒格式
- to_date(str, ‘yyyy-mm-dd hh24:mi.ss’); 模式不区分大小写
- 系统时间: sysdate, current_date
-- dual: 伪表
select sysdate, current_date from dual;
select sysdate - to_date('1999-2-1 17:01:02', 'yyyy-mm-dd hh24:mi:ss')
from dual;
-
timestamp: 时间戳类型。精确秒后6位: 可以用例做乐观锁
select sysdate, systimestamp, CURRENT_date, current_timestamp from dual;
-
raw; 二进制 2000字节以内
-
long raw: 2G以内
-
Blob: 4G以内
-
BFile: 关联到外部系统文件
乐观锁
select sysdate, systimestamp, CURRENT_date, current_timestamp from dual;
- raw; 二进制 2000字节以内
- long raw: 2G以内
- Blob: 4G以内
- BFile: 关联到外部系统文件