👋 欢迎来到吴老二技术博客,专注运维 / 数据库 / 云原生
首页/数据库/正文

mysql创建表

吴
吴老二
2022-02-16数据库1372 次浏览0 条评论
前面已经说过mysql的增删改查,但是只是针对命令上的增删改查,不过具体使用的时候创建一个表,但是表中的内容需要如果使用这是个问题,比如我们创建一个表,表中存储的是一个班级的学生名单,那么需要有的学生名字,性别,年龄或者出生日期,就先用这几个做例子吧:
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT, #表中第一列,自动增加
  `name` varchar(50) NOT NULL,  #学生名字
  `age` tinyint(4) DEFAULT '0',     #学生年龄
  `sex` enum('男','女') NOT NULL default '男',    #学生性别
  `birthday` date NOT NULL,        #学生生日
  `dept_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
这是创建表的语句,在NOT NULL表示当前列中不想有NULL的属性,如果有NULL就会报错。 AUTO_INCREMENT是定义自增的属性,一般作为主键使用,增加加1. PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。 ENGINE 设置存储引擎,CHARSET 设置编码。 因为表中有六列,'id'属于自动增长列,所以在插入数据的时候不需要,只需要其他五列的数据根据顺序插入即可:
INSERT INTO `student` VALUES (null,'小明', '28', '男', '2010-06-21', '1');
INSERT INTO `student` VALUES (0, '小毛', '23', '男', '2011-02-21', '1');
INSERT INTO `student` VALUES (0, 'wulaoer', '30', '男', '2015-06-21', '1');
INSERT INTO `student` VALUES (0, 'wolf', '18', '2014-06-21', '1');
第一种是利用null和0作为占位符,第二种就需要把插入的列先说明,后面在加上插入的值
INSERT INTO `student`(id,name,age,sex,birthday,dept_id) VALUES (null,'小明', '28', '男', '2010-06-21', '1');
两种方式都一样的,这样简单的mysql的表插入数据就没问题了。

扩展部分

1、mysql中int、bigint、smallint 和 tinyint的主要区别简单介绍
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别,写在博客中做个记录:
使用整数数据的精确数字数据类型。
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

int
从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)
的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

smallint
从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。

tinyint
从 0 到 255 的整型数据。存储大小为 1 字节。
补充:
在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。
在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。
只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。
int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。
2、mysql char和varchar的区别
1、 char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。
2、 varchar可变长度,可以设置最大长度;适合用在长度可变的属性。
3、 text不设置长度, 当不知道属性的最大长度时,适合用text。
按照查询速度: char最快, varchar次之,text最慢。
char:char(n)中的n表示字符数,最大长度是255个字符; 如果是utf8编码方式, 那么char类型占255 * 3个字节。(utf8下一个字符占用1至3个字节)
文章底部广告位在后台「广告设置」填写广告代码后显示

评论 0

评论需 登录 后发表(注册并验证邮箱)。
还没有评论,来抢沙发~