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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:   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);

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
10 4
|
11天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
23 7
|
11天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
16 6
|
11天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
16 5
|
10天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
25 2
|
10天前
|
监控 Java 数据库连接
在Java开发中,数据库连接管理是关键问题之一
在Java开发中,数据库连接管理是关键问题之一。本文介绍了连接池技术如何通过预创建和管理数据库连接,提高数据库操作的性能和稳定性,减少资源消耗,并简化连接管理。通过示例代码展示了HikariCP连接池的实际应用。
14 1
|
18天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
19天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
20天前
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
21 1
|
2天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
14 4

推荐镜像

更多
下一篇
无影云桌面