mysql之建表

  建表其实就是声明列的过程,建表语句:create table 表名称 (列名称1 列类型 列属性 默认值,列名称2 列类型 列属性 默认值,index xx (xx))engine=储存引擎 charset=字符集;比如,create table stu (id int primary key auto_increment,name varchar(20) not null default ‘‘,age tinyint unsigned not null default 0,index id (id))engine=innodb charset=utf8;注意,primary key和auto_increment一张表只能有一列,且primary列的值不能重复,auto_increment此列必须加索引(index/key)。

  数据类型

  数值型             字节        无符号范围

  tinyint        1Byte  0-255

  smallint    2Byte  0-65535

  mediumint     3Byte      0-16777215

  int                 4Byte      0-9223372036854775807

  bigint            8Byte      0-18446744073709551615

  整型列的可选参数,unsigned(无符号),zerofill(0填充,zerofill默认属性决定列为unsigned),M(显示宽度)。比如,create table t1 (id tinyint(5) zerofill);注意,M参数只有和zerofill一起使用才有意义。

  浮点型

  float (M,D) unsigned zerofill,float范围是-3.402823466E+38到-1.175494351E-38,0,1.175494351E-38到3.402823466E+38,M是精度总位数,D是小数点后的位数,如果M,D都不写,float(单精度)精确到大约7位小数,double(双精度)精确到大约15为小数,float/double会有精度损失,decimal(定点型)会更精确。

  字符型

  char,定长,char(10)可存空间是10个字符,每一行的实际占用空间都是10个字符的长度,不管写入的是1个还是2个或者8个。

  varchar,变长,varchar(10)可存空间是10个字符,每一行的实际占用空间要看写入的字符,另加1-2个字节来储存字符结束的标志。

  一般来说,20个字符以内的用char,20个字符以上的用varchar,速度上char快一点。

  text最多能存65535个字符,用来储存大段文本。

  blod储存2进制信息,用来存图片,音频等2进制信息,不会丢失信息。

  enum枚举型,定义好,值就在某几个枚举范围内,比如,create table t1 (gender enum(‘男‘,‘女‘));注意,这时就只能插入男或女这2个值。

  set和enum区别在于,enum只能插入枚举范围的一个值,set可以插入几个值。

  日期时间型

  year 年(1字节),范围1901-2155。

  date 日期,范围1000-01-01到9999-12-31,注意date必须是字符型。

  time时间,范围-838:59:59到838:59:59,注意time必须是字符型。

  datetime日期时间,范围1000-01-01 0:00:00到9999-12-31 23:59:59,注意datetime必须是字符型。

  timestamp时间戳,范围1970-01-01 0:00:00到现在的秒数,默认自动更新。

时间: 2024-08-29 15:37:16

mysql之建表的相关文章

mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI

[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) 自增

mysql workbench 建表时 PK,NN,UQ,BIN,UN,ZF,AI解释

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

jdbc mysql动态建表

通过检查来决定是否建表 如果表尚未被建立,就执行ptmt语句更新,在数据库中创建这个表, 如果这个表已经存在,就不执行建表操作了: package SQLCon; import java.sql.*; public class CreateTables { public static boolean HaveTable(String TableName) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.

在线ER模型设计:可视化MySQL数据库建表及操作

概述 ER模型使用可视化了实体存储的信息,以及直观的呈现了实体与实体的关系,在我们实际的应用系统开发过程中新建ER模型可以更好的理解业务模型,为以后的开发维护工作起到归纳总结的作用. [Freedgo Desgin]()是一款轻松.快速.协作地创建各种专业图表工具.让您在线创建流程图.系统部署图.软件架构图.UML.BPMN.ER模型,DFD,组织图,软件流程图,图表.免费试用.使用Freedgo Design创建数据库ER模型目前支持MySQL及基本的SQL语句建表.后期会进行功能拓展以支持S

Mysql的建表规范与注意事项

一. 表设计规范 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议

Mysql 批量建表存储过程

最近项目中用到了使用存储过程批量建表的功能,记录下来: USE db_test_3; drop procedure if EXISTS `createTablesWithIndex`; create procedure createTablesWithIndex() BEGIN DECLARE `@i` int(11); DECLARE `@createSql` VARCHAR(2560); DECLARE `@createIndexSql1` VARCHAR(2560); DECLARE `@

MySQL代码建表、增删改查(CRUD)

一.建表 create table Student ( number int auto_increment primary key,//定主键不一定勾上自增,但勾上自增一定得是主键. name varchar(10) not null,//设计界面,非空约束 sex bit, height decimal(8,2),//共8位数,小数点后2位数 birthday datetime ) 小数型 float double decimal 字符串型 varchar--------考虑长度 其他的不用,

MYSQL数据库建表注意事项

1.库名.表名.字段名必须使用小写字母,"_"分割. 原因: MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名在所有的情况下均是忽略大小写的: 4.变量名也是严格区分大小写的:MySQL在Windows下都不区分大小写. 所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在Windows环

MySQL常见建表选项及约束

一.CREATE TABLE 选项 1.在定义列的时候,指定列选项 1)DEFAULT <literal>:定义列的默认值 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值 :如果没有,则为null. mysql> create table people                                                                      -> (    ->  id int not nu