触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。1.触发器组成:触发事件:引起触发器被触发的事件。例如:DML语句(INSERT,UPDATE,DELETE语句对表或视图执行数据处理操作)、DDL语句(如CREATE、ALTER、DROP语句在数据库中创建、修改、删除模式对象)、数据库系统事件(如系统启动或退出、异常错误)、用户事件(如登录或退出数据
系统 2019-08-29 23:16:38 4003
CREATETRIGGERnews_logAFTERINSERTONnews;FOREACHROWINSERTINTO`news_logs`select*,now()fromnewswherenewsid=(selectmax(newsid)fromnews);DROPTRIGGERnews_log;一共两个表,一个是原始表news,一个是日志表news_logs(多了一列日期),可以实现新插入时自动记录日志,不用写代码了。类似还可以实现更新时插入更新日志
系统 2019-08-29 22:55:21 3969
select10+10+10fromdual结果是30,全然没问题。selectnull+10+10fromdual结果是空串,但期望的结果是20。selectnvl(null,0)+10+10fromdual这样处理结果为20。若查询有空值的情况需利用nvl处理,否则运算有误。selectnull||10||10fromdual字符串拼接没有问题。Oracle中空值与数字相加问题
系统 2019-08-12 01:55:14 3967
在CSDN找到了相同的问题描述和解决方法:问题:我的表某个字段是Datetime型以"YYYY-MM-DD00:00:00"存放如A2009-01-2221:22:22B2009-01-2219:21:11C2009-01-2223:10:22现在用select*fromTABLEwheredatebetween'2009-1-22'And'2009-1-22'想查日期为2009-1-22的记录结果查不到有什么办法吗解决:1:createtabletb(i
系统 2019-08-12 01:52:31 3965
原文:SqlServer索引的原理与应用索引的概念索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法。索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录可以快速找到你想要的信息,而不需要读完全书。在数据库中,数据库程序使用索引可以重啊到表中的数据,而不必扫描整个表。书中的目录是一个字词以及各字词所在的页码列表,数据库中的索引是表中的值以及各值存储位置的列表。索引的利弊:查询
系统 2019-08-12 01:32:58 3940
1,查Oracle数据库创建时候的字符集:Oracle服务器端执行SQL>selectname,value$fromsys.props$wherenamelike'NLS%';NAMEVALUE$----------------------------------------------------------------------NLS_LANGUAGEAMERICANNLS_TERRITORYAMERICANLS_CURRENCY$NLS_ISO_C
系统 2019-08-12 01:51:54 3933
学校某网站当时做的时候,找的外面的人做的。虽然做的很好,但是部署起来相当麻烦,而且还没有文档。昨天就出了问题,是图片处理出了问题。我又按照控制台的错误提示,上网查了查,原来是需要安装ImageMagick和jMagick。今天又出现了问题,页面上的通知公告没有数据。控制台显示Mysql错误:"Userdoesnothaveaccesstometadatarequiredtodeterminestoredprocedureparametertypes....
系统 2019-08-12 01:52:44 3913
SQL>showparameteropen_cursors--每个session(会话)最多能同时打开多少个cursor(游标)NAMETYPEVALUE-----------------------------------------------------------------------------open_cursorsinteger300SQL>showparametersession_cached_cursor--每个session(会话)最
系统 2019-08-29 22:33:53 3902
良好的命名习惯是一种美德,下面是个人整理的数据库命名规范:数据库命名规范:1.数据库名:1.1)用产品或项目的名字命名;1.2)PascalCase,如AdventureWork;1.3)避免使用特殊字符,如数字,下划线,空格之类;1.4)避免使用缩写2.表名2.1)使用复数,PascalCase,而复数只加在最后一个单词上如:Products,Users,UserRoles2.2)避免使用特殊字符,如数字,下划线,空格之类;2.3)避免使用缩写3.列名3
系统 2019-08-12 01:53:27 3896
几种SQL取日期部分的方法:一.convertconvert(varchar(10),getdate(),120):varchar(10)截取位数可以调节,最多能显示19位(varchar(19))如:2009-12-1210:10:10->2009-12-12不带世纪数位(yy)(1)带世纪数位(yyyy)标准输入/输出(3)-0或100(1,2)默认monddyyyyhh:miAM(或PM)1101美国mm/dd/yyyy2102ANSIyy.mm.d
系统 2019-08-12 01:53:25 3858
原文:SQLSERVER统计服务器所有的数据库(数据库文件)、表(表行数)、字段(各字段)等详细信息USESTATGOSETNOCOUNTONIFEXISTS(SELECT1FROMSYS.TABLESWHERETYPE='U'ANDname='DBInfo')DROPTABLEDBInfoIFEXISTS(SELECT1FROMSYS.TABLESWHERETYPE='U'ANDname='ColumnsInfo')DROPTABLEColumnsInf
系统 2019-08-12 01:34:00 3853
一、使用EXPLAIN:PostgreSQL为每个查询都生成一个查询规划,因为选择正确的查询路径对性能的影响是极为关键的。PostgreSQL本身已经包含了一个规划器用于寻找最优规划,我们可以通过使用EXPLAIN命令来查看规划器为每个查询生成的查询规划。PostgreSQL中生成的查询规划是由1到n个规划节点构成的规划树,其中最底层的节点为表扫描节点,用于从数据表中返回检索出的数据行。然而,不同的扫描节点类型代表着不同的表访问模式,如:顺序扫描、索引扫描
系统 2019-08-12 01:55:14 3849
数据库所在位置将数据导出到的文件名用户名备份数据库:expcsm/csm@127.0.0.1/orclfile=c:/baoan_1.1.0_20120816.dmpowner=(csm)数据库所在位置需要导入数据的文件名恢复数据库:impcsm/csm@127.0.0.1/orclfile=c:/baoan_1.1.0_20120816.dmpfull=yoracle中导入导出数据备份数据库
系统 2019-08-12 01:33:57 3827
像.net中的session一样,假设能知道了数据库中的sessionID,那全部的操作都能知道了,由于有了这个唯一的身份识别的标识。能够做的事情有非常多,如:当前哪个用户在做什么操作,在运行什么sql,又如一个比較大的逻辑中要分别运行非常多存储过程,在运行这些存储过程的过程其中,你想知道当前运行的进度,SQLServer正在运行哪个段sql语句,那么通过sessionID是非常easy就得到这些信息的。SQLServer得到SPID,唯一的session
系统 2019-08-12 01:53:01 3823
SQLServer提供了25种基本数据类型:·Binary[(n)]二进制数据既可以是固定长度的(Binary),也可以是变长度的。其中,n的取值范围是从1到8000。其存储窨的大小是n+4个字节。·Varbinary[(n)]二进制数据n位变长度的二进制数据。其中,n的取值范围是从1到8000。其存储窨的大小是n+4个字节。·Char[(n)]字符数据类型(任何字母、符号和数字任意组合而成的数据)定长字符数据,其长度最多为8KB·Varchar[(n)]
系统 2019-08-12 01:33:50 3816