Mysql的建表规范与注意事项】的更多相关文章

一. 表设计规范 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过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语句或整个程序.)事务是恢复和并发控制的…
1.约束 1.PrimaryKey(PK)主键 特点:唯一 + 非空,一张表中只能有一个主键约束,一般是一个数字列,最好是无意义的. 2.NOT NULL 非空 特点:不能为空,建议在MySQL中,业务关键列,尤其是索引列,设置为非空. 3.UNIQUE 唯一约束 特点:不能有重复值,可以有多个,一般像是手机号,身份证号 4.unsigned 数字列无符号(全是正数) 特点:必须要加在数字列后,表示数字无负数,一般适用于年龄.......... 2.其他属性 1.AUTO_INCREMENT 自…
mysql workbench 建表时 - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted) 自增 - BIN: binary (i…
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议使用…
1.创建表的时候必须指定主键,并且主键建立后最好不要再有数据修改的需求 mysql从5.5版本开始默认使用innodb引擎,innodb表是聚簇索引表,也就是说数据通过主键聚集( 主键下存储该行的数据,索引指向主键值),如下图所示: 正是由于这种解构,如果后续对主键对应的值进行修改,就会导致索引节点的频繁分裂,性能会下降非常厉害.因此推荐开发的同事们使用和业务没有任何关联的自增id来做主键(切记不要使用uuid来做主键),此外也可以考虑使用其他的方式来生产自增的ID,比如使用Twitter的sn…
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过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.符合数据库三范式 2.字段选择合适的数据类型 3.注意表之间的联系,一对多,多对多,一对一 4.拆分表,把不常用的字段单独成表. 5.建立索引,哪些字段建立索引?建立索引的原则?最左前缀原则,where子句原则 mysql优化包括: 1.选择合适的存储引擎 2.合适的建表 3.sql语句的书写,哪些语句会用上索引. 4.数据库读写分离,一个master负责写,slave负责读.利用bin log采用日志同步. 5.表的垂直划分和水平划分.…
一.CREATE TABLE 选项 1.在定义列的时候,指定列选项 1)DEFAULT <literal>:定义列的默认值 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值 :如果没有,则为null. mysql> create table people -> ( -> id int not null primary key, -> name varchar() not null, -> sex ) default 'm' -&…
阅读目录---MySQL常见的建表选项及约束: 1.create table选项 1.指定列选项:default.comment 2.指定表选项:engine.auto_increment.comment 2.create table约束 1.not null:非空约束 2.unique:唯一约束 3.primary key:主键约束 4.foreign key:外键 5.check:检查---enum.set 一.CREATE TABLE 选项 1.在定义列的时候,指定列选项 1)DEFAUL…
最近项目中用到了使用存储过程批量建表的功能,记录下来: USE db_test_3; drop procedure if EXISTS `createTablesWithIndex`; create procedure createTablesWithIndex() BEGIN ); ); ); ); ); ; DO -- `M_ID` bigint AUTO_INCREMENT PRIMARY KEY NOT NULL, -- 创建表 SET @createSql = CONCAT('CREA…
本学期正在学习数据库,前段时间老师让我们做一下50个经典SQL语句,当时做的比较快,有一些也是百度的,自我感觉理解的不是很透彻. 所以从本篇随笔开始,我将进行50个经典SQL语句的复盘,加深理解. 答案仅供参考,不一定完全正确,若发现错误或有更好的,欢迎评论,互相交流,一起成长!!! --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TI…
一.基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表.数据字段必须加入中文注释 解读:请不要给后来维护的人挖坑 (4)禁止使用存储过程.视图.触发器.Event 解读:高并发大数据的互联网业务,架构设计思路是“解放数据库CPU,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能…
1.库名.表名.字段名必须使用小写字母,“_”分割. 原因: MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名在所有的情况下均是忽略大小写的: 4.变量名也是严格区分大小写的:MySQL在Windows下都不区分大小写. 所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在Windows环境下只要对…
常用字段 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…
[1]建立员工档案表要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门.[2]合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primary key等. -- -- make by kakane -- DROP TABLE IF EXISTS `workers_info`; CREATE TABLE `workers_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, `workername` v…
对于表的删除,因为InnoDB引擎会在table cache层面维护一个全局独占锁一直到DROP TABLE完成为止,这样,对于表的其他操作会被HANG住.对于较大的表来说,DROP TABLE操作可能需要很长的时间,因此需要一种有效的办法来提升大表的删除速度,以尽可能降低HANG住的时间.可以通过设置硬链接来达到此目的.比如有一个样例表:example_table 使用InnoDB引擎且指定innodb_file_per_table=ON时在数据目录中与该表对应的有如下两个文件,分别为表定义文…
虽然一直都知道,类型 之类的字段 直接用字符窜会很方便,不过最好还是不要用字符串:但是也不是特别清楚为什么不要用,时间久了 就忍不住用一下字符窜试试,这一试 还挺好用的,吓得我 感觉探究了一下 为什么最好不要用字符窜. 一是从空间上考虑,对于类型 分类的字段来说,用int代表不同的类型,比varchar 更节省空间. 数据量少的时候 不明显,但是 数据量特别大,或者数据常加载到内存里 差别就比较明显了. 二是 从 安全性考虑,varchar 容错性高,会导致 程序的bug 不能那么及时的体现出来…
1.create schema [数据库名称] default character set utf8 collate utf8_general_ci;--创建数据库 采用create schema和create database创建数据库的效果一样. 2.create user '[用户名称]'@'%' identified by '[用户密码]';--创建用户 密码8位以上,包括:大写字母.小写字母.数字.特殊字符 %:匹配所有主机,该地方还可以设置成‘localhost’,代表只能本地访问,…
今天建了一张表,表名为--inOut: 然后再使用中发现怎么都是SQL错误: 然后在Navacat上发现 这是一个关键词! 如果非要继续使用,只能这样: 类似的坑还有user等.…
一.数据库在建表时,一般默认字段如下,也算是标准字段吧 删除标志:DeletionStateCode 创建时间:CreateOn 创建人:CreateBy 更新时间:ModifiedOn 更新人:ModifiedBy 以上是微软CRM里的标准字段名. 主键ID:表面+ID,如用户表(UserID) 各字段名加前缀:表名首字母+功能,如性别字段(U_Sex) 用户表简单例子:UserID, U_Name, U_Phone, U_Sex, CreateOn, CreateBy, ModifiedOn…
CREATE TABLE `product_info`( `product_id` VARCHAR(32) NOT NULL COMMENT '主键', `product_name` VARCHAR(64) NOT NULL COMMENT '商品名称', `product_price` DECIMAL(8,2) NOT NULL COMMENT '商品单价', `product_stock` INT NOT NULL COMMENT '库存', `product_description` VA…
[转自网络]https://my.oschina.net/cers/blog/292191 PK Belongs to primary key 作为主键 NN Not Null 非空 UQ Unique index 不能重复 BIN Is binary column 存放二进制数据的列 UN Unsigned data type 无符号数据类型(需要整数形数据) ZF Fill up values for that column with 0's if it is numeric 填充0位(例如…
1. [intrinsic column flags] (基本字段类型标识) - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted)…
show create table `table_name`; 结果如下:…
主键的问题: 简单的id递加.不过在实习的时候,因为id递增的问题,导致一个项目最后好像产生了严重的问题.所以递增适合小型项目,对我们的项目来说90%足够可以用的. 一些限制: 一般就非空就行,唯一的话一般不用.(我们的主键本来就是非空,且唯一的) 对于默认: 默认的话,DEFAULT '0'  DEFAULT '1'   DEFAULT NULL  DEFAULT CURRENT_TIMESTAMP 对于数据类型: int(11) bigint(20) float varchar(200) t…
      SQL SERVER的表结构及索引转换为MySQL的表结构及索引,其实在很多第三方工具中有提供,比如navicat.sqlyog等,但是,在处理某些数据类型.默认值及索引转换的时候,总有些不尽人意并且需要安装软件,懒人开始想法子,所以基于SQL SERVER,写了一个存储过程,可以根据表名直接转换为MySQL的建表建索引的SQL脚本(针对 MySQL Innodb引擎).目前不支持分区表的分区配置及区域数据类型的转换.         如果转载,请注明博文来源: www.cnblog…
1 本节内容: mysql 数据库建表(班级表和学生表) Create table grade(gid varchar(32) primary key, gname varchar(32) not null, gdescribe varchar(300) ); Create table Student( sid varchar(32) primary key, sname varchar(80) not null, gid varchar(32), sex char(2) ); alter ta…
博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下, 如有问题请各位留言指正,感激不尽: 建表时设置如何设置联合主键?如下标红处: CREATE TABLE `product_price` ( `product_id` int(12) NOT NULL COMMENT '商品ID', `price_category_id` int(12) NOT NULL DEFAULT '0' COMMENT '价格类型ID', `price_descr…