oracle:

 一款关系型(二维表)数据库,可以用来存储海量数据。在大数据量并发检索的情况下,性能要高于其他的同类数据库产品。一般运行环境是LinuxUnix操作系统上!

目前最流行的商业数据库主流版本9i(Internet) 10/11g(grid) 12c(Cloud)

数据库用户:

 

Sys超级管理员  (不允许用normal方式登录,只能用Sysdbasysoper身份登录)

 

System:普通管理员(只能用normal登录,不能用Sysdbasysoper身份登录)

 

Scott:普通用户

 

超级管理员和普通管理员都可以建立用户和对用户进行授权操作

连接数据库:

 

SQL*Plus方式连接

 

 sqlplus ssss/ssss@orce1(多个数据库的方式)

 sqlplus ssss/ssss(单个数据库的方式)

 

PL/SQL Developer方式连接

 

 

 

EM(Enterprise )

 

 

 

动软代码生成器

 

 

 

将自己PC上的Oracle服务公布到局域网。

 

1:找Oracle安装目录----->配置和移植工具------>Net Manager工具,点开的是本地---->监听程序---->localhost改成本机IP:如(192.168.16.6)。然后点击保存网络配置。

 

 有个小的隐式规则:自动将IP转成本机的计算机名称,保存到app/Happy(用户名)/product/11.2.0/dbhome_1/NETWORK/ADMIN/listener.ora文件的对应的节点处。

 

下次你打开Net Manager的时候,你会发现Oracle会读取对应的配置文件,读出来的是计算机名称。

 

2.重新配置监听

 

 解析:Oracle安装目录----->配置和移植工具------>Net Configuration Assistent---->重新配置监听

 

3.关闭本机的防火墙或添加入站规则!

数据库操作:

01.查询某个用户下所有的表

 

 

这里SCOTT必须是大写!

 

 

Rowid:在内存中构建一列不会断裂的自增值。

 

Oracle数据库忘记密码解决方案:

 

1.

2.alter user system identified by 新密码;

 

   解锁用户

 

    alter user scott account unlock;

 

3.切换用户

 

SQL>conn scott/新密码

 

角色和权限:

 

Oracle包括两大类权限(Privileges),一种是系统权限,另外一种是对象权限。

 

CONNECT角色: --是授予最终用户的典型权利,最基本的 
CREATE SESSION --建立会话 
RESOURCE角色: --是授予开发人员的 
CREATE CLUSTER --建立聚簇 
CREATE PROCEDURE --建立过程 
CREATE SEQUENCE --建立序列 
CREATE TABLE --建表 
CREATE TRIGGER --建立触发器 
CREATE TYPE --建立类型
CREATE OPERATOR --创建操作者
CREATE INDEXTYPE --创建索引类型
CREATE TABLE --创建表

常用数据类型:

 

 

Oracle CHARVARCHARVARCHAR2类型的区别与使用

 

区别:
  1CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR
(20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2
(20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 
  2CHAR的效率比VARCHAR2的效率稍高。 
  3.目前VARCHARVARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以
后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储
空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR 
  何时该用CHAR,何时该用varchar2

  CHARVARCHAR2是一对矛盾的统一体,两者是互补的关系
  VARCHAR2CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。 
  VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’
(Row
Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。

 

 

SQL简介:

 

SQL-99标准中有五种对数据库的操作

 

DDL(Data Definition Language)数据定义语言:create database/table/view/sequence

 

 

 

DML(Data Manipulation Language):数据操作语言:insert/update/delete

 

 

 

TCL:(Transaction Control  Language):事务控制语言:begin Transction  Save point commit rollback

 

 

 

DQL(Data Query Language):数据查询语言:select

 

 

 

DCL(Data Contrl Language):数据控制语言:grant(授权) /revoke(取消、收回权限)

 

 

SQLPlus下常见命令操作:

 

 

 

 

 

*清屏

 

 

 

 *注释

 

 

 

 *查看当前用户

 

 

 

*当前用户下的表

 

 

 

 

 

解析: 10gbin开头表示已经删除的放在回收站的表,oracle在删除表时并没有彻底的删除,而是把表放入回收站!purge recyclebin清空回收站即可。

 

用来删除指定的表

 

SQL> PURGE TABLE TABLE_NAME

 

*查看表结构

 

 

 

*设置行和列的格式

 

 

 

*dual说明

 

 

 

*|| 连接

 

 

 

*表名为关键字问题

 

如果在ORACLE的SQL中包含关键字,可能会提示错误

 

例如:

 

select * from user where number=10;

 

 

 

由于number是关键字,执行SQL的时候会报错

 

 

 

因此可以修改为

 

select * from user where "number"=10;即可(这里是双引号,不是两个单引号)

 

*模糊查询中,查询内容为通配符”_%”,如何书写查询语句

 

Like ‘%\_%’ escape=’\’

 

*关于where的优化问题

 

解析:where 条件1 and 条件2  解析的时候从右至左解析

 

*关于使用order by 多列排序问题

 

解析:order by 1,列2 desc ,那么desc只作用域第二列

 

*关于null值排序的问题

 

 

 

 

 

 

创建数据表和修改数据表

 

添加列

 

ALTER TABLE  teacher

 

           ADD (hiredate DATE,--入职日期

 

            sal  NUMBER(7,2),wechat VARCHAR2(20));  --薪水 、微信

 

 

 

修改列

 

ALTER TABLE teacher MODIFY (tname VARCHAR2(30));

 

删除列

 

ALTER TABLE teacher DROP COLUMN wechat; --删除wechat