oracle 认识点概述(一)

编程:处理数据
关系型数据库:mysql  oracle  sqlserver  db2
非关系统数据库no-sql:redis  

oracle的优势:安全性更高
              数据处理能力更强:存储、处理更多的数据
LAMP :Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,了越拥有来越高的兼容度,共同组成了一个强大的Web应用程序平台。

DB:数据库,存储、组织数据的

DBMS:数据库管理系统,客户端,操作使用数据库

公司简介

ORACLE:产品1 数据库
       产品2 ERP软件  物料采购、库存、销售前期
       用友软件 金蝶  汉康

区别

mysql:库,相当于一个项目,每个库都有自己独立的文件,管理自己的数据库对象    系统用户:root 

oracle:        库:就一个,整个计算机的磁盘就是oracle数据库

orcl    表空间:在大的仓库中划分出的小仓库分两类:

1)系统表空间,在创建数据库的过程中自动创建 存放了系统对象:系统表  系统用户   系统函数等
 2)自定义表空间:存放用户自己的对象

用户:
1)系统用户:sys/system   能够管理所有表空间
2)自定义用户:只能管理所分配的表空间

【重要】
数据库orcl  相当于Java中类
数据库不能直接访问,必须通过数据库实例来访问(连接,增删改查)
数据库实例  相当于Java中类的对象
oracleserviceorcl  保证这个服务在服务中启动后,才能去访问数据库

oracle数据库正常使用,必须保证实例服务和监听启动

【技能点】oracle在安装过程中,默认创建示例用户SCOTT,状态“锁”
          解锁  SCOTT必须使用SYS登录,其他用户无权限

在实际开发中,需要创建自己的表空间,来存放项目对应的表
数据库开发过程:
1、SYS用户登录
2、创建自己的表空间
3、创建表空间对应的用户
4、给用户分配/撤销权限
5、使用创建的用户登录
6、创建项目对应的表等数据库对象

oracle 常用的数据类型

1.字符类型

• CHAR:一个定长字符串,当位数不足自动用空格填充来达到其最大长度。如非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的
信息。
• VARCHAR2:目前这也是VARCHAR 的同义词。这是一个变长字符串,与CHAR 类型不同,它不会用空格填充至最大长度。VARCHAR2(12)可能包含0~

12字节的信息

2、数字类型

• NUMBER:该数据类型能存储精度最多达38位的数字。每个数存储在一个变长字段中,其长度在0~22字节之间。Oracle的NUMBER类型精度很高, 远远高于许多编程语言中常规的FLOAT和DOUBLE类型。

NUMBER( p,s ) p表示精度(总长度) s表示小数位置且四舍五入

NUMBER(10,3) 10是总长度,3是小数位数的长度

3、日期类型

• DATE:一个7字节的定宽日期/时间数据类型。其中总包含7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。

• TIMESTAMP:一个7 字节或12.字节的定宽日期/时间数据类型。它与DATE 数据类型不同,因为TIMESTAMP 可以包含小数秒(fractional second);带小数秒的TIMESTAMP 在小数点右边最多可以保留9位。

4、二进制及大文本数据

• BLOB: (binary large object)在Oracle9i及以前的版本中, 这种数据类型允许存储最多4GB的数据, 在Oracle 10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。BLOB包含不需要进行字符集转换的“二进制“数据,如果要存储电子表格、字处理文档、图像文件等就很适合采用

 

• CLOB:(Character Large Object)在Oracle9i及以前的版本中, 这种数据类型允许存储最多4GB的数据, 在Oracle 10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。CLOB包含要进行字符集转换的信息。这种数据类型很适合存储纯文本信息。

oracle    使用语句

--创建表空间

--DDL

--   方式一:CREATE tablespace '路径'  

方式二:create tablespace  空间名 datafile '路径' 

        size  10M   默认初始大小

   autoextend on next  20m  下次拓展20M

maxsize 50m     最大50m

--创建用户,初始密码,同时制定用户对应的管理的表空间

create user 用户名 identified by 密码 default tablespace  表空间名

---给用户分配权限:connect 链接  resource 使用资源 dba 管理员

