若数据库
❶ 若数据库有一个字段中存有形如 123.345.456.789 数据,请问如何只保留456,也就是倒数第二段中的数据
建议创建一个函数负责计算变更后的结果字符串,然后在更新语句或查询语句中使用此函数来获取此倒数第二段中的数据。
如果是SQL Server数据库,可以使用如下函数:
createfunctiondbo.fn(@snvarchar(100))
returnsnvarchar(100)
as
begin
declare@tnvarchar(100),@i1int,@i2int
set@t=reverse(@s)
set@i1=charindex('.',@t)--获取最后一个分隔符号
if(@i1>0)--有分隔符号存在
begin
set@i2=charindex('.',@t,@i1+1)--获取倒数第二个分隔符号
if@i2=0--处理倒数第二个分隔符号不存在的情况
begin
set@i2=len(@s)+1
end
returnleft(right(@s,@i2-1),@i2-@i1-1)--返回倒数第二段子字串
end
return@s--没有分隔符号存在的情况下返回原字符串
end
调用:
selectdbo.fn(fieldName),*fromtbName
其中,fieldName是要计算的列名, tbName是数据表名。
如果不是SQL Server数据库,可以照此逻辑修改成对应的函数。
❷ jsp向数据库插入数据时,若数据库已有此数据怎样实现提示数据库已有此数据
1.首先给数据库里面,业务数据,加唯一约束。(如果不加唯一约束,也可能会出现问题)
2.然后每次写数据的时间先做一次COUNT。如果COUNT出来的记录大于0,则提示对应的业务异常
❸ 在SQL语句中查询数据时若数据库中没有数据将值设为0
用left join就好,没有join上的会显示null,
用isnull(num,0)函数处理一下就好
❹ 用SQL语句删除数据库中的逻辑文件,若数据库的该逻辑文件有信息,是否能删除
没有简单的方法来删除表空间的数据文件,唯一的方法是删除整个定义的表空间,步骤有下面(前提是这个数据文件上的数据是不需要了):因为使用alter database datafile 'name' offline drop,也可以物理的删除一个数据文件但它的信息仍然记录在数据字典中(不影响数据库的运行)。
如果数据库运行在非归档模式:
1. MOUNT数据库 - startup mount
2. 删除数据文件 - alter database datafile xxx offline drop
3. 打开(OPEN)数据库 - alter database open
4. 查看属于该表空间的所有对象:
select owner, segment_name, segment_type
from dba_segments
where tablespace_name='tbs_name'
5. 导出该表空间的所有对象------用exp命令来做
6. 删除表空间 - drop tablespace tbs_name including contents
7. 删除这个表空间的所有物理的数据文件Delete the physical datafiles belonging to the tablespace
8. 重建表空间,导入前面导出的DMP文件.
如果数据库是运行在归档模式:
1. MOUNT数据库 - startup mount
2. 删除数据文件 - alter database datafile xxx offline
(Note: offline这个数据文件,此数据文件还是属于这个数据库的一部分,只是在控制文件中将它的状态标记为offline.)
3. 在操作系统一级删除物理的数据文件
4. 打开(OPEN)数据库 - alter database open
5. 后面的可以做下面操作:
导出该表空间的对象
删除表空间
重建表空间并导入对象
如果数据库运行在归档模式下,并且数据文件有备份:
1.MOUNT数据库
2.OFFLINE数据文件:alter database datafile xxx offline;
3.将备份的数据文件拷贝到原来数据文件的位置.
4.将备份数据文件到目前的所有归档日志放到归档目录.
5.恢复数据文件:recover automatic datafile xxx(要输入全路径名)
6.然后ONLINE数据文件:alter database datafile xxx online;
7.打开(OPEN)数据库:alter database open;
8.做一次数据库的关机全备份.
❺ 若数据库被人拿到,用户密码被破解的可能性大么
空间商及其员工,机房的人
他们拿你的数据库有用吗?有经济利益吗?有多少?
❻ 若数据库的物理文件有信息,是否能删除
没有简单的方法来删除表空间的数据文件,唯一的方法是删除整个定义的表空间,步骤有下面(前提是这个数据文件上的数据是不需要了):因为使用alter database datafile 'name' offline drop,也可以物理的删除一个数据文件但它的信息仍然记录在数据字典中(不影响数据库的运行)。
如果数据库运行在非归档模式:
1. MOUNT数据库 - startup mount
2. 删除数据文件 - alter database datafile xxx offline drop
3. 打开(OPEN)数据库 - alter database open
4. 查看属于该表空间的所有对象:
select owner, segment_name, segment_type
from dba_segments
where tablespace_name='tbs_name'
5. 导出该表空间的所有对象------用exp命令来做
6. 删除表空间 - drop tablespace tbs_name including contents
7. 删除这个表空间的所有物理的数据文件Delete the physical datafiles belonging to the tablespace
8. 重建表空间,导入前面导出的DMP文件.
如果数据库是运行在归档模式:
1. MOUNT数据库 - startup mount
2. 删除数据文件 - alter database datafile xxx offline
(Note: offline这个数据文件,此数据文件还是属于这个数据库的一部分,只是在控制文件中将它的状态标记为offline.)
3. 在操作系统一级删除物理的数据文件
4. 打开(OPEN)数据库 - alter database open
5. 后面的可以做下面操作:
导出该表空间的对象
删除表空间
重建表空间并导入对象
如果数据库运行在归档模式下,并且数据文件有备份:
1.MOUNT数据库
2.OFFLINE数据文件:alter database datafile xxx offline;
3.将备份的数据文件拷贝到原来数据文件的位置.
4.将备份数据文件到目前的所有归档日志放到归档目录.
5.恢复数据文件:recover automatic datafile xxx(要输入全路径名)
6.然后ONLINE数据文件:alter database datafile xxx online;
7.打开(OPEN)数据库:alter database open;
8.做一次数据库的关机全备份.
❼ 若数据库操作commit发生异常,没有执行回滚,这时数据会存入数据库吗
弄清楚这个问题之前,要先要搞清楚执行数据修改(excute),但未提交事务之前,已修改的数据存放在哪里?这时的数据是在数据库内存缓冲区中。commit操作就是将缓冲区中已修改数据写入磁盘,形成持久化存储。
那么当commit提交的修改的数据是多条时,假设部分数据已经由缓冲区写入磁盘,另一部分还未完成时,出现异常,这个时候,如果不回滚,那么就无法保证数据修改的一致性(比如联机转账,A的账户扣了款,B的账户余额未增加)。
简单来说就是:若数据库操作commit发生异常,没有执行回滚,这时可能出现部分数据保存成功,部分保存失败,因此需要rollback回滚操作。
❽ 若删除已有的数据库必先将其关闭 对还是错
对。
方法如下:
1、在开始菜单中找到“控制面板”,单击打开“控制面板”。
❾ 解决若数据库的编码为GB2312,怎样在yii中
用alter语句. 如果数据库已经有数据表了, 那每个表都要修改. (修改数据库的字符集不会改变原有数据表的字符集)utf8:ALTER DATABASE `数据库` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE `数据表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci gbk (包含gb2312):ALTER DATABASE `数据库` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci ALTER TABLE `数据表` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
❿ 如果数据库中只包含成功事务提交的结果,此数据库状态称为()。
一致性状态
由于硬件的故障,系统软件和应用软件的错误,操作的失误以及恶意的破坏都是不可避免的,这些故障,轻则会造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据部分丢失或全部丢失.为了保证各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致状态,DBMS中的恢复子系统是必不可少的.
恢复子系统的功能就是利用冗余数据,再根据故障的类型采取相应的恢复措施,把数据库恢复到故障前的某一时刻的一致性状态.