SQLServer和Oracle的常用函数对比
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from dual
5.四舍五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from dual 1.2346
6.e为底的幂
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from dual 2.71828182
7.取e为底的对数
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from dual; 1
8.取10为底对数
S:select log10(10) value 1
O:select log(10,10) value from dual; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from dual 16
10.取平方根
S:select SQRT(4) value 2
......
select *
from (
select soft.NETMODEL,
soft.softname,
soft.softid,
soft.SOFTVER,
soft.createdate,
row_number() over(partition by softname order by softId desc) indexId
from ZTEspt_Soft_File soft
where soft.softkind = 7)
where indexId = 1;
要解决的问题
已解决的效果
......
sql replace 替换字段中部份指定内容
创建数据库教程
create database cnnet;
创建数据表
CREATE TABLE `cnnet`.`test` (
`id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
`url` VARCHAR( 50 ) NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM
插几条数据:
INSERT INTO `test` (`id`, `url`) VALUES
(1, 'www.1aa.cm'),
(2, 'www.1aa.cm'),
(3, 'www.1aa.cm'),
(4, 'www.1aa.cm'),
(5, 'www.111cn.net'),
(6, 'www.111cn.net');
下面我们来看看sql replace 替换字段中部份指定内容入门教程吧。
创建数据库连接
*/
$cn = mysql教程_connect('127.0.0.1','root','root') or die('数据库连接失败');
$sql = "select * from test where url like '%1aa.cm%' ";
$result = mysql_db_query( 'cnnet',$sql,$cn );
while( $rs = mysql_fetch_array( $result ) )
{
echo $rs['url'],'<br />';
}
/*
输出结果
www.1aa.cm
www.1aa.cm
www.1aa.cm
www.1aa.cm
好结果出来了,我们正式进行正题,replace替换内容,我们要求把1aa.cm全部替换成111cn.net
*/
$sqlReplace ="update test set url = replace('1aa.cm','111cn.net',url) WHERE ur ......
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
2、I/O吞吐量小,形成了瓶颈效应。
3、没有创建计算列导致查询不优化。
4、内存不足
5、网络速度慢
6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)
7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)
8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。
9、返回了不必要的行和列
10、查询语句不好,没有优化 ●可以通过如下方法来优化查询 :
1)把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要.
2)纵向、横向分割表,减少表的尺寸(sp_spaceuse)
3)升级硬件
4)根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段
5)提高网速;
6)扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。配置虚拟内存:虚拟内存大小 ......
-- 查看当前db的登陆
select * from sys.sql_logins
-- 审核登陆数据库的用户
sql server managerment studio中,右键点开服务器的属性,在安全性页签中, 选中审核“成功和失败的登陆”,所有登陆都会在..MSSQL\Log\ERRORLOG中记录一条记录。
如果勾选“启用C2审核跟踪”,将会在..MSSQL\Log\目录中,不断的增加audittrace201000502112519_15.trc文件,记录每一个对语句和对象的所有访问的审核. 可使用SQL Server Profiler打开查看。(需手动删除该类文件,否则磁盘必满。)
-- SQL Server Profiler
sys.traces ......
1、 打开pl/sql 中tools-preferences,设置Connection中的Oracle Home为oracle9,OCI library为oracle9 如图
2、
将oralce10目录下的tnsnames.ora文件里面的所要导出的oralce10的服务配置 复制到oracle9目录下的tnsnames.ora文件里面
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = liuming-7a85f7f)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
3、重新打开PL/SQL,选择导出工具,将Export Exceutalbe 选择为oracle9的Exp.EXE,导出数据
4、然后登陆到要导入到的oralce9服务器,选择oralce9的 imp.exe将将刚才导出的数据文件.dmp导入到oracle9数据库中。 ......
1、 打开pl/sql 中tools-preferences,设置Connection中的Oracle Home为oracle9,OCI library为oracle9 如图
2、
将oralce10目录下的tnsnames.ora文件里面的所要导出的oralce10的服务配置 复制到oracle9目录下的tnsnames.ora文件里面
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = liuming-7a85f7f)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
3、重新打开PL/SQL,选择导出工具,将Export Exceutalbe 选择为oracle9的Exp.EXE,导出数据
4、然后登陆到要导入到的oralce9服务器,选择oralce9的 imp.exe将将刚才导出的数据文件.dmp导入到oracle9数据库中。 ......