基本数据类型

表操作;

create table 表名(字段名 类型[(宽度) 约束条件])

解释:

类型;使用限制字段必须以什么样的数据类型传值

约束条件;约束条件是在类型之外 添加一种额外的限制

注意:

1.在同一张表中,字段名是不能相同

2.宽度和约束条件可选,字段名和类型是必须的

3.最后一个字段后不加逗号

基本数据类型

1.整形

作用;id号,证件号,年龄等,

分类;tinyint int(*****) bigint

 

测试。。。

create table t1(x tinyint)默认是有符号的

如果超过最大限制 自动存最大值

insert into t1 values(128),(-129);

create table t2(x tinyint unsigned);#无符号

insert into t2 values(-1),(256);

整形的宽度是显示宽度(整形的存储限制是一开始规定好的)

create table t3(x int(8)unsigned);

insert into t3 values(42615156156165156156156156151655156156165);

在创建表时;如果字段采用的是 整形类型,完全无需指定显示宽度,默认的显示宽度 就足够用了

2.浮点型

作用;工资,身高,

分类;float double decimal

测试。。。

create table t9(x float(255,30));#255是数字总个数,30是小数个数

create table t10(x double(255,30));

create table t11(x decimal(65,30));

不同点;

       float与double类型存放的整数位比decimal更多

       精度 低☞高 float double decimal

3.字符类型

定长char 变长varchar

测试。。。(字符的宽度限制单位是字符个数)

create table t12(x char(4));#超出4个报错,不够4个用空格补全

create table t13(x varchar(4));#不够4个不补全

注意;针对char类型 mysql在存储时会将数据用空格补全存放到硬盘中,但会在读出结果时自动去掉末尾的空格,因为末尾的空格在以下的场景中是无用的

mysql>select * from t14 where name='lxx';#name 字段明确地等于一个值在,该值后填充空格是没用的

mysql>select * from t14 where name like  'lxx';#name 字段模糊匹配一个值,该值后填充空格是有用的

char

优点:存取速度快

缺点:浪费空间

varchar

优点:节省空间

缺点:存取速度都慢

4.日期类型

date:1999-01-27

time:11:11:11

datetime:1999-01-27 11:11:11

year: 1999

测试。。。

create table student(id int,name char(16),

                      born_year year,

                      birth date,

                      class_time time,

                      reg_time datetime);

5.枚举与集合类型

枚举 enum 多选一个

集合 set 多选多

测试。。。

create table teacher(id int,name char(16),

                      sex enum('male','female','other'),

                      hobbies set('play','read','music'));

 

 

not null不能为空 default默认值

测试。。。

create table t15(id int,name char(16)not null);

create table t16(id int,name char(16)not null,sex

                  char(6)not null default'male’);

insert into t15(name,id) values('egon',1);

 

 

unique独一无二   

单一唯一

create table t17(id int unique,name char(16));

create table sewer(id int unique,name char(16),

                    ip char(15),

                    port int,

                    unique(ip,pore));

primary key;主键

单单从约束角度去看,primary key就等同于 not null unique

create table t18(id int primary key);

强调:一张表中必须有,并且只能有一个主键

      一张表中通常都应该有一个id字段,而且通常应该把id字段做成主键

联合主键;

create table t18(ip char(15),port int,primary key(ip,port));

 

 

auto_increment自动增加id编号

注意点:通常都给id和主键一起来用

        auto_increment只能给被定义为key用,

 

 

                   

 

posted @ 2018-05-08 17:24  谎~言  阅读(917)  评论(0编辑  收藏  举报