登陆数据库

这种方式不用用户名密码也能登陆,为什么呢,因为只要你用oracle的系统用户登陆linux,就可以如此登陆。等于只需要在登陆linux的时候验证你的身份就可以了。

[oracle@sq ~]$ sqlplus / as sysdba

 

[oracle@sq ~]$ sqlplus sys/123456 as sysdba

 

查看当前登陆用户

SQL> show user

 

切换用户(第一次登陆 提示用户锁定)

第一次登陆的时候,用户处于锁定状态,要给他解锁

SQL> conn scott/tiger121

SQL> conn sys/123456 as sysdba

 

为用户解锁,解锁需要系统权限

SQL> alter user scott account unlock;

 

再次登陆

SQL> conn scott/tiger

 

注意!解锁后再登陆就不要加 as  sysdba 了,否则又变成sys登陆了。

 

修改用户密码

方法1.

SQL> alter user scott identified by XXXXX;

 

方法2.

SQL> password scott

 

Tips

Scott 用户是系统自带的,一般用于做系统测试用。

斯考特是oracle的三个创始人之一,后来他觉得oracle数据库的理念和自己的理念相悖,他要求撤资,自己带着2亿多美金离开了oracle,但是自己研究的东西现在也没人用。Oracle保留这个用户是对他的纪念。

 

注意!

公司里没人用sysdba身份操作,因为权限太高了,是用来做管理。

 

--------------------------------

Oracle  开启、关闭

退出

exit 保存并退出

quit 退出

disc 注销当前用户,但是没退出sql

-------------------------

数据字典

系统表,又叫数据字典.记录系统信息dba_,user_,all_,v$,x$,GV$开头的都是数据字典

dba_开头的只有syssystem用户能查看。

User_开头的代表用户自己能够查看的。

V$ 开头的叫做动态性能视图。其实是在数据字典中做了一个映射

例如,一个表有几十列,查看起来不方便,利用动态性能视图,只查看其中你需要的信息,或者把几个表中的部分列抽出组合在一起。

 

注意!

视图和性能提高没有任何关系,他只是为了方便查看、管理。不是真正的数据,只是一个映射。所以视图不是表,是虚表!它是已经编译好的sql语句,他没有实际的物理记录。对视图的操作只会影响视图本身,不影响基本表。

 

X$ 开头的也是动态性能视图。X$ 是oracle数据库核心部分,加载数据库时即被使用,加密命名。X$供数据库自身使用。

 

GV$ 是全局 动态性能视图

-----------------------------------

查看数据字典

SQL> select * from dict where rownum < 2;

(table_name其实显示的是数据字典对象名)

 

dict_columns 记录着字典视图列的说明。列都是什么意思

SQL> select column_name,comments from dict_columns

  2  where table_name='DICT';

 

SQL> select * from

    (selecttable_name,count(*) from dict_columns

    group bytable_name order by 2 desc)

whererownum < 6;

 

-------------------------------------

查看后台进程

SQL> !

[oracle@sq ~]$ ps -ef |grep ora_

[oracle@sq ~]$ exit

 

-------------------------------

查看当前用户数据库下面有哪些表

SQL> conn scott/123456

SQL> select table_name from user_tables;

 

查看实例名

select instance_name from v$instance;

 

显示表定义

SQL> desc emp;

 

创建一个相同的表

SQL> create table emp_bak as select * from emp;

 

查看表

SQL> select * from emp;

 

设置行长。设置终端对话框能显示的行长

SQL> set lines 1000;

 

设置页面记录条数

SQL>  setpagesize 20 ;

----------------------------------

Oracle启动状态

 

Nomount  状态

  • 加载实例进程  实例就是硬件平台,占用一定的硬件资源供数据库使用。比如加载实例后内存少了1G。这1G内存就专供这个实例使用,其他应用不能用。实例本身用不了这么多资源,他会在后来加载库的时候分配给库使用。

  • 加载spfile (参数文件)

