mysql建表 序列号_Mysq表的创建和l数据类型

表的创建:

创建表时,由表的设计者在规定,表字段的命名规范有两种,一种就是驼峰法(userName), 一种是下划线法 (user_name)

快速入门案例:

create tablestaff(

idint not null default 1comment "序列号",

namevarchar(5) not null default '保密' comment '姓名',

sex enum('男','女','保密') not null default '保密' comment '性别',

birthday date comment'生日',

entry_date date comment'入职日期',

stationvarchar(20) not null default '保密' comment '职位',

salarydecimal(10,2) unsigned not null default 0 comment '薪资',

resumetext comment '文章')charset=utf8 engine=myisam;

整型:

基本介绍: 用于保存整数的数据类型,常见有(tinyint , smallint , mediumint, int , bigint)

类型

字节

最小值

最大值

(带符号的/无符号的)

(带符号的/无符号的)

TINYINT

1

-128

127

0

255

SMALLINT

2

-32768

32767

0

65535

MEDIUMINT

3

-8388608

8388607

0

16777215

INT

4

-2147483648

2147483647

0

4294967295

BIGINT

8

-9223372036854775808

9223372036854775807

0

18446744073709551615

说明:

(1)从表示的访问来看tinyint < samllint < mediumint

(2)数据类型占用的大小不一样tinyint(1个字节) < samllint(2个字节) < mediumint (3个字节)

(3)整型分为两种,一种是有符号的额,一种是无符号的。(字段名整型类型unsigned   ===>这个就是无符号字段名 整型类型===>这个就是有符号)

zerofill:表示0填充

(1)当int(4) zerofill 使用,如果添加的整数不够4位,则数值的左边使用0进行填充.

(2)int(4) 不能理解成最大只能是4位的数,而应该理解成是0填充的宽度.

(3)当一个字段被zerofill 修饰时,那么这个字段就自动成为unsigned

bit :bit类型就是位类型.

细节说明:

(1)   bit 字段在显示时,按ascii码对应的字符显示

(2)   查询的时候仍然可以用数值

(3)   位类型。M指定位数,默认值1,范围1-64位(bit(1-64), 可以通过bit(M) M值来控制我们填充数据的大小.)

(4)   bit 类型, 只能是unsigned .

浮点型:

基本介绍:使用的最多的是float , decimal.

float [ M , D ] [ unsigned ] ( M 指定显示长度,D指定小数位数)

案例说明:float(4,2)表示的范围是 -99.99 ~ 99.99   float(4,2) unsigned 表示的范围是0~99.99

decimal [ M , D ] [ unsigned ] ( M 指定显示长度,D指定小数位数)

案例说明:decimal(4,2)表示的范围是 -99.99 ~ 99.99   decimal(4,2) unsigned 表示的范围是0~99.99

说明:

(1)   float 和 decimal 都可以定义成有符号的或者是无符号的.

(2)   float(M,D) ,  decimal(M,D) M: 表示显示最大长度(即可以显示多少个数, 包含小数位), D表示有几位小数

(3)   float(4,2) 范围  -99.99-99.99

(4)   float(4,2) unsigned 范围  0-99.99

(5)   decimal(4,2) 范围 -99.99-99.99

(6)   decimal(4,2) unsigned范围0-99.99

这两个小数类型的比较说明

(1)   默认值不一样.

float(M,D)  如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。

decimal(M,D) 如果D被省略, 默认是0。如果M被省略, 默认是10。相当于 decimal(10, 0)  范围是  -9999999999 -  9999999999

(2)   如何选择 : 如果我们希望保存精度较高的值,我们应该选择 decimal .

字符串:

基本介绍: mysql的字符串类型,用于存放字符串,最主要的有三种, 分别是 char, varchar, text

字符串使用的注意事项:

(1)char(n) 这里的 n 的范围是 1-255, 最大255.

(2)varchar(n) 这里的 n的范围是和表的字符集有关系.

如果表的字符集是 utf8 那么 n 最大是  (65535-3)/3 = 21844

如果表的字符集是 gbk 那么 n 最大是  (65535-3)/2 = 32766

如果表的字符集是 latin1 那么 n 最大是  (65535-3)/1 = 65532

varchar最大是有65535个字节, 但是需要预留3个字节.[有2个字节用于记录varchar的数据大小,有1个字节标识是否允许为null]

(3)char(n) 是定长, varchar(n) 是变长.(char(4)  =>  添加  'aa' => 实际暂用的空间,就是4个字符占用的空间.  varchar(4) => 添加 'aa' =>实际暂用的空间,就是2个字符占用的空间+1)

当我们的某个字段的内容长度不确定,我们建议使用varchar.

(4) char(n) 会将存入的最后的空格自动删除,而 varchar(n) 会保留空格. 所以如果你真的有这样的需求,就是在字段内容的最后保存空格,则应该选用varchar

(5)   text 数据类型可以视为varchar, 但是不用指定大小, 他可以存放varchar最大的范围.

(6)   一个表的所有自定义的字段,他们定义长度加起来不能超过65535

(7)   如果我们字段的长度要大于 65535 字节大小. 我们可以使用 text 来替代 varchar

日期和时间:

基本介绍: 在mysql中,日期和时间类型主要有 (1. date, 2 datetime 3. timestamp)

使用格式:date的格式( 2019-7-14 )  datetime的格式 ( 2019-7-14 00 : 00 : 00 ) timestamp的格式( 2019-7-14 00 : 00 : 00 ) {时间中不能带空格}

说明:(1)   对于date 类型只是接受 日期 , datetime timestamp 有日期和时间,如果你没有给时间,那么默认是 00:00:00

(2)   timestamp 在insert 和 update 时会自动的更新. 添加后 login_time 字段就会自动的更新.

枚举enum, 集合set:

基本语法:如果对于多选我们可以使用 set 数据类型   如果对于单选我们可以使用 enum 数据类型

CREATE TABLE`votes`(

idtinyint unsigned not null default 1,

hobbyset('苹果','香蕉','西瓜') not null default '苹果' comment '喜欢的食物',

sex enum('男','女','保密') not null default '保密' comment '性别')charset=utf8 engine=myisam;insert into `votes` value(2,"苹果,香蕉,西瓜","保密");insert into `votes` value(2,"苹果,香蕉","1");

说明:

(1)   在添加set 和 enum 字段时需要注意几个问题

(2)   首先你添加的选项都是表中规定好的, 添加  set 字段时 '选项1,选项2,选项3',但是中间不能给空格.

细节:

(1) 在enum 选项中,选项可以用数字表示:如上面案例中插入的最后一条语句中的 “1” 表示的是“男“

(2)在set 选择中,也可以使用数字来表示选项(当我们给一个set 赋值时, 这个数就是一个组合的 ('苹果','西瓜','菠萝') 对应 1, 2, 4, 然后组合可以进行多项, 比如 7 = 1 + 2 + 4  ,  6 = 2 + 4 等等 。。。)案例演示:insert into `votes` value(2,"3","1")相当于insert into `votes` value(2,"苹果 , 香蕉","男");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值