绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
oracle常用操作
2022-03-11 14:37:50

oracle常用操作

  • shell连接数据库
    sqlplus user/passwd@IP/server_name

数据库信息查询

-- 数据库版本查看select * from v$version; -- oracle 密码修改alter user life identified by 'NewPassword' replace 'OldPassword';-- 查看表空间信息select * from user_users-- 查看用户的所有表select table_name from user_tables;-- 查看用户拥有的序列select * from user_sequences;(普通用户即可)select count(*) from dba_sequences where sequence_owner='SPACE_NAME';(名称需大写)select SEQUENCE_NAME from dba_sequences  where sequence_owner='SPACE_NAME';

数据库CRUD相关

-- 修改列名:ALTER TABLE TABLE_NAME RENAME COLUMN COLUMN_NAME_OLD TO COLUMN_NAME_NEW;-- 修改列类型:ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME varchar2(16);-- 新增一列ALTER TABLE TABLE_NAME  ADD COLUMN_NAME varchar2(50);-- 删除一列ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME-- 复制一列数据updateset 另一列 =这一列

-- 插入数据INSERT INTO "TABLE_NAME"("COLUMN_NAME1", "COLUMN_NAME2" ) VALUES ('1', '2' );-- 删除一行数据delete from TABLE_NAME where KEY='SOMETHING' and FIELD='ANYTHING';-- 一行数据设值update 表名 set 列名=null where 条件;

注释

-- 注释:COMMENT ON COLUMN TABLE_NAME.COLUMN_NAME IS '列描述内容';
COMMENT ON TABLE TABLE_NAME IS '表描述内容';

主键、外健、索引

--添加外键约束 ALTER TABLE TABLE_NAME1_INFO(从表表名) ADD CONSTRAINT column_foreign_keyname(外键约束名称) foreign COLUMN1(列名) references TABLE_NAME2_INFO(主表表名)(DISBURSE_NO(列名))-- 这种方案为TABLE_NAME1_INFO添加了外键,指向TABLE_NAME2_INFO表的主键,该约束起到了保护数据完整性的作用:如果删除的用户信息(COLUMN1)-- 已经在TABLE_NAME1_INFO表中使用,则该条数据无法删除;无法向TABLE_NAME1_INFO表中添加用户id不存在的地址信息。-- 删除外键alter table "TABLE_NAME1_INFO " drop constraint "column_foreign_keyname"-- 索引CREATE INDEX "IDX1_TABLE_NAME1" ON  "TABLE_NAME1"("SHARE_DATE");-- 新建索引CREATE INDEX "IDX1_TABLE_NAME1" ON  "TABLE_NAME1"("SHARE_DATE");-- 设置主键
    -- 建表语句中
    CONSTRAINT PK_OPERATION_MANUAL PRIMARY KEY (COLUMN1,COLUMN2)    -- 后续新增
    ALTER TABLE "TABLE_NMAE " ADD CONSTRAINT "SYS_C61" PRIMARY KEY ("COLUMN_NAME1", "COLUMN_NAME2");

发生锁表的解决方法

-- 以数据库管理员账号登录-- (1)锁表查询的代码有以下的形式:select count(*) from v$locked_object;select * from v$locked_object;-- (2)查看哪个表被锁select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;-- (3)查看是哪个session引起的select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;-- (4)杀掉对应进程执行命令:alter system kill session'3789,2807';其中1025为sid,41为serial#.
分享好友

分享这个小栈给你的朋友们,一起进步吧。

oracle
创建时间:2022-01-06 15:31:29
oracle
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • gaokeke123
    专家
戳我,来吐槽~