以图明志

数据库技术

遭遇一次MySQL猜解注入攻击

MySQL高级Hack入侵
前些日子数据库被入侵,文章的阅读数都被纂改了,还好及时发现并做好备份。查一下 MySQL 语句记录,发现这么原来是这么一句 SQL 在捣鬼。在 MySQL 中内置了很多函数,利用它们,即使在没有联合查询功能的老版本 MySQL 上也可以做一些意想不到的操作。

数据库技术

为什么我说ORM是一种反模式

更多的关于ORM的理解
我很高兴地发现Wikipedia有一个相当全面的关于反模式的列表,包括来自编程界及其之外的内容。我之所以称ORM为反模式的原因是因为,反模式的作者定义了用来区分反模式和普通的坏习惯的两个条件,而ORM完全符合这些条件:它开始的时候看起来很有用,但是从长期来看,坏处要大过好处。存在已验证并且可重复的替代方案。

数据库技术

MySQL复制表字段到另外一个表的字段

拷贝字段的SQL
有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写:UPDATE tb_1 SET content_target = content_source;有Navicat等工具更好,可以直接选中一列数据,拷贝粘贴到你需要的列中。如果是同一个表那没什么问题,如果是新表,请保持它们的行数是一致。如果行数不一致,你可以新建一个表,再把列拷贝进去,这样id数也会保持一致。

数据库技术

MySQL CAST与CONVERT 函数的用法

产生另一个类型的值
MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:CAST(value as type); CONVERT(value, type); 就是CAST(xxx AS 类型), CONVERT(xxx,类型)。可以转换的类型是有限制的。这个类型可以是以下值其中的一个……

数据库技术

谈谈数据库中MyISAM与InnoDB区别

针对业务类型选择合适的表
MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具。 InnoDB:这种类型是事务安全的。它与BDB类型具有相同的特性,它们还支持外键。

数据库技术

查询分组后每个分组的前几条记录

附带简单的MySQL例子
在MySQL使用中,经常需要查询每个分组的前几条记录(查询分组后每一个组的前几项),下面写了个简单的例子说明下SQL的写法。简单的表设计如下,要求每个班总分排名最前的前两条数据。这里列出了多种SQL语句的实现方法,有些是MySQL特有的(Limit, 其它数据库可根据实际更改,比如oracle的rownum,MS SQL SERVER 的 top,..),有时是SQL标准支持的。

数据库技术

MongoDB的基本特性与内部构造

开始了解这个数据库产品
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

数据库技术

数据库SQL SELECT查询的工作原理

SELECT了那么久,你了解它吗
我并非专业DBA,但作为B/S架构的开发人员,总是离不开数据库。一般开发员只会应用SQL的四条经典语句:select,insert,delete,update。但是我从来没有研究过它们的工作原理,这篇我想说一说select在数据库中的工作原理。

数据库技术

MySQL如何复制表中的一条记录并插入

数据库常见操作
先把需求说一下吧。从 MSSQL 中导出一个文章表,需要插入到 PHPCMS 中的内容表 phpcms_content 去,需要做到文章可以发布到不同的栏目中去。也就是说,需要复制一条记录,并修改其 catid,再插入到表尾的位置上。大致为:insert into a SELECT id+1, ...(其它字段) FROM a ;

数据库技术

MySQL 主键与索引的联系与区别

主键与索引是什么?
所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。数据库在设计时,主键起到了很重要的作用。

数据库技术

mongoDB入门需要了解的基本知识

来了解下红红火火的mongoDB
MongoDB是一个开源的,高性能,无模式(或者说是模式自由),使用C++语言编写的面向文档的数据库。正因为MongoDB是面向文档的,所以它可以管理类似JSON的文档集合。又因为数据可以被嵌套到复杂的体系中并保持可以查询可索引,这样一来,应用程序便可以以一种更加自然的方式来为数据建模。

数据库技术

最常用的SQL排序、分组与统计的使用方法

Order by/Group by/having等的使用
以一种有意义的方式组织数据可能是一项挑战。有时你需要的可能是一个简单的排序,但是通常你需要做更多,你需要分组来进行分析和统计。幸运的是,SQL提供了大量语句和操作来进行排序,分组和摘要。下面的一些技巧将会帮助你识别什么时候排序,什么时候分组,什么时候以及如何统计。

数据库技术

数据库架构的技术方案演变史

数据库架构的升级和变更
SQL Server2008在数据的高安全、高性能、高可用方面的技术已经比较成熟,这些技术和方案都是随着很多公司的业务和数据访问压力的增加而不断的升级和变迁的,同时经历了方方面面的考验,证明了它们都是成熟可靠的,下面就这方面的技术方案和变迁过程来做一些分析。

数据库技术

数据库水平切分的两个思路

数据库最大承受数据量所必需考虑的问题
在大中型项目中,在数据库设计的时候,考虑到数据库最大承受数据量,通常会把数据库或者数据表水平切分,以降低单个库,单个表的压力。这里介绍两个项目中常用的数据表切分方法。当然这些方法都是在程序中使用一定的技巧来路由到具体的表的。首先我们要确认根据什么来水平切分?在我们的系统(SNS)中,用户的UID贯穿系统,唯一自增长,根据这个字段分表,再好不过。

数据库技术

理解SQL原理,写出高效的SQL语句

Sql养成一个好习惯是一笔财富
我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我们还能保证下一段时间系统还能流畅的运行吗?我们还能保证下一个人能看懂我们的存储过程吗?

数据库技术

MySQL内存表的特性与使用介绍

存储在内存的数据表
内存表,就是放在内存中的表,所使用内存的大小可通过My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,内存表与临时表并不相同,临时表也是存放在内存中,临时表最大所需内存需要通过tmp_table_size = 128M设定。当数据超过临时表的最大值设定时,自动转为磁盘表,此时因需要进行IO操作。
1 / 6 首页 < Prev 1 2 3 4 5 Next > 尾页 页码: