在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

标签:sql

MySql

MySQL新增/修改/删除表中的列

因业务需求可能会导致数据存储结构发生变化,当数据保存到关系型数据库中时必将带来表结构的变化,这就涉及到对表中的列进行新增、修改、删除等操作。 在大多情况下数据库脚本执行必须是可重复的,因此对数据库表的任何表变动都需要进行判断,然而在MySQL数据库中通过SQL脚本进行列的变更就不太便利。下面记录一下曾经用到的一些MySQL脚本: USE DATABASE NAME; -- 这里要换数据库名称 DROP PROCEDURE IF EXISTS Operate_ColumnADD_Update_Delete; DELIMITER$$ -- 1表示新增列,2表示修改列类型,3表示删除列 CREATE PROCEDURE Operate_ColumnADD_Update_Delete(TableName VARCHAR(50),ColumnName VARCHAR(50)...

8个月前 (03-31) 86℃ 0评论 2喜欢

DataBase

自增长INT主键与GUID主键优缺点

使用INT做主键的优点: 需要很小的数据存储空间,仅仅需要4 byte 。insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。 index和Join 操作,int的性能最好。 容易记忆。 支持通过函数获取最新的值 使用INT做主键的缺点 如果经常有合并表的操作,就可能会出现主键重复的情况。 使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。 很难处理分布式存储的数据表。 使用GUID做主键的优点: 它是独一无二的。 出现重复的机会少。 适合大量数据中的插入和更新操作。 跨服务器数据合并非常方便。 使用GUID做主键的缺点: 存储空间大(16 byte),因此它将会占用更多的磁盘大小。很难记忆。join操作性能比int要低...

4年前 (2016-09-23) 38℃ 0评论 0喜欢

DotNet

ADO.NET基础参数化SQL查询

参数化查询(Parameterized Query )是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值,这个方法目前已被视为最有效可预防SQL注入攻击 (SQL Injection) 的攻击手法的防御方式。下面将重点总结下Parameter构建的几种常用方法。     说起参数化查询当然最主要的就是如何构造所谓的参数:比如,我们登陆时需要密码和用户名,一般我们会这样写sql语句,select count(*) from username where names=@names and  passwd=@passwd,为了防止sql注入,我们该如何构建@names和@passwd两个参数呢,下面提供7种(其实大部分原理都是一样,只不过代码表现形式不一样,以此仅作对比,方便使用)构建参数的方法,根据不同的情况选用合适的方法即可: 通用数据库...

5年前 (2016-05-05) 206℃ 0评论 0喜欢

SqlServer

Sql Server 中关闭/取消ID自增字段

在数据库进行表设计的时,大多情况下都习惯使用一个自增列作为主键,具体原因这里不会进行描述。在很多情况下需要对现有数据进行数据迁移,这个时候就需要保证迁移后的数据自增列的数据保持不变。SQL SERVER是支持这种迁移方式的。 首先就要先取消自增长,数据迁移完成后再恢复自增长即可。 SET IDENTITY_INSERT 允许将显式值插入表的标识列中。 语法 SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 实例 set IDENTITY_INSERT tableName on; INSERT INTO tableName (id,name) VALUES (2,'name'); set IDENTITY_INSER...

9年前 (2012-04-10) 127℃ 0评论 1喜欢