Oracle相关知识(1)

系统用户登录

系统用户登录:
	系统自带的用户(sys,system,scott)
        格式: sqlplus username/password@serviceName as sysdba
        示例: sqlplus system/a123456@orcl as sysdba  -- as sysdba 表示用管理员账户登录
        注意: 如果不加as sysdba即使普通用户登录

数据表说明

1.内置有四个数据表:
	员工表、部门表、工资等级、奖金表,都在Scott用户下
    注意:
        刚安装好的Oracle数据库 Scott用户是锁定的,需要进行解锁才能登录

2.解锁Scott用户:
	1.使用system用户进行登录 (本机的数据库)
		sqlplus system/a123456@orcl as sysdba  -- 在控制外面不要在语句结尾加分号
	2.使用alter解锁:
		alter user scott account unlock; -- 解锁
		alter user scott account lock; -- 加锁
	3.验证:
		conn scott/tiger@orcl  -- 注意:第一次链接会提示修改密码
		tiger
		tiger
		口令已更改
		已登录
	4.查看当前用户下的所有表
		show user; -- 查看当前用户
		select table_name from user_tables; -- 查看当前用户下所有的表
			emp  -- 雇员表
			dept -- 部门表
			salgrade -- 工资等级表
			bonus -- 奖金表
		
		select * from emp; -- 查看emp表下的所有数据

sqlplus常用命令

命令含义
show user;显示当前用户名
connect scott/tiger;登录scott数据库
conn system/a123456;登录system数据库
disconnect;断开连接
desc emp;显示表结构
select * from tab;查看当前用户下的表名
select table_name from user_tables;查询当前用户下的表名
@path;path代表SQL文件所在的位置
set linesize 100;设置行宽
set pagesize 8;设置每页显示的记录数
col 字段名 for 9999/a;设置字段的显示宽度,9999表示数字,a表示字符

1.之所以会设置行宽、列宽和页面记录,是因为在SQLplus模式下:select查询的时候经常会遇到返回的记录折行,为了便于我们查看,所以会对其进行设置。
2.SQLplus命令是会话级的,exit之后就消失了
3.在使用 set pagesize时,需要注意:该记录数包含标题、虚线、空行。

Oracle序列

1.rownum
	作用:是Oracle系统顺序分配为从查询返回的编号,返回的第一行分配的是1.第二行是2,一次类推,这个伪	字段可以用于限制查询返回的总行数;
	例如:
		select rownum,empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;-- 14条记录
		select rownum,deptno,dname,loc from dept; -- 4条记录
		需求:取雇员表中前三条记录:
			select
               rownum,empno,ename,job,mgr,hiredate,sal,comm,deptno 
            from emp
            where rownum <=3;
        需求:取雇员表第三条及以后的记录:
        	select * from(
                   select rownum rn,empno,ename,job,mgr,hiredate,sal,comm,deptno from emp
            )where rn >=3;
        注释: rownum表示行号,是一个伪列,可以在每一张表中出现
       
        例如1:查询表记录中的前五行:
       		select * from emp where rownum <=5;
       	
		例如2:取员工表,第六到第十条数据
			select * from(
                   select rownum rn,empno,ename,job,mgr,hiredate,sal,comm,deptno from emp
            )where rn between 6 and 10;
            
2.创建序列
	语法: creater sequence 序列名称 [maxvalue num | nomaxvalue]
					[minvalue num | nominvalue]
					[increment by num start with 10]
					[cache num | nocache]
					[cycle | nocycle]
	Squence参数说明:
		maxvalue 100  序列的最大值
		nomaxvalue  不设置最大值
		minvalue 10  序列的最小值
		nominvalue  不设置最小值
		increment by 1 每次增加1个 类似mysql的自增长
		start with 11开始计数
		cache 10  设置缓存10个序列
		nocache  不设置缓存
		cycle 到头循环
		nocycle 一直累加,不循环
	
	创建:
		create sequence myseq minvalue 1 maxvalue 100 start with 1
		incerment by 1 cache 20 nocycle
		解释: 创建一个名为 myseq 的序列,该序列的范围是1  -  100,从1开始,每次加1,缓存20个,不循环
	
	使用: nextval -> 取得序列的下一个内容
    	序列名.nextval

需要注意的地方

1.如果要使用Scott用户创建视图,需要对该用户进行授权:
	grant create view to scott; -- 将创建视图的权限给Scott用户;

2.在使用插入语句时需要注意,Oracle不支持一次插入多条记录

3.在获取日志值时,不能直接使用yearmonthday获取:
        SELECT empno,ename,
               hiredate,
               to_char(hiredate,'yyyy')YEAR,   -- year(hiredate)
               to_char(hiredate,'mm')MONTH,    -- month(hiredate)
               to_char(hiredate,'dd')DAY,       -- day(hiredate) %c
               to_char(hiredate,'yyyy/mm/dd')ymd,
               to_char(hiredate,'fmyyyy/mm/dd')ymd  -- 用fm去掉前导0
        FROM emp


对四张表的说明

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

只要方向对了,不怕路太远。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值