Oracle数据的常用操作命令

NetManager(链接服务器)

SYS超级管理员
权限最大

cmd中sqlplus scott/tiger@my_orcl的这个命令可以登录oracle数据库

常用的命令方式,一般dba去操作

oracle的常用命令太多了,简单看一下

show paramter name; //可以查看当前数据库的参数配置(注意scott权限不够)

conn system/system;//切换用户
conn 模式名、模式密码;(切换用户)

show paramter name;(已经拥有权限可以操作)

创建新用户(模式)
新创建的用户(模式)需要解锁
create user 用户名 account unlock;

忘记密码时:
sqlplus /nolog //注意这是无模式登录,进入数据库后可以修改数据库

前提(必须通过sys或system登录后操作的,因为权限足够)
创建表空间,授权(这是前提)
做增删改查时可以用设置好的那个模式(用户)
创建超市的模式(用户时)不能和原先就有的模式(用户)冲突或一起
可以新建表空间(在创建时就需要制定空间大小)

还可以重新指定空间大小

先在左边的小钥匙用system登录
只保留object
在右边的SQL中写sql语句(不区分大小写)
语句也会自动变色
//创建表空间
create tablespace smbms //(smbms不用这样加单引号’smbms’)
datafile ‘D;//oracle_datafiles/smbms.fbf’ size 20M //(20MB语法不对)
AUTOEXTEND ON;(和小海豚一样选中执行,sql语句以分号结尾)
在D盘新建文件放oracle数据库的数据文件

表上右键profiles可以查看参数

单纯一个表空间不行,(表空间)磁盘放到了D盘,可以存数据,不可查看(因为是二进制的)

有了表空间后,我们要允许有谁可以操作表空间
sys和system都可以操作表空间(表空间相当于创建用户(模式)时指定的存储空间)

PASSWORD EXPIRE;//(初始密码,下次登录之后必须进行修改)

创建、查看表空间必须要系统用户的权限

bdqn可以是创建用户时先登录进去

//工作时给你一个表空间,给你一个初始密码,让你使用,不会给你系统权限

先创建表空间再创建用户
新创建的用户需要授予权限才能登录(只有sys和system的用户才能授予)
可以先统一的分配两个角色,然后用户可以获得角色,获得权限
也可以撤销用户权限

授予权限后新建的用户可以登录

table文件夹下可以查看有没有表

点击用户文件夹,角色需要记住一两个因为是自己指定的,可以点击用户文件夹后在右边的role开头的选项中查看用户获得的角色

//测试新建的用户是否可以创建用户
create table cui_test{
cid int,
canme varchar2
}
这个语句出错,你没有权限(因为你只是给他授予了连接oracle数据库登录权限)
可以通过命令语句再授予所有的权限
grant create tables suiyaya;
(忘记命令,可以百度一下 oracle grant create)
可以查看语句命令

切记,要切换新建的用户到system用户(模式)来操作授予cuiyaya用户权限

grant create table to cuiyaya;

点击cuiyaya用户的文件夹来在右边第四个选项查看新建用户获得的系统权限

登录上cuiyaya(新建用户) 在Tables文件夹上点击,右键新建表 指定表名下一步,向表中添加数据

添加完后可以在右下角点击view sql然后查看转换的命令语句

再点击切换回来,点击左下角、replay创建成功

单纯的授予用户某一权限:
grant create 。。。

命令视频里面有的,老师是结合工作经验,重点学思维

创建表时
和mysql的结构差不多
就是数据类型有点不一样

可以将mysql和oracle的数据类型进行比较记忆

timestamp是时间戳

date是常用的时间

number(7,2)总共长度是7位,保留两位

知道表中谁是主键

forei_cuitest

日期格式是必须在存如表中时,转换成时间格式的

操作上略微有变化

切换到scott模式(用户)

小钥匙切换账户(右上角)

可以设置伪列,相当于表中的主键

可以图形可以命令修改数据都可以的

update set comn=comn+100 empno=7844; //让数据增加了100

先设置伪列,然后设置流水号: rownum(是流水号)是把查询结果从1开始计数的,哪怕是倒序,永远是第一行12345按顺序向下排列

伪列,不能按条件查询,也就是limut

但是伪列可以弄一个子查询弄一张新的表一样,来查询,会通过顺序查询,不然的话会按着原先的顺序来查询

可以再子查询中再嵌套一个子查询,这时会是一个真正的列了,可以进行hwere rn>=6 and rn<=10的按条件查询

rownum一开始是混乱的,不带任何条件,本身rownum是存再自己表里面的,可以先把查询的结果变成一张表,然后,再从这个表里面查询数据,再给这个查询到的数据用rownum排序,但是不能够按条件查询,因为伪列不能查询,但是再在
外面用一个表在进行查询表中的数据,可以对rownum进行操作,而且需要给要查询的表重命名,可以limit操作。这时伪列也变成了一个真正的列

实际工作时,一般多表查询

分页是嵌套了连个子查询,最里面的子查询是你正儿八经的查询,再外面一层需要获取rownum将它as成真正的列,然后再往外面嵌套一层即可,最终分页的判断再最外面当成条件查询就行。

可以在每次的命令中,直接写入命令,自动提交:

#事务提交(注意是把commit之前所有选中的命令语句进行提交)
insert into cui_test values(2,‘bbb’);
insert into cui_test values(5,‘eee’);
commit;

明天直接将用程序连接oracle

函数和序列:(明天再将一节课的oracle的命令)

注意:
插入两条数据
插入完之后没有commit
相当于在两条数据之间进行连接

两条数据
SAVEPOINT a;
又一条数据(这个又一条数据不会执行的)
ROLLBACK TO SACEPOINT a;

操作符号

union
合并两个查询结果并去重

selete empno.ename from emp where empno<7698 #(返回5条结果)
union
selete empno,ename form emp where empno<7844
#取交集,两个查询结果共同有的进行显示

selete empno.ename from emp where empno<7698 #(返回5条结果)
miuns
selete empno,ename form emp where empno<7844
#取差集,第一个查询结果有第二个查询结果没有的结果。

TO_CHAR()函数

select sysdate from deal;
select to_char(sysdate,‘yyyy-HH-dd HH:mm:ss’) from dual;

select to_char(1210.7,‘09,999.00’) from dual;

select SQRT(to_number(‘100’)) from dual;

//常用的记住就行

分析函数(oracle会用到)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值