摘要:为解决python连接sql server是出现的乱码,需要在连接sql server 时指定字符集utf8(client charset = UTF-8),python环境制定了字符集变量(#coding=utf-8 )vi /etc/freetds/freetds.conf[global]# T...
阅读全文
摘要:通过WITH来使用nolock或者readpast;两者区别为:使用with(nolock)的时候可以看到被锁的资源而使用with(readpast)则看不到被锁资源比如一张表中现有20条数据,其中有一个事务是在删除一条记录,但并没有commit此时在另外一个会话中进行COUNT(*),则:SELE...
阅读全文
摘要:首先说下,由于最新的 0.8 版还是开发版本,因此我使用的是 0.79 版,API 也许会有些不同。因为我是搭配 MySQL InnoDB 使用,所以使用其他数据库的也不能完全照搬本文。接着就从安装开始介绍吧,以 Debian/Ubuntu 为例(请确保有管理员权限):MySQLapt-get in...
阅读全文
摘要:我有个需求,需要在MYSQL下like查询另一条sql查询的结果,大概格式如下:select * from table1 where `text` like '%(select name from table2 where id =3)%';请问如何才是正确格式?谢谢正确答案已出:使用CONCAT SQL语句为:select * from table1 where `text` like CONCAT('%',(select name from table2 where id =3),'%');
阅读全文
摘要:练习使用Hibernate没有用MySQL数据库,而是用了前不久接触的PostgreSQL,由于不同的数据对于相同的操作有各自的函数,MySQL的date_format(),在PostgreSQL中是没有的,google一番发现原来是要用to_char()。 搜索到一篇英文文章《Executing Common SQL Coding Tasks Using Function Calls》(常用SQL函数调用的区别),其中列出了如:MS SQL Server、MySQL、Oracle、PostgreSQL,这几个常用数据库中的常用函数。 边翻译加自己的补充,分成几个文章共享给大家。方便以后...
阅读全文
摘要:事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf。在 SQL Server 7.0 和 SQL Server 2000 中,如果设置了自动增长功能,事务日志文件将会自动扩展。一般情况下,在能够容纳两次事务日志截断之间发生的最大数量的事务时,事务日志的大小是稳定的,事务日志截断由检查点或者事务日志备份触发。然而,在某些情况下,事务日志可能会变得非常大,以致用尽空间或变满。通常,在事务日志文件占尽可用磁盘空间且不能再扩展时,您将收到如下错误消息:Error:9002, Severity:17, State:2The log file for dat
阅读全文
摘要:简介 在SQL Server中,存储数据的最小单位是页,每一页所能容纳的数据为8060字节.而页的组织方式是通过B树结构(表上没有聚集索引则为堆结构,不在本文讨论之列)如下图: 在聚集索引B树中,只有叶子节点实际存储数据,而其他根节点和中间节点仅仅用于存放查找叶子节点的数据. 每一个叶子节点为一页,每页是不可分割的. 而SQL Server向每个页内存储数据的最小单位是表的行(Row).当叶子节点中新插入的行或更新的行使得叶子节点无法容纳当前更新或者插入的行时,分页就产生了.在分页的过程中,就会产生碎片. 理解外部碎片 首先,理解外部碎片的这个“外”是相对页面来说的。外部碎片指的是...
阅读全文
摘要:关键字: update set from下面是这样一个例子:两个表a、b,想使b中的memo字段值等于a表中对应id的name值 表a:id, name 1 王 2 李 3 张 表b:id,ClientName 1 2 3 (MS SQL Server)语句:update bset ClientName= a.namefrom a,bwhere a.id = b.id(Oralce)语句:update bset (ClientName)=(SELECT nameFROM a WHERE b.i...
阅读全文
摘要:写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执
阅读全文
摘要:简介 SQL Server 2012中在Order By子句之后新增了OFFSET和FETCH子句来限制输出的行数从而达到了分页效果。相比较SQL Server 2005/2008的ROW_Number函数而言,使用OFFSET和FETCH不仅仅是从语法角度更加简单,并且拥有了更优的性能。限制返回的行数以下示例使用 OFFSET 和 FETCH 限制查询返回的行数。A.指定整数常量以提供 OFFSET 和 FETCH 值以下示例将一个整数常量指定为 OFFSET 和 FETCH 子句的值。第一个查询返回所有按DepartmentID列排序的行。将此查询返回的结果与后面的两个查询的结果进行比较。
阅读全文
摘要:SQL SERVER2012在ORDER BY 子句中加入了新元素offset,允许用户在排序完成的结果集中自定义输出行范围,大大简化了分页SQL的书写方式和效率use master go set nocount on go set showplan_text on go --2012的OFFSET分页方式 select number from spt_values where type='p' order by number offset 10 rows fetch next 5 rows only; go --2005的ROW_NUMBER分页方式 select numbe
阅读全文
摘要:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象在新建数据库或附加数据库后,想添加关系表,结果出现下面的错误:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或ALTERAUTHORIZATION语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。按照第一种方式更改怎么也不行,并且文件的所有者也是sa。网友给出了一种方法,运行以下命令:ALTER AU
阅读全文
摘要:表列如果你的列名是数据库的保留字,在Property中用"`"声明列名[Property("`User`")]public String User{ get { return _user; } set { _user = value; }}复制代码不要使用Status做列名,它是NHibernate的保留字,否则ActiveRecord会抛异常:Ambiguous column name 'Status'可以使用枚举作为列的类型,在数据库中将创建整数类型的列对象保存到数据库的时机只有在会话Flush()或事务Commit()的时候,对象才
阅读全文
摘要:一个 多对多关系 可以转换成两个 一对多关系下面举例说明:有 学生表 与 选修课程表 多对多关系一个学生可以选择多门课程, 一门课程可以被多个学生选修.需要新增加一个 学生选修课程情况表,2个字段(学生编号, 课程编号)然后 学生表 与 学生选修课程情况表 为 一对多关系.选修课程表 与 学生选修课程情况表 为 一对多关系.
阅读全文