mysql创建表

avatar 2022年2月16日18:17:17 评论 317 次浏览

前面已经说过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个字节)
avatar
  • 未经博主允许,禁止转载本博客任何内容,如需转载请留言,谢谢合作!!!
  • 转载注明:mysql创建表 | 吴老二

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: