Oracle
1,什么是信息,数据,数据库,数据库管理系统(DBMS)?
2,DBMS是对数据进行管理的,网络软件的服务端
3,DBMS+管理的数据=数据库
4,Oracle的历史
-
文件型数据库
-
层状数据库
-
网状数据库
-
关系型数据库管理系统
- 二维表存储数据
- 表之间有外键关系
- 符合实体关系模型
-
Oracle分为
- 历史版本8i,9i,10g(rid),11g,12c
- 功能版本
- 企业版
- 标准版
- Express快捷版
- 安装包只有300M,安装好有1.5G多
- 免费进行开发,部署和分发
- XE将最多存储4GB的用户数据
- 最多使用1GB内存,并在主机上使用一个CPU
- 只能建立一个数据库
数据库使用者角色
- 数据开发人员
- DBA数据库管理人员
- BI(商业分析人员)
5,Oracle xe数据库的安装
不用安装在中文路径下
在本子上记录密码
6,启动Oracle
查看数据库是否启动
- 使用SQL Plus连接数据库管理系统
- 默认有两个用户
- sys系统权限最高的用户,不能使用normal 身份登录
- system系统中权限最高的用户,它可以使用normal 身份登录
- 用户登录Oracle有3个常用角色
- sysdba 数据库管理者
- sysoper 数据库操作者
- normal 普通身份登录
- 默认有两个用户
- 登录
- 查看监听状态
- 连接其他人
- 查看是否能连接到其他人
7,sqlplus的使用
- sqlplus命令
- 登录
- 退出
- 连接
- 断开连接 disconn
- sql语句
- PL Sql语句 (过程化SQL语句)
创建表空间
create tableSpace TB_TEST2
datafile 'D:\oraclexe\app\oracle\oradata\XE\TB_TEST2.dbf'
size 10M
autoextend on next 1m;
创建用户
create user test_user2
identified by 123456
--default tableSpace TB_TEST2;
授权
grant resource,connect to test_user2;
- resource 用户角色表示的是 对象的所有者 增删改模式对象
- connect用户角色表示的是 连接数据库,对对象进行CRUD 的权限
查看当前用户
select user from dual;
切换表空间
alter user fanaizhen default tablespace NORTHWIND;
查看表空间
select * from user_users;
8,安装PL SQLDelvoper
PLD的使用
- SQL窗口
- 命令窗口 执行sqlPlus
- 程序窗口 定义各种模式对象
varchar与varchar2的区别?
- varchar是标准sql里面的, varchar2是oracle提供的独有的数据类型。
- 但是oracle准备在下一版本,不支持varchar类型。
- varchar对于汉字占两个字节,对于数字,英文字符是一个字节,占的内存小,varchar2具体要看数据库使用的字符集
- varchar对空串不处理,varchar2将空串当做null来处理。
创建表空间:类似于MySql中的数据库
创建用户:生产系统中,一个服务器只用一个Oracle数据库,一个数据库实例只能连接一个数据库,多个软件系统工作在同一服务器,一定要公用数据库,为了区分模式对象,就需要依据软件系统,建立不同的用户。表空间和用户是多对多关系
授权:
resource 模式对象所有者(开发权限)
connect 数据进行增删改查(生产权限)
重新登录:
Scott用户的示例数据库
sql语句,结构化查询语言(SQL-89,SQL-92)
-
DDL 数据定义语言(增删改数据库模式对象)
-
DML 数据操作语言(数据进行增删改查)
-
DCL 数据控制语言(控制数据库对象)
数据操纵语言(DML)
-
查
-
1,投影(对字段的操作)
-
1,选取全部字段
-
select * from emp;
-
2,选取部分字段
-
select empno from emp; select empno,ename from emp;
-
3,选取部分字段,并且调整顺序
-
select ename,empno from emp;
-
4,可以使用函数,或者计算,产生表达式
-
select substr(ename,1,2) from emp;--前两个字符 --null做任何运算结果都是null select ename,sal,comm,sal+nvl(comm,0) from emp;
-
5,别名
-
select ename,sal,comm,sal+nvl(comm,0) as 收入 from emp; select ename,sal,comm,sal+nvl(comm,0) as "收 入" from emp; select ename,sal,comm,sal+nvl(comm,0) "收 入" from emp E; select ename,sal,comm,sal+nvl(comm,0) "收 入" from emp as E;--不行,表的别名是没有as
-
6,常数列
-
select ename,1 常数列,sysdate,'abcd' from emp;
-
7,剔重(就近原则)
-
select distinct job from emp;--只按投影列表(选择的字段列表)来剔重 select dist job from emp;-- 不行
-
8,分支
-
select case deptno when 10 then 'A部门' when 20 then 'B部门' else '其它部门' end case from emp;
-
select case when sal between 0 and 2000 then '低工资' when sal between 2001 and 5000 then '高工资' else '其它' end case from emp;
-
-
2,选择
-
在结果集中选择出部分记录行
-
select * from emp where ; --关系运算=,!=,<>,>,<,>=,<=,in,not in,is null,is not null,between, --逻辑运算 --逻辑谓词some,any,all,exists between ...and 是闭区间 is null 是判别null的正确方式,不能用=null like select * from emp where comm=null ;--错 select * from emp where comm is null ; select * from emp where ename like 'A';--错 select * from emp where ename like '%A%'; select * from emp where ename like 'A____'; select * from emp where deptno=10 or deptno=
-
-