随笔分类 - 数据库技术
自己对数据库的一些总结
摘要:很多程序员视 SQL 为洪水猛兽。SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言、面向对象的程序语言、甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言)。我们每天都在写 SQL 并且应用在开源软件 jOOQ 中。于是我想把 SQL 之美介绍给那些仍然对它头疼不已的朋友,所以本文是为了以下读者而特地编写的:1、 在工作中会用到 SQL 但是对它并不完全了解的人。2、 能够熟练使用 SQL 但是并不了解其语法逻辑的人。3、 想要教别人 SQL 的人。本文着重介绍 SELECT 句式,其他的 DML (Data Manipulation Languag
阅读全文
摘要:走向DBA[MSSQL篇] - 从SQL语句的角度提高数据库的访问性能最近公司来一个非常虎的DBA,10几年的经验,这里就称之为蔡老师吧,在征得我们蔡老同意的前提下 ,我们来分享一下蔡老给我们带来的宝贵财富,欢迎其他的DBA来拍砖。 目录1、什么是执行计划?执行计划是依赖于什么信息 2、 统一SQL语句的写法减少解析开销 3、 减少SQL语句的嵌套 4、 使用“临时表”暂存中间结果 5、 OLTP系统SQL语句必须采用绑定变量 6、 倾斜字段的绑定变量窥测问题 7、 begin tran的事务要尽量地小 8、 一些SQL查询语句应加上nolock 9、加nolock后查询经常发生页分裂的表,容
阅读全文
摘要:SELECT DrawID,MAX(CASE PropertyTextID WHEN 21 THEN Text ELSE NULL END) AS uName , MAX(CASE PropertyTextID WHEN 10 THEN Text ELSE NULL END) AS uPositon , MAX(CASE PropertyTextID WHEN 5 THEN Text ELSE NULL END) AS uTelFROM GaituApp.dbo.TemplateDrawText GROUP BY DrawID
阅读全文
摘要:-- TRY...CATCH 处理BEGIN TRY;-- ========================================-- 不需要事务处理的T-SQL 批处理-- ========================================-- 开启事务 BEGIN TRAN ;-- ------------------------------------------ 这里放置处于事务中的各种处理语句-- ---------------------------------------- IF XACT_STATE() = 1 C...
阅读全文
摘要:查看sql语句执行时间/测试sql语句性能写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。 通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。 SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。 SET STATISTICS TIM
阅读全文
摘要:SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如: 如果你的查询语句是select * from admin where username="&user&" and password="&pwd&"" 那么,如果我的用户名是:1 or 1=1 那么,你的查询语句将会变成: select * from admin where username=1 or 1=1 and password=
阅读全文
摘要:场景如下,传入的id,如1,3,4,88。可以在.net后台处理,但是我更习惯在数据库中操作。插入数据时可以这样处理,直接贴代码。 CREATE PROCEDURE pro_CategorySave ( @ids VARCHAR(400) , @type INT , @TemplateID INT , @CategoryID INT ) AS BEGIN DECLARE @str VARCHAR(8000) ; DELETE FROM GaituApp.dbo.TemplateRelat...
阅读全文
摘要:例如:TRUNCATE TABLE GaituApp.dbo.Templates
阅读全文
摘要:首先感谢博客园的童鞋,才有这篇文章的产生,也感谢王筝的歌曲,让我有继续写下去的动力。1.首先介绍关于sqlserver2005及以上的一个cte的语法。CTE通过关键字WITH建立,其模板为:WITH CTE_name[ (column_name [,...n] ) ] AS ( CTE_query_specification )我先简单介绍一下CTE(Common Table Expression)是什么 ,然后简要介绍下用法和注意事项什么是CTE:Common Table Expression:是Sql2005推出的语法,类似内置临时表,创建后自动消亡,在cte中可以进行递归查询等操作紧跟
阅读全文
摘要:有一个表: BH GZLB JE ---------------------- 001 A 100 001 B 150 001 C 110 002 A 99 002 B 180 002 C 150 003 A 160 003 B 170 003 C 130 用SQL语句如何将上面的表变成下面横向的排列方式呢。 BH A B C ------------------- 001 100 150 110 002 99 180 150 003 160 170 130 (GZLB 里面的字段是动态的,不是只有A,B,C 可能还有A,B,C,D,E...) 先创建以上的测试数据表 1 if exists.
阅读全文
摘要:数据库设计的三大范式:①第一范式 (1st NF)第一范式的目标是确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)②第二范式 (2nd NF)如果一个关系满足1NF,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF)第二范式要求每个表只描述一件事情③第三范式 (3rd NF)如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)④BCNF如果关系模式R(U,F)的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。或是关系模式R,如果每个决定因
阅读全文

浙公网安备 33010602011771号