SqlServer建表规范】的更多相关文章

一.数据库在建表时,一般默认字段如下,也算是标准字段吧 删除标志:DeletionStateCode 创建时间:CreateOn 创建人:CreateBy 更新时间:ModifiedOn 更新人:ModifiedBy 以上是微软CRM里的标准字段名. 主键ID:表面+ID,如用户表(UserID) 各字段名加前缀:表名首字母+功能,如性别字段(U_Sex) 用户表简单例子:UserID, U_Name, U_Phone, U_Sex, CreateOn, CreateBy, ModifiedOn…
1.约束 1.PrimaryKey(PK)主键 特点:唯一 + 非空,一张表中只能有一个主键约束,一般是一个数字列,最好是无意义的. 2.NOT NULL 非空 特点:不能为空,建议在MySQL中,业务关键列,尤其是索引列,设置为非空. 3.UNIQUE 唯一约束 特点:不能有重复值,可以有多个,一般像是手机号,身份证号 4.unsigned 数字列无符号(全是正数) 特点:必须要加在数字列后,表示数字无负数,一般适用于年龄.......... 2.其他属性 1.AUTO_INCREMENT 自…
我们将Oracle数据同步到sqlserver时,是先得在sqlserver端建表的. 复杂的字段我们不同步,就仅仅考虑以下四种数据类型. Oracle到SQLServer做的映射: int -> int number -> decimal(18,6) number(p,s) -> decimal(p,s) date -> datetime varchar2(n) -> nvarchar(n)   以下是从Oracle端运行的plsql脚本. /* 简单介绍:从oracle拉…
一. 表设计规范 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议…
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议使用…
一.基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表.数据字段必须加入中文注释 解读:请不要给后来维护的人挖坑 (4)禁止使用存储过程.视图.触发器.Event 解读:高并发大数据的互联网业务,架构设计思路是“解放数据库CPU,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能…
先创建一个分割表名的分割函数 --表值函数用以截取字符串 --如果为其添加一列主键id,则其顺序就会固定了 create FUNCTION [Split](@text NVARCHAR(max)) )) AS BEGIN DECLARE @StartIndex INT --开始查找的位置 DECLARE @FindIndex INT --找到的位置 ) --找到的值 --初始化一些变量 --T-SQL中字符串的查找位置是从1开始的 --开始循环查找字符串逗号 WHILE(@StartIndex…
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议使用…
一. 表设计 库名.表名.字段名必须使用小写字母,"_"分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED.…
表设计规范 1.库名,表名,字段名必须使用小写字母,“-”分割 ,长度不得超过12字符 , 要见名识意 : 2.建议使用Innodb存储引擎 (1)什么是存储引擎 不同的技术及配套的相关功能就是存储引擎 (2)mysql存储引擎 i).MylSAM:Mysql的默认数据库,最为常用.有较高的插入,查询速度,不支持事务 1>.什么是事务 事务是访问并且可能更新数据库中各种数据项的一个程序执行单元(例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序.)事务是恢复和并发控制的…
常用字段 CREATE TABLE `che`.`<table_name>` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '索引id', `username` varchar(255) COMMENT '用户名', `password` varchar(32) COMMENT '密码', `title` varchar(255) COMMENT '标题', `content` text COMMENT '内容', `pic` varchar(2…
--**********************************************创建表******************************************************************************************************************** create table sys_user( id ,) primary key not null, --id主键 自增长 loginName ) NOT NULL…
--执行环境:生产环境 / beta环境--备注:文件开头写上描述或者原因.项目USE database --例如 USE LZB GO CREATE TABLE Ymtable1 ( iOrderId INT NOT NULL IDENTITY(1,1) PRIMARY KEY, --自增.主键 sPhone VARCHAR(20) null, bPaidInFull BIT NOT NULL , --值域:0-1 iStatus TINYINT NOT null DEFAULT(0), --…
sqlserver 表中记录生成insert,可以加条件,可以生成建表语句 create PROCEDURE [sp_getinsert] ( ) , --如果非默认架构,可以加上架构名 例如:schema1.tablename ) = '', ) AS BEGIN SET NOCOUNT ON; ,; DECLARE @sqlstr VARCHAR(max)= ''; DECLARE @sqlstr1 VARCHAR(max); DECLARE @sqlstr2 VARCHAR(max) ,…
1 试用了MysqlWorkBench的数据迁移功能 以为能实现:建立跟Sqlserver一样的表结构和视图的功能,sqlserver的数据迁移到mysql 实际上发现:即使勾选了表和视图,实际上却只能建立表结构. 视图结构,表数据,都没有 后来尝试文章:https://www.cnblogs.com/gaizai/p/3237907.html http://www.cnblogs.com/overblue/p/5796887.html 尝试了SQLyog,不知道是不是我设置的问题,一直失败 然…
MySQL建表DDL规范(欢迎补充) 基本规范: 表名和字段名全大写,一般表名以T开头 脚本需支持可重复执行,带IF NOT EXISTS ,但不可带DROP语句 字符集使用utf8mb4 (CHARSET = utf8mb4 collate utf8mb4_unicode_ci) 脚本文件使用无BOM的UTF-8编码,否在会导致乱码 普通表,使用T开头,例如T_ACCOUNT 参数表,使用T_PARA开头,例如T_PARA_GENRAL_CONFIG 批量业务使用的表,使用T_BATCH开头,…
1.创建表的时候必须指定主键,并且主键建立后最好不要再有数据修改的需求 mysql从5.5版本开始默认使用innodb引擎,innodb表是聚簇索引表,也就是说数据通过主键聚集( 主键下存储该行的数据,索引指向主键值),如下图所示: 正是由于这种解构,如果后续对主键对应的值进行修改,就会导致索引节点的频繁分裂,性能会下降非常厉害.因此推荐开发的同事们使用和业务没有任何关联的自增id来做主键(切记不要使用uuid来做主键),此外也可以考虑使用其他的方式来生产自增的ID,比如使用Twitter的sn…
常用于分库分表 1.批量删除 declare @outter int declare @inner int ) ) ) begin set @tablePrefix='BankPayOrder_'+convert(varchar,@outter)+'_' ) begin set @tableName=@tablePrefix+convert(varchar,@inner) execute('delete from '+@tableName+'') end end 2.批量建表 declare @…
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目. 开源地址:https://github.com/NewLifeX/X(求star, 656+) 大杀器 反向工程是XCode的大杀器,区别于其它ORM的最强功能! 通俗理解:基于XCode开发的应用,无需数据…
在写查询功能的过程中遇到一个这样的问题:按日期范围查询,sql语句是:where dt>=用户选择起始日期&&dt<=用户选择结束日期.数据库中的数据如图1,我选择的测试数据起始时间是2008-01-06结束日期是2009-06-01.期望的结果应该能查出第一条数据.执行sql语句并无错误,但是查询到的结果为空.在网上查找原因,这才知道字符串时间比较大小是按照数字一位位比较的.只有格式对应的字符串才能比较大小.用户选择的时间格式是YYYY-MM-dd而数据库数据的格式是YYYY…