grant connect  ,resource ,dba to用户名;

-给xsx分配update   emp表的权限

grant update on emp to xsx

--撤销权限

revoke dba from  xsx

--演示,创建用户表

create table department(

deptno varchar2(10) primary key,

dname varchar2(20) not null

insert into department valuse('1001','开发部门');

create table myuser(

userid varchar2(30) primary key not null,

age number(3,0) not null,

price number(3.0) not null,

sex char(2) not null,

dno varchar2(10) not null)

--创建check 约束

alter table myuser

add constraint ck_age chek (age between 18 and 90)

---表结构,数据一同复制

create table emp2

as select * from emp

--只复制表结构不复制数据

create table emp3

as select *from emp where 1=2

--插入emp3表数据,通过查询来获得插入的数据
insert into emp3
select * from emp where deptno=30

--【说明】查询得到的数据要和插入对应的列,在数据类型和长度上要兼容

--更新7698 job deptno 更新成7499一致
--如果更新的值来源于不同的表,需要分别查询

update emp2 set (job,deptno)=(

select job,deptno from emp2 where empno=7499)

where empno =7698

--删除emp2里部门位置是NEW YORK

delete from emp2 where deptno=(select deptno from dept where loc='new york' )

--联合查询,多个查询结果联合在一起显示

--all 联合在一起的结果中有重复值,正常显示

--去掉all 重复值不显示

--【注意】联合查询在一起的列的数据类型和长度要兼容

select empno ename from emp

union all                                                 显示所有,有重复

select deptno, dname from dept

select empno ename from emp

union                                               显示所有,无重复性
select deptno, dname from dept

---单个查询结果去重

select distinct deptno from emp

--oracle 独有

--查看表结构

--命令: describe  emp(不是sql语句)

--将查询结果中的多列合并为一列来显示

select ename ,deptno ,job from emp

select ename, deptno||'-'||job as 部门职务 from emp

--查询没有提成/奖金的人员 is null/is not null

select *from emp where emp.comm is null 

select *from emp where emp.comm is  not null 

--对表中列字段删除

alter table myuser drop column deptno

--对表中添加列字段
alter table myuser add(deptno varchar2(20) not null)

--对表中修改列字段 ,数据类型,默认值,是否为空
alter table myuser modify(deptno varchar2(20))

--对表中表中列字段重命名
alter table myuser rename column deptno to ddeptno

--对表修改表重命名
alter table myuser rename to newmyuser

--对创建表中添加唯一键

create table utf( did number ,constraint uni_did unique(did))

--对表中添加唯一键

alter table myuser add constraint uni_deptno unique(ddeptno)

--对创建表中添加主键

alter table myuser add constraint pk_deptno primary key(deptno)

--对创建表中添加外键

create table ufo (uids number ,constraint fk_uids foreign key(uids) references utt(uuu))

--对表中添加外键

alter table t1 add constraint pk_t2_id foreign key(id) references t1(id);

 

【连接查询】复习  等值连接 和内连接  自行复习
【联合查询】把多条查询语句的查询结果联合在一起显示
【子查询】简单子查询/单行子查询 使用比较运算符的,要求子查询的结果不能多余一行
          多行子查询 in / not in
          any >any   <any
          all >all   <all
          delete from goods where goodsid in(1,3,4,6)
          思路:点击删除按钮后,获取删除主键
                构造1,3,4,6 字符串格式

 

今日总结:
1、安装oracle
2、控制面板-管理工具-服务里  实例服务和监听 改成手动服务
3、oracle的工作原理
创建一个数据库(大的仓库,所有对象都在大仓库中)
系统默认创建系统表空间system: sys system账户 系统表
                              SCOTT 及所属对象
区分:SYS  和SYSTEM的区别

使用SYS登录
创建表空间
创建用户及用户所管理的表空间
需要给用户分配权限或角色

理解:角色是不同权限的集合
     例如: role1:  insert update 
            role2:  delete insert

     系统角色:connect  resource   dba
  DCL:grant  revoke

使用新用户登录,登录创建自己的对象

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听不见你的名字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值