oracle数据库实际项目中开发经验总结(上)

简介:   1、在ORACLE中返回游标结果集  写包:  create or replace package pag_cs_power as  type c_Type is ref cursor;  FUNCTION FUN_CS_GETDICTLIST(  v_DictIndex in varchar2) return c_Type;  end pag_cs_power;  函数:

  1、在ORACLE中返回游标结果集

  写包:

  create or replace package pag_cs_power as

  type c_Type is ref cursor;

  FUNCTION FUN_CS_GETDICTLIST(

  v_DictIndex in varchar2) return c_Type;

  end pag_cs_power;

  函数:

  FUNCTION FUN_CS_GETDICTLIST(

  v_DictIndex in varchar2) return c_Type

  as

  c_cursor c_Type;

  begin

  open c_cursor for

  select DICTID,DICTNAME FROM SYS_DICT WHERE DICTINDEX=v_DictIndex;

  return c_cursor;

  end FUN_CS_GETDICTLIST;

  2、单引号的插入问题

  SQL> insert into a values('i''m good'); --两个''可以表示一个'

  SQL> insert into a values('i'||chr(39)||'m good'); --chr(39)代表字符'

  SQL> insert into a values('a'||'&'||'b');

  3、全数据库的导入与导出

  exp username/password full=y file=yourdata.dmp grants=y rows=y

  imp username/password full=y ignore=y file=yourdata.dmp grants=y

  4、exp与imp的具体用法

  exp username/password@mzbs_61 full=y file=yourdata.dmp grants=y rows=y

  imp username/password full=y ignore=y file=yourdata.dmp grants=y

  exp mzbs/mzbs@mzbs_61 file=c:/zzzzzzz.dmp grants=y rows=y

  imp mzbs/mzbs@mzbs_61 file=c:/zzzzzzz.dmp grants=y ignore=y FULL=Y

  5、如果在like的变量中,是以‘%’开头的话,是不会使用index的。反之,不是以‘%‘开头,而又有相应的index,是会使用index的。具体可以用plain plan来看一下。6、复制空表结构

  create table new_table

  as select * from old_table where 1=2;

  复制表(含记录)

  create table new_table

  as select * from old_table ;

  7、把一个用户下的表导入到另一个用户下,但需要改名

  先用exp导出所有的表;

  用imp将导出的表导入到新用户;

  在新用户下,执行

  select 'RENAME TABLE '||tname||' TO NEW_'||tname||';'

  from tab

  where tabtype='TABLE';

  将上面的查询结果保存到一个sql文件中,处理后执行就可以了。

  8、审计步骤

  修改参数文件init.ora,参数audit_trail值为true;

  重新启动数据库;

  打开审计audit session; (audit session by username)

  执行登录操作;

  察看审计结果:

  select * from dba_audit_session;

  select * from sys.aud$;

  select * from dba_audit_trail;

  select * from dba_audit_exists;

  关于审计:

  为了使oracle8i的审计功能可用,必须在数据库参数文件中修改audit_trail初始参数,而这个修改并不支配oracle8i把生成的审计记录记入审计痕迹中,

  由于状态,特权和模式对象已被修改,因而审计的默认值不可用,其参数应设置为none.下面列出了audit_trail 可用的参数

  db_使数据库审计和全部直属审计记录到数据库审计的痕迹中

  os_是数据库审计依据直属审计记入到操作系统的审计很集中

  none_不可用

  9、如何在Windows 2000下将Oracle完全卸载?

  一、系统环境:

  (1)、操作系统:Windows 2000 Server,机器内存128M

  (2)、数据库: Oracle 8i R2 (8.1.6) for NT 企业版

  (3)、安装路径:D:/ORACLE

  二、卸载步骤:

  (1)、开始->设置->控制面板->管理工具->服务

  停止所有Oracle服务。

  (2)、开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer

  卸装所有Oracle产品

  (3)、运行regedit,选择

  HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE,按del键删除这个入口。

  (4)、运行regedit,选择

  HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services,滚动这个列表,删除所有Oracle入口

  (5)、从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标

  (6)、重新启动计算机,重起后才能完全删除Oracle所在目录

  (7)、删除与Oracle有关的文件,选择Oracle所在的缺省目录C:/Oracle,删除这个入口目录及所有子目录,

  并从Windows 2000目录(一般为C:/WINNT)下删除以下文件

  ORACLE.INI、oradim80.INI

  (8)、WIN.INI文件中若有[ORACLE]的标记段,删除该段

  10、如何使用OEM

  先启数据库服务,再启oracle manager服务。

  否则重建档案资料库

  如果还不行就把

  ORACLEHOME/NETWORK/sqlnet.ora文件的内容

  sqlnet.authentication_services=(NTS)

  改成

  sqlnet.authentication_services=(NONE)

  登录 sysman/oem_temp

  11、分析表

  analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;

  12、表空间管理和用户管理

  --查看表空间和数据文件

  select file_name,tablespace_name,autoextensible from dba_data_files;

  --数据表空间

  CREATE TABLESPACE USER_DATA

  LOGGING

  DATAFILE 'D:/ORACLE/ORADATA/ORCL/test.DBF' SIZE 50m REUSE ,

  'c:/USERS01112.DBF' SIZE 50m REUSE

  AUTOEXTEND

  ON NEXT 1280K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL

  --修改二手游戏账号转让表空间数据文件的路径

  ALTER TABLESPACE app_data

  RENAME

  DATAFILE '/DISK4/app_data_01.dbf'

  TO '/DISK5/app_data_01.dbf';

  ALTER DATABASE

  RENAME FILE '/DISK1/system_01.dbf'

  TO '/DISK2/system_01.dbf';

  --临时表空间

  CREATE TEMPORARY

  TABLESPACE USER_DATA_TEMP TEMPFILE 'D:/TEMP0111.DBF'

  SIZE 50M REUSE AUTOEXTEND

  ON NEXT 1024K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM

  SIZE 1024K

  --增加数据文件

  ALTER TABLESPACE USER_DATA

  ADD DATAFILE 'c:/USERS01113.DBF' SIZE 50M;

  ALTER TABLESPACE USER_DATA

  ADD DATAFILE 'c:/USERS01114.DBF' SIZE 50M

  AUTOEXTEND ON

  ;

  --删除表空间

  DROP TABLESPACE USER_DATA INCLUDING CONTENTS;

  --修改表空间的存储参数

  ALTER TABLESPACE tablespacename

  MINIMUM EXTENT 2M;

  ALTER TABLESPACE tablespacename

  DEFAULT STORAGE (

  INITIAL 2M

  NEXT 2M

  MAXEXTENTS 999 );

  --表空间联机/脱机/只读

  ALTER TABLESPACE tablespacename OFFLINE/ONLINE/READ ONLY;

  --修改数据文件大小

  ALTER DATABASE

  DATAFILE 'c:/USERS01113.DBF' RESIZE 40M;

  --创建用户、赋予权限

  CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY USER_DATA

  DEFAULT

  TABLESPACE USER_DATA TEMPORARY

  TABLESPACE USER_DATA ACCOUNT UNLOCK;

  GRANT CONNECT TO USER_DATA;

  GRANT RESOURCE TO USER_DATA;

  13、表的管理

  --创建表

  CREAE TABLE TABLENAME

  (COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)

  (COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);

  --建表的索引存储分配

  CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K)

  TABLESPACE indx,

  last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,

  dept_id NUMBER(7))

  TABLESPACE data;

  --修改表的存储分配

  ALTER TABLE tablename

  PCTFREE 30

  PCTUSED 50

  STORAGE(NEXT 500K

  MINEXTENTS 2

  MAXEXTENTS 100);

  ALTER TABLE tablename

  ALLOCATE EXTENT(SIZE 500K

  DATAFILE '/DISK3/DATA01.DBF');

  --把表移到另一个表空间

  ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

  --回收空闲的空间(回收到High-water mark)

  全部回收需要TRUNCATE TABLE tablename

  ALTER TABLE tablename

  DEALLOCATE UNUSED;

  --删除表(连同所用constraint)

  DROP TABLE tablename

  CASCADE CONSTRAINTS;

  --给表增加列

  ALTER TABLE TABLENAME

  ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

  --删除表中的列

  ALTER TABLE tablename

  DROP COLUMN columnname;

  ALTER TABLE tablename

  DROP COLUMN columnname

  CASCADE CONSTRAINTS CHECKPOINT 1000;

  --标记列不可用

  ALTER TABLE tablename

  SET UNUSED COLUMN columnname

  CASCADE CONSTRAINTS;

  --删除标记为不可用的列

  ALTER TABLE tablename

  DROP UNUSED COLUMNS CHECKPOINT 1000;

  --继续删除列选项

  ALTER TABLE tablename

  DROP COLUMNS CONTINUE CHECKPOINT 1000;

  --把表放到BUFFER_POOL中去

  ALTER TABLE tablename

  STORAGE (BUFFER_POOL RECYCLE);

  --避免动态分配EXTENT

  ALTER TABLE tablename ALLOCATE EXTENT;

  --把表放到CACHE中去

  ALTER TABLE tablename ALLOCATE CACHE/NOCACHE;

  14、索引管理

  --创建索引

  CREATE INDEX indexname ON TABLENAME(COLUMNNAME);

  CREATE INDEX indexname ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

  --重新建立索引

  ALTER INDEX indexname REBUILD TABLESPACE TABLESPACE;

  --索引分配参数

  ALTER INDEX indexname

  STORAGE(NEXT 400K

  MAXEXTENTS 100);

  --释放索引空间

  ALTER INDEX indexname

  ALLOCATE EXTENT (SIZE 200K

  DATAFILE '/DISK6/indx01.dbf');

  ALTER INDEX indexname

  DEALLOCATE UNUSED;

  --重新整理索引表空间碎片

  ALTER INDEX indexname COALESCE;

  --删除索引

  DROP INDEX indexname

  --把索引放到BUFFER_POOL中

  ALTER INDEX cust_name_idx

  REBUILD

  STORAGE (BUFFER_POOL KEEP);

  15、约束管理

  --建立主键

  ALTER TABLE TABLENAME

  ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)

  --使约束无效

  ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT constraintname;

  ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT constraintname;

  --删除约束

  ALTER TABLE tablename DROP CONSTRAINT constraintname;

  DROP TABLE tablename CASCADE CONSTRAINTS;(删除表后将所用的外键删除)

  --给列增加缺省值

  ALTER TABLE TABLENAME

  MODIFY columnname DEFAULT(value) NOT NULL;

  --给表增加外键

  ALTER TABLE tablename

  ADD CONSTRAINT constraintname

  FOREIGN KEY(column) REFERENCES table1name(column1);

  16、日志文件管理

  --切换日志文件

  ALTER SYSTEM SWITCH LOGFILE;

  --增加日志文件

  ALTER DATABASE ADD LOGFILE

  ('/DISK3/log3a.rdo',

  '/DISK4/log3b.rdo') size 1M;

  --增加日志成员

  ALTER DATABASE ADD LOGFILE MEMBER

  '/DISK4/log1b.rdo' TO GROUP 1

  '/DISK4/log2b.rdo' TO GROUP 2;

  --删除日志文件

  ALTER DATABASE DROP LOGFILE GROUP 3;

  --删除日志成员

  ALTER DATABASE DROP LOGFILE MEMBER '/DISK4/log2b.dbf';

  --清除日志文件内容

  ALTER DATABASE CLEAR LOGFILE '/DISK3/log2a.rdo';

  17、Oracle常见服务

  几个主要的:

  OracleOraHome81TNSListener 监听服务

  OracleServiceSID ORACLE服务

  OracleOraHome81Agent 智能代理服务

  OracleOraHome81CMan 连接管理服务

  OracleOraHome81HTTPServer APACHE WEB 服务

  OracleOraHome81ManagementServer ORACLE 企业管理器服务

  OracleOraHome81Names ORACLE命名服务

  18、ORACLE的热备份

  在不关闭数据库的时候进行ORACLE的备份。

  原理停复杂的,你去找本书看看吧。

  举个简单的例子:备份表空间USERS

  ALTER TABLESPACE USERS BEGIN BACKUP

  COPY USERS TABLESPACE 的数据文件到备份目录

  ALTER TABLESPACE USERS END BACKUP

  19、导致索引不起作用的解决办法

  问题是由optimizer_mode参数引起的,该参数的默认值为choose,即为如表有statis则查询走基于cost的方式,否则走基于rule的方式,因些你可以有以下几个解决方法。

  (1)、简单的在init.ora中设optimizer_mode=rule,重起数据库。

  (2)、使用analyze table table_name(索引基表) delete statistics;

  (3)、最后一个万能办法,将表和索引drop掉,重建。

  20、关于数据库进程的问题。

  (1).查看相关进程在数据库中的会话

  Select a.sid,a.serial#,agram, a.status ,

  substr(a.machine,1,20), a.terminal,b.spid

  from v$session a, v$process b

  where a.paddr=b.addr

  and b.spid=&spid;

  (2).查看数据库中被锁住的对象和相关会话

  select a.sid,a.serial#,a.username,agram,

  c.owner, c.object_name

  from v$session a, v$locked_object b, all_objects c

  where a.sid=b.session_id and

  c.object_id=b.object_id;

  (3).查看相关会话正在执行的SQL

  select sql_text from v$sqlarea where address=

  ( select sql_address from v$session where sid=&sid );

  21、查看IP地址

  select SYS_CONTEXT('USERENV','IP_ADDRESS') from dual;

  22、运行SQLPLUS时不用输入用户名和密码,进入之后使用CONNECT

  SQLPLUS /NOLOG

  SQL>CONNECT SCOTT/TIGER

  23、查看当前会话

  userenv() 函数

  select userenv('language') from dual 字符集

  select userenv('isdba') from dual 是否DBA

  select userenv('sessionid') from dual sessionid

  select userenv('TERMINAL') from dual 客户端名字

  select userenv('INSTANCE') from dual 实例数

  SYS_CONTEXT() 函数

  select SYS_CONTEXT('USERENV','CURRENT_SCHEMA') from dual; 当前模式

  select SYS_CONTEXT('USERENV','CURRENT_SCHEMAID') from dual; 当前模式ID

  select SYS_CONTEXT('USERENV','CURRENT_USER') from dual; 当前用户

  select SYS_CONTEXT('USERENV','DB_NAME') from dual; 数据库

  select SYS_CONTEXT('USERENV','HOST') from dual; 主机

  24、删除重复列的方法

  (1) DELETE FROM table_name A WHERE ROWID > (

  SELECT min(rowid) FROM table_name B

  WHERE A.key_values=B.key_values);

  (2) create table table2 as select distinct * from table1;

  drop table1;

  rename table2 to table1;

  (3) Delete from mytable where rowid not in(

  select max(rowid) from mytable

  group by column_name );

  (4) delete from mytable t1

  where exists (select 'x' from my_table t2

  where t2.key_value1=t1.key_value1

  and t2.key_value2=t1.key_value2

  ...

  and t2.rowid > t1.rowid);

  25、ORA-12571: TNS:packet writer failure(包写入程序失败)

  (1) 这个错误在客户端遇到过,通常重新连接一下服务器就好了。

  服务器重新启动的时候,在client也会遇到该错误。

  这个错误你是在server还是client上遇到的?最常用的办法就是加上跟踪,查看一下 跟踪记录,分析分析错误的原因。

  网络问题也会出现该错误,比如网络路由没有配置好。

  (2) 安装的杀毒软件导致的

  (3) 服务器端的IP是否被改动

  (4) 最后不行的话,重新创建监听器

  26、ORACLE服务不能自动启动的解决办法

  把

  ORACLEHOME/network/ADMIN/sqlnet.ora

  文件中的

  sqlnet.authentication_service=(nts)

  注释掉就可以了

  27、不完全的时间点恢复

  shutdown immediate

  copy 备份文件到需要恢复的目录下

  startup mount

  recover database until time '2002-12-26 09:00:00'

  alter database open resetlogs

  自己仔细检查一下,不会发生这样的问题的。

  28、oracle如何设置查询超时

  select /+ timeout 30/ * from veryLargeTable

  29、修改字符集

  (1)、ALTER DATABAE CHARACTER SET SIMPLIFIED CHINESE_CHINA.ZHS16GBK ;

  (2)、update props$ set value$='ZHS16CGB231280'

  where name='NLS_CHARACTERSET';

  update props$ set value$='ZHS16CGB231280'

  where name='NLS_NCHAR_CHARACTERSET';

  建议不使用(2)

  注意:

  (1)、执行ALTER DATABASE CHARACTER SET必须有SYSDBA权限,并且在STARTUP RESTRICT模式下执行

  (2)、原字符集必须是目标字符集的一个真子集(就是浪子所说的只能从WE8ISO8859P1转到ZHS16GBK的原因)

  (3)、CLOB字段装换可能有问题,建议在转换以前把有CLOB字段的表导出后DROP,转换以后再导回

  (4)、该转换不可逆,所以在做这个操作以前建议做数据库全备份

  30、修改数据库名字

  (1)、启动svrmgrl,以文本方式备份控制文件

  oracle>svrmgrl

  svrmgrl>connect internal

  svrmgrl>alter system backup controlfile to trace

  (2)、编辑产生的跟踪文件,在udump目录下

  改CREATE CONTROLFILE REUSE DATABASE 'CTC' NORESETLOGS ARCHIVELOG

  中的REUSE为SET

  然后把create controlfile这段语句拷出

  (3)、正常宕库,后启动到nomount下

  svrmgrl>shutdown immediate

  svrmgrl>startup nomount

  (4)、执行create controlfile那段语句

  (5)、打开数据库

  svrmgrl>alter database open

  如提示用resetlogs选项则使用

  svrmgrl>alter database open resetlogs

  (8)、相应修改初始化参数

  31、rownum的用法

  SELECT a.ksppinm NAME,

  b.ksppstdf default_val,

  a.ksppdesc DESCRIPTION

  FROM x$ksppi a,

  x$ksppcv b

  WHERE a.indx=b.indx

  AND substr(a.ksppinm,1,1)='_'

  ORDER BY a.ksppinm

  32、如何查看表空间还有多少可以用

  (1)、

  SELECT upper(f.tablespace_name) 表空间名,

  d.Tot_grootte_Mb '表空间大小(M)',

  d.Tot_grootte_Mb - f.total_bytes '已使用空间(M)',

  round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2) '使用比',

  f.total_bytes '空闲空间(M)',

  f.max_bytes '最大块(M)'

  FROM

  (SELECT tablespace_name,

  round(SUM(bytes)/(1024*1024),2) total_bytes,

  round(MAX(bytes)/(1024*1024),2) max_bytes

  FROM sys.dba_free_space

  GROUP BY tablespace_name) f,

  (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb

  FROM sys.dba_data_files dd

  GROUP BY dd.tablespace_name) d

  WHERE d.tablespace_name=f.tablespace_name

  ORDER BY 4 DESC

  (2)、select tablespace_name,round(sum(bytes)/1024/1024,2) 'M' from dba_free_space

  group by tablespace_name

  33、使索引无效

  ALTER INDEX idx UNUSABLE;

  ALTER INDEX idx_acctno DISABLE;(only to a function based index)

  34、在SQLPLUS中给指定用户进行 set autotrace on/off

  以SCOTT用户为例:

  SQL>CONNECT scott/tiger

  connected.

  SQL>@$ORACLE_HOME/RDBMS/ADMIN/UTLXPLAN.SQL

  Table created.

  SQL>CONNECT / AS SYSDBA

  connected.

  SQL>@$ORACLE_HOME/SQLPLUS/ADMIN/PLUSTRCE.SQL

  drop role plustrace;

  Role dropped.

  create role plustrace;

  Role created.

  .

  grant plustrace to dba with admin option;

  Grant succeeded.

  SQL>GRANT PLUSTRACE TO SCOTT;

  Grant succeeded.

  SQL>CONNECT SCOTT/TIGER

  connected.

  SQL>set autotrace on

  35、表空间管理和用户管理

  --查看表空间和数据文件

  select file_name,tablespace_name,autoextensible from dba_data_files;

  --数据表空间

  CREATE TABLESPACE USER_DATA

  LOGGING

  DATAFILE 'D:/ORACLE/ORADATA/ORCL/test.DBF' SIZE 50m REUSE ,

  'c:/USERS01112.DBF' SIZE 50m REUSE

  AUTOEXTEND

  ON NEXT 1280K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL

  --临时表空间

  CREATE TEMPORARY

  TABLESPACE USER_DATA_TEMP TEMPFILE 'D:/TEMP0111.DBF'

  SIZE 50M REUSE AUTOEXTEND

  ON NEXT 1024K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM

  SIZE 1024K

  --增加数据文件

  ALTER TABLESPACE USER_DATA

  ADD DATAFILE 'c:/USERS01113.DBF' SIZE 50M;

  ALTER TABLESPACE USER_DATA

  ADD DATAFILE 'c:/USERS01114.DBF' SIZE 50M

  AUTOEXTEND ON

  ;

  --删除表空间

  DROP TABLESPACE USER_DATA INCLUDING CONTENTS;

  --修改数据文件大小

  ALTER DATABASE

  DATAFILE 'c:/USERS01113.DBF' RESIZE 40M;

  --创建用户、赋予权限

  CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY USER_DATA

  DEFAULT

  TABLESPACE USER_DATA TEMPORARY

  TABLESPACE USER_DATA ACCOUNT UNLOCK;

  GRANT CONNECT TO USER_DATA;

  GRANT RESOURCE TO USER_DATA;

  --把表移到另一个表空间

  ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

  --创建索引

  CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME);

  CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

  --重新建立索引

  ALTER INDEX INDEXNAME REBUILD TABLESPACE TABLESPACE;

  --创建表

  CREAE TABLE TABLENAME

  (COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)

  (COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);

  --建表的索引存储分配

  CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K)

  TABLESPACE indx,

  last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,

  dept_id NUMBER(7))

  TABLESPACE data;

  --建立主键

  ALTER TABLE TABLENAME

  ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)

  --使约束无效

  ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT CONSTRANAME;

  ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT CONSTRANAME;

  --删除约束

  ALTER TABLE TABLENAME DROP CONSTRAINT constraintname;

  DROP TABLE TABLENAEM CASCADE CONSTRAINTS;(删除表后将所用的外键删除)

  --给表增加列

  ALTER TABLE TABLENAME

  ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

  --给列增加缺省值

  ALTER TABLE TABLENAME

  MODIFY COLUMNNAME DEFAULT(VALUE) NOT NULL;

  --给表增加外键

  ALTER TABLE TABLENAME

  ADD CONSTRAINT CONSTRAINTNAME

  FOREIGN KEY(COLUMN) REFERENCES TABLE1NAME(COLUMN1);

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
393 93
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
225 0
|
5月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
5月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
3月前
|
存储 JSON 数据建模
鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇
云数据库采用存储区、对象类型、对象三级结构,支持灵活的数据建模与权限管理,可通过AGC平台或本地项目初始化,实现数据的增删改查及端侧高效调用。
201 1
|
3月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
337 8
|
5月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
291 11
|
5月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
165 3

热门文章

最新文章

推荐镜像

更多