
1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index)依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。
注意:truncate 不能删除行数据,要删就要把表清空。
3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除 *** 作作为事务记录在日志中保存以便进行进行回滚 *** 作。
truncate与不带where的delete :只删除数据,而不删除表的结构(定义)
4、truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。如果要删除表定义及其数据,请使用 drop table 语句。
5、对于由foreign key约束引用的表,不能使用truncate table ,而应使用不带where子句的delete语句。由于truncate table 记录在日志中,所以它不能激活触发器。
6、执行速度,一般来说: drop>truncate >delete。
7、delete语句是数据库 *** 作语言(dml),这个 *** 作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
扩展资料例子:
1、查看数据库
2、切换数据库
3、查看数据库中已创建的表
db2 cmd命令 *** 作
1、 打开命令行窗口
#db2cmd
2、 打开控制中心 www.2cto.com
# db2cmd db2cc
3、 打开命令编辑器
db2cmd db2ce
===== *** 作数据库命令=====
4、 启动数据库实例
#db2start
5、 停止数据库实例
#db2stop
如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了 /db2stop force
6、 创建数据库
#db2 create db [dbname]
7、 连接到数据库 www.2cto.com
#db2 connect to [dbname] user [username] using [password]
8、 断开数据库连接
#db2 connect reset
9、 列出所有数据库
#db2 list db directory
10、 列出所有激活的数据库
#db2 list active databases
11、 列出所有数据库配置
#db2 get db cfg
12、 删除数据库
#db2 drop database [dbname]
(执行此 *** 作要小心)
如果不能删除,断开所有数据库连接或者重启db2
========= *** 作数据表命令==========
13、 列出所有用户表
#db2 list tables
14、列出所有系统表
#db2 list tables for system
15、列出所有表
#db2 list tables for all
16、 列出系统表
#db2 list tables for system
17、列出用户表
#db2 list tables for user
18、 列出特定用户表
#db2 list tables for schema [user]
19、 创建一个与数据库中某个表(t2)结构相同的新表(t1)
#db2 create table t1 like t2
20、 将一个表t1的数据导入到另一个表t2
#db2 "insert into t1 select * from t2"
21、 查询表
#db2 "select * from table name where ..."
22、 显示表结构
#db2 describe table tablename
23、 修改列
#db2 alter table [tablename] alter column [columname] set data type varchar(24)
======脚本文件 *** 作命令=======
24、 执行脚本文件
#db2 -tvf scripts.sql
25、帮助命令
* 查看命令帮助
#db2 ? db2start
* 查看错误码信息
#db2 ? 22001
* memo: 详细命令请使用"db2 ? <command>"进行查看。
=========================
26、备份数据库
#db2 backup db <db name>
备注:执行以上命令之前需要断开数据库连接
27、在线备份数据库
#db2 -v "BACKUP DATABASE <database name>ONLINE TO <path>WITH 2 BUFFERS BUFFER 1024 INCLUDE LOGS WITHOUT PROMPTING"
28、恢复数据库
#db2 restore db <source db name>
29、在线恢复数据库
#db2 "RESTORE DB <database name>TO <db path>LOGTARGET <logpath>WITHOUT PROMPTING"
#db2 "ROLLFORWARD DB <database name>TO END OF LOGS AND STOP" ...
30、导出数据文件
#db2move <db name>export
[-sn <模式名称,一般为db2admin>]
[-tn <表名,多个之间用逗号分隔>]
31、导入数据文件
#db2move <db name>import
32、获取db2数据库管理配置环境信息
#db2 get dbm cfg
33、.获取db2某个数据库数据库管理配置环境信息
#db2 get db cfg for <db name>
或者:连接至某个数据库以后执行db2 get db cfg
34、更改db2日志空间的大小
备注:以下命令为了防止db2数据库过份使用硬盘空间而设,仅用于开发者自己机器上的db2,如果是服务器,则参数需要修改。
#db2 UPDATE DB CFG FOR <db name>USING logretain OFF logprimary 3 logsecond 2 logfilsiz 25600
如果页大小是4KB,则以上命令创建3个100M的日志文件,占用300MB硬盘空间。25600*4KB=102400KB。
35、创建临时表空间
#DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE 'D:\DB2_TAB\STMASPACE.F1' 10000)
EXTENTSIZE 256
36、获取数据库管理器的快照数据
#db2 –v get snapshot for dbm
37、显示进行程号
#db2 list applications show detail
===================================================
一、加载数据:
1、 以默认分隔符加载,默认为“,”号
db2 "import from btpoper.txt of del insert into btpoper"
2、 以指定分隔符“|”加载
db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"
二、卸载数据:
1、 卸载一个表中全部数据
db2 "export to btpoper.txt of del select * from btpoper"
db2 "export to btpoper.txt of del modified by coldel| select * from btpoper"
2、 带条件卸载一个表中数据
db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'"
db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'"
db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'"
三、查询数据结构及数据:
db2 "select * from btpoper"
db2 "select * from btpoper where brhid='907020000' and oprid='0001'"
db2 "select oprid,oprnm,brhid,passwd from btpoper"
四、删除表中数据:
db2 "delete from btpoper"
db2 "delete from btpoper where brhid='907020000' or brhid='907010000'"
五、修改表中数据:
db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'"
db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'"
六、联接数据库
db2 connect to btpdbs
七、清除数据库联接
db2 connect reset 断开数据库连接
db2 terminate 断开数据库连接
db2 force applications all 断开所有数据库连接
八、备份数据库
1、 db2 backup db btpdbs
2、 db2move btpdbs export
db2look -d btpdbs -e -x [-a] -o crttbl.sql
九、恢复数据库
1、 db2 restore db btpdbs without rolling forward
2、 db2 -tvf crtdb.sql
crtdb.sql文件内容:create db btpdbs on /db2catalog
db2 -stvf crttbl.sql
db2move btpdbs import
十、DB2帮助命令:
db2 ?
db2 ? restroe
db2 ? sqlcode (例:db2 ? sql0803) 注:code必须为4位数,不够4位,前面补0
问题一:如何删除数据库中所有数据 你租用数据库时,提供商会给你提供数据库连接IP、登陆用户和密码。你在本地sql数据库管理平台(企业管理器)中远程连接你的数据库,然后进入删除所有表或视图、存订过程等资料。光留一个空库,也没啥大碍。还有个方法就是主动联系客服,申请删除你的数据库。
管理页面上我也没有发现删除数据库的功能。
问题二:怎么删除oracle的数据文件 一、使用offline数据文件的方法
非归档模式使用:alter database datafile '...' offline drop
归档模式使用: alter database datafile '...' offline
说明:
1) 以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。该数据文件的信息在控制文件种仍存在。查询v$datafile,仍显示该文件。
2) 归档模式下offline和offline drop效果是一样的
3) offline后,存在此datafile上的对象将不能访问
4) noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover后进行online *** 作
实际使用案例:
直接删除数据文件后无法进入系统的解决方案
正常情况下,删除表空间的正确方法为:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES
如果没有通过以上命令删除而直接删除了数据文件,将导致数据库无法打开。
如果直接删除了数据文件
普通用户登录时,则报错:
ORA-01033: ORACLE initialization or shutdown in progress
sys用户可以正常登录
但进行 *** 作时(SELECT count(1) FROM user_tables),则会报错:
ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
如果执行命令alter database open以打开数据库时,又报如下错:
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 12: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF'
说明数据库没找到这个数据文件
因为数据文件在没有被offline的情况下物理删除了,导致oracle的数据不一致,因此启动失败.
通过以下方法即可解决
解决方法:
sqlplus [email protected] as sysdba
SQL>alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop
SQL>alter database open
SQL>drop tablespace CTBASEDATA
二、Oracle 10G R2开始,可以采用:Alter tablespace tablespace_name drop datafile file_name来删除一个空数据文件,并且相应的数据字典信息也会清除:
[email protected] >select file_id,file_name,tablespace_name from dba_data_files
2 where tablespace_name='USERS'
FILE_ID FILE_NAME ......>>
问题三:怎么用SQL语句删除数据库中多个文件 REMOVE FILE 只有在文件为空时才能删除。
正常 *** 作步骤:
以下 *** 作在查询分析器上执行即可:
--转到要处理的数据库:
use 库名
go
--查看该库所有的文件:
select [name],[filename] from sysfiles
go
--对指定的文件进行数据移除:
dbcc shrinkfile (上面查询得到的“逻辑文件名”(定Name那列), EMPTYFILE)
go
--将一定移除了数据的指定文件删除:
ALTER DATABASE 库名 REMOVE FILE 上面查询得到的“逻辑文件名”
Go
问题四:如何删除sql数据库的日志文件 其中database为你的库名 --压缩日志1:截断事务日志:BACKUP LOG 数据库名 WITH NO_LOG2:清空日志DUMP TRANSACTION 库名 WITH NO_LOG再:企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了3: 删除LOG1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K再将此数据库设置自动收缩或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。EXEC sp_detach_db @dbname = 'pubs'EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs.mdf'4: 如果想以后不让它增长企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)5.设置为自动收缩
问题五:oracle中如何删除数据库的实例 想彻底删除的话,建议你还是用DBCA,这样删除的比较彻底,
跟这个实例相关的内容都会被删除的!
开始――程序――Oracle10g――配置和移植工具―DBCA
进入DBCA后,选择删除数据库,就会显示你机器上的
所有实例数据库,选择要删除的就OK
问题六:如何删除outlook数据文件 “开始”---进入“控制面板”,然后找到“邮件”,打开,然后有个“配置文件”,点击“显示配置文件”。把里面有的所有配置文件都删除就行了 一般是只有一个。删除就OK了。这样 outlook2012所有数据都会删除,跟你刚装完是一样的,再打开 就会提醒你重新配置了。
问题七:怎么修改或删除mdb数据库文件里面的东西呀? mdb是access数据库的文件,你可以安装office专业版(2003以上的版本),就可以打开这些文件对其进行修改或删除,但是由于其原先是网站后台数据,可能会有密码否则是无法打开的。
问题八:sql数据库我把表删除了,为什么数据库文件还是那么大?请问怎么才能彻底把数据库文件弄小? create database dbName
on( ...
size=10mb,
...)
是不是建库的时候初始设置大了?
----------
数据库在使用过程中会因需要而不断扩张,你删除表或者大量数据,数据库虽然内容少了,但占用的资源不会少.需要使用数据库收缩命令.
DBCC SHRINKDATABASE(dbName)
或者右键:
企业管理器--目标数据库--所有任务--收缩数据库--收缩文件 --选择数据文件
问题九:如何从表空间中“删除”数据文件 存在两种情况可能需要从表空间中“移走”数据文件。1. 你不小心给一个表空间增加了一个数据文件,或者你把文件大小设得过大,所以想把它删掉。2. 你正在进行恢复,因为丢失了一个数据文件所以不能启动数据库。本文主要处理第一种情况,有别的文章来讲述由于丢失数据文件而不能使用数据库的恢复问题。在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表。视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。在对表空间/数据文件进行任何脱机、删除之前,首先对数据库进行一个全备份。 如果数据文件是所在表空间的唯一的数据文件,你只要简单地删除表空间即可:DROP TABLESPACE INCLUDING CONTENTS你可以运行下面的命令来查询表空间包含多少数据文件。select file_name, tablespace_namefrom dba_data_fileswhere tablespace_name =''DROP TABLESPACE命令从Oracle数据字典删除表空间、数据文件和表空间的内容。Oracle不会再访问该表空间中的任何内容。物理地删除文件需要使用 *** 作系统命令(Oracle从不物理地删除文件注:本文是针对8i或者之前,9i可以使用including datafile选项来删除物理文件>),依赖你的 *** 作系统平台,有的 *** 作系统需要Oracle完全关闭才才可以删除(例如在WINDOWS NT 中需要关闭数据库,停掉相应的服务,在有的情况下Oracle还可能持有文件锁)。如果你的表空间有多个数据文件,而你不需要表空间中的内容,或者你可以很容易重新生产表空间的内容,你可以使用DROP TABLESPACE INCLUDING CONTENTS命令来从Oracle数据字典删除表空间、数据文件和表空间的内容。Oracle不会再访问该表空间中的任何内容。然后重新创建表空间并重新导入数据。如果你的表空间有多个数据文件,而你还需保留该表空间中的其它数据文件中的内容,则你必须首先export出该表空间中的所有内容。为了确定表空间中包含那些内容,运行:select owner,segment_name,segment_typefrom dba_segmentswhere tablespace_name=''export出你想保留的内容。如果export结束,你可以使用DROP TABLESPACE tablespace INCLUDING CONTENTS. , 这样永久删除表空间的内容,使用 *** 作系统命令物理删除数据文件,按所需数据文件重新创建表空间,把数据import至表空间。注意:ALTER DATABASE DATAFILE OFFLINE DROP命令不能允许你删除数据文件,它的目的是脱机该数据文件以删除表空间。如果在归档模式下,使用ALTER DATABASE DATAFILE OFFLINE DROP来代替OFFLINE DROP。一旦数据文件脱机,Oracle不会再访问该数据文件的内容,但它仍然是表空间的一部分。这个数据文件在控制文件中标记OFFLINE,在数据库启动时不会对它与控制文件进行SCN的比较。在控制文件中保留这个数据文件的入口是方便以后的恢复。如果你不想按照上述方法来删除表空间,还有其它一些解决方法。1. 如果你想删除数据文件的原因是因为分配了不合适的文件大小,你可以考虑RESIZE命令。2. 如果你不小心增加......>>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)