Spfile 指向控制文件的位置

Mount    状态

  • 加载控制文件(.ctl)

控制文件指向 数据文件、日志文件的位置

Open     状态

  • 加载数据文件(.dbf)、 日志文件(.log)

 

59

 

关闭数据库

shutdown normal 需要等待所有事务/进程全部结束才能关数据库

shutdown transactional   需要等待,但空闲事务进程自动关闭

shutdown immediate 关闭之前同步数据生产关闭数据库常用

 

shutdown abort  强制关闭数据库相当于断电此动作非常危险轻易勿用

启动数据库

 

startup 直接打此命令默认选项为open直接打开数据库

startup nomount 只启动实例(装载实例和打开参数文件)

 

startup mount  挂载数据库(装载实例和打开控制文件,激活某些功能,用户不能存取数据库可以进行实例或数据的恢复处理)

alter database mount 改变数据库从nomount状态到mount状态

alter database open 打开数据库(此时才可以正常对数据库进行读写)

alter database open read only 将数据库打开到只读状态

 

startup force  重启数据库

 

 

 

例如

select * from user_tables ;

------------------

查看服务器状态

Select open_mode from v$database;

------------------------

 

 

 

X$ oracle数据库核心部分,加载数据库时

 

 

GV$ 全局动态数据库

 

 

                           

 

 

查看后

!后面加登陆之前的平台的命令。

 

 

数据库开启的过程

nomount 加载实例和进程,参数文件(开实例必须的一些参数)(地)

mount 控制文件(图纸)

open:数据文件,日志文件

 

 

oracle是单实例多库

oracle是单实例单库

面试重点

一台oracle能不能装多个库,能

装多个实例,再一个实例对应多个库

凡是多个库的情况,都是业务比较小的情况,业务大的没有一个机器上两个库的

 

 

有兴趣可以走 oracleVM

想走数据库方向的 DW必会

 

 

开发DBA  6万月薪

 

 

关闭数据库

1.7:00

2.6:30

3.完整性

 

 

事务就是多个sql操作组成的。

 

 

 

 

 

 

DBA生存的四大守则:
*
备份重于一切
*
三思而后行
*RM
是危险的
*
你来制定规范

 

 

 

 

 

 

 

 

尽量避免使用like

sql语句区分大小写,但是列的值是区分大小写的,也就是表的内容是区分大小写的。

表示匹配所有

 

 

 

以后会经常用

 

 

=============================================================================

下午

oracle 串函数  连接符 ||   

 

 

 

 

 


 

 

=======================================================================

这个重要!  因为涉及时间,生产环境很重要。

 

--------------------------------------------------------------------

 

 

从第二个字符开始,数三个


 

 

算一下张三13年挣了多少钱

 

 

有函数的话就不能触发索引。

 

 

 

临时表

把括号中的结果放到临时表中

在临时表中再次做一个判断

 

 

 

 

开发DBA

 

重要!

 

 

 

 

 

 

 

 

vm_concat 合并列  之前那个列合并没什么说明意义,这个用的比较多。

 

 

 

 

 

主键一般不让循环

----------------------------------------------

参数文件(nomount模式加载)

pfile   文本 vi  spfile 损坏时找pfile

 

spfile 二进制 命令  nomount  默认加载项 

 

 

 

跑脚本

@a.sql

 

 

脚本方式创建员工信息表

创建员工工资表

创建员工考勤表

批量插入数据

根据考勤情况确定基本工资

10000 全勤加500  迟到一次100  迟到大于5次,报告给经理(本月)。

 

 

面试重点!

1.做过什么项目

2.模拟一个环境,让你分析分析

3.基础知识点

         spfile  pfile相当于一个备胎

4.

面试自己不会的不要明确说出来,以免被压价。

 

 

 

 

注意!

havingwhere的区别是where 后面不能加函数