随笔分类 - SQL语言思维
从程序的角度理解SQL语言
摘要:1.索引使用原则 不要对索引使用全模糊,但是 LIKE 'asdf%'是可以的,即不要Contains,可用StartWith 不要对索引进行函数,表达式操作,或者使用is null判断,否则将会使用全表扫描 不等于也会造成全表扫描,使用column 'a' 来替代 如果一个列有索引,另一个无索引,那么 c1 or c2 ,则将会造成全表扫描; 组合索引查询,如果包含前导索引,则会生效,...
阅读全文
摘要:1.oracle字符串分割函数split(1)定义split_type类型: CREATE OR REPLACE TYPE split_type IS TABLE OF VARCHAR2 (4000) (2)定义split函数: CREATE OR REPLACE FUNCTION split ( ...
阅读全文
摘要:1.出错处理 ORA-00911: invalid character。 这是因为在语句末尾加上了";"的缘故,去掉";"SQL就可以执行了~ (这与SQL Server不同) Oracle:文字与格式字符串不匹配的解决 oracle的日期时间类型在往oracle的date类型插入数据的时候,记得要用to_date()方法。 如 insert into CUSLOGS(STA...
阅读全文
摘要:inner join 模板: var query = from x in db.T1 join y in db.T2 on x.Id equals y.Id select x; left join模板: var query = from x in db.T1 join y in db.T2 ...
阅读全文
摘要:1.时间转换1.1 字符串转时间今天需要写SQL语句更新数据库的时间,按照SQL Server的习惯写成UPDATE TABLE ASET LAST_UPDATE = ‘2015-03-24’WHERE ORDER_ID = ‘A12345678’结果提示语法错误想了想,应该是我不知道的Oracle...
阅读全文
摘要:1.Sequence 1.1 什么是Sequence? Sequence是oracle提供的一个对象,用于产生自增的主键。这与sql server的identity是类似的。 从数学的角度来说,其为一个等差数列,在1.2中看到这点。 1.2 详细语法 创建语法: CREATE SEQUENCE sequence //创建序列名称 [INCREMENT BY n] ...
阅读全文
摘要:使用情形1:写数据字典(Word文档)时,需要获取表结构,以加快书写速度,当然,前提是没有文档导出工具。使用情形2:生成实体时,前提也是没有代码生成工具。脚本SELECT A.COLUMN_NAME,CASE WHEN A.CHARACTER_MAXIMUM_LENGTH IS NULL THEN ...
阅读全文
摘要:SQL计算列,可以解决一般标量计算(数学计算,如ColumnA*ColumnB)的问题,而子查询计算(如select sum(salary) from tableOther where id=’ABC’)则没有相应的支持,可以使用触发器的方式来进行实时运算,但是需要增加维护成本。在《数据库重构》一书...
阅读全文