MySQL数据库(二)

总结关于数据库表的内容。

字段类型

①.整数类型

tinyInt:很小的整数,带符号的范围是-128到127。无符号的范围是0到255。

smallint:小的整数,带符号的范围是-32768到32767。无符号的范围是0到65535。

mediumint:中等大小的整数,带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

int(integer):普通大小的整数,带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

②.小数类型

float(m,d):单精度浮点数,m表示数字长度,d表示小数位数,例如float(5,2)最大值999.99

double(m,d):双精度浮点数

decimal(m,d):压缩严格的定点数,用于在数据库中存储精确的数值。

③.日期类型

yearYYYY  1901~2155

timeHH:MM:SS  -838:59:59~838:59:59

dateYYYY-MM-DD 1000-01-01~9999-12-3

datetimeYYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59 用于不是很准确的时间记录

timestampYYYY-MM-DD HH:MM:SS  1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC 用于准确的时间记录,如:登录时间记录,数据修改时间记录等。

④.文本、二进制类型

CHAR(M)M0~255之间的整数,长度不可变,身份证号,手机号等。

注:当你想要储存一个长度不足255的字符时,MySQL会用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除。

VARCHAR(M)M0~65535之间的整数,长度可变,个人住址,其他信息等。

注:varchar类型在5.0.3以下的版本中的最大长度限制为255,而在5.0.3及以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节。

TINYBLOB:允许长度0~255字节

BLOB:允许长度0~65535字节,是数据库中用来存储二进制文件的字段类型。

MEDIUMBLOB:允许长度0~167772150字节

LONGBLOB:允许长度0~4294967295字节

TINYTEXT:允许长度0~255字节

TEXT:允许长度0~65535字节

注:与char和varchar不同的是,text不可以有默认值,其最大长度是2的16次方-1

MEDIUMTEXT:允许长度0~167772150字节

LONGTEXT:允许长度0~4294967295字节

VARBINARY(M):允许长度0~M个字节的变长字节字符串

BINARY(M):允许长度0~M个字节的定长字节字符串

操作表

语法结构:

        CREATE TABLE table_name(

  column_name data_type [default default_value ] [column_constaint ] [comment 'comment_content'],

  ……

  [table_constaint]

        )[engine=engine_type] [default charset=charset_type];

table_name:表名;

column_name:字段名,字段名一般由字母和下划线构成,多个单词时,单词与单词之间使用下划线间隔;同一个表中字段名不允许重复;

data_type:顾名思义为字段类型;

default default_value:设置默认值;

column_constaint:设置字段级约束;

comment 'comment_content':设置注释;

table_constaint:设置表级约束;

engine设置存储引擎 

charset设置编码,一般为uft8

创建表的例子:

create table teacher(
	id char(36) primary key comment '主键',
	user_name varchar(12) comment '用户名’ ,
	password char(32) comment '密码',
	sex int(1) default 0 comment '性别’
  )

约束:

MySQL数据库通过约束(constraints)防止无效的数据进入到表中,以保护数据的实体完整性。

约束分为字段级别约束和表级别约束:

1.字段级约束:只为单个字段添加约束;

2.表级约束:为一个或多个字段添加约束;

常见约束:

1.primary key:指定主键。该约束强制字段或字段组合必须具有唯一性且每个字段不能为空。可以为字段级别约束,也可以为表级别约束

    CREATE TABLE teacher(

     id char(36) comment '主键’,

     PRIMARY KEY(id)#表级约束

    );

2.auto_incremenrt:设置表字段自增长,默认从1开始

 

      CREATE TABLE teacher(

     id int(11) PRIMARY KEY auto_increment comment '主键',

     user_name varchar(12) comment '用户名',

     password char(32) not null comment '密码'

     );

测试代码(创建表之后再使用测试代码):

insert into teacher (user_name,password) values ('1','1'); 
insert into teacher (user_name,password) values ('2','2');
insert into teacher (user_name,password) values ('3','3');
insert into teacher (user_name,password) values ('4','4');

数据库结果:

这表明了 auto_increment的字段即使不输入也会跟随数据的插入而依次增长。但是不能在char与varchar中使用 

3.not null:指定字段不能为空,只能定义为字段级约束

        CREATE TABLE teacher(

     id char(36) PRIMARY KEY comment '主键’,

     user_name varchar(12) comment '用户名',

     password char(32) not null comment '密码’

     );

4.unique:指定字段的值(或字段组合的值)对于表中所有的行必须是唯一的。对于无非空约束的字段,唯一键约束允许输入空值,且包含空值的行可以有多个。可以为字段级别约束,也可以为表级别约束,表级约束时可以定义复合唯一键。

  CREATE TABLE teacher(

     id char(36) PRIMARY KEY comment '主键’,

              user_name varchar(12) unique comment '用户名',

     password char(32) not null comment '密码’

        );

或

        CREATE TABLE teacher(

     id char(36) PRIMARY KEY comment '主键’,

     user_name varchar(12) comment '用户名',

     password char(32) not null comment '密码’,

     unique key(user_name)

        );

unique字段的含义即为在改表中这行数据的这个字段必须是独一无二的,若插入一条新的数据其中标识unique的字段重复则该条数据无法插入,但是有多条数据中的该字段为空是允许的。

5.foreign key:指定一个字段或字段组合作为一个外键(即外来的主键或唯一键),该外键和另一个表的主键或唯一键(MySQL不支持,Oracle支持)建立起一个关系,只能定义为约束例子:

操作表

1.添加字段

alter table table_name

add column_name data_type [default default_value] [column_constaint] [after 字段名] [comment 'comment_content’];

例子:

       alter table user_info

       add sex int(1) default 0 after password;#user_info表添加新字段sex,该字段在password之后。

2.修改字段:

       alter table table_name

       modify column_name data_type [default default_value] ;

例子:

       ALTER TABLE user_info

       MODIFY user_name varchar(15);

注意:字段的修改包括修改数据类型(只有对应列为空指才可以修改)、大小和默认值(默认值的修改只会影响后来插入表的数据,对之前的数据不会产生影响);而不能修改字段约束、字段先后顺序和注释。

3.删除字段:

       alter table table_name

       drop column_name

例子:

       alter table user_info

       drop sex;

注意

1.一次只能删除一个字段;

2.一个表至少要保留一个字段;

3.如果所删列(user_info表中id)是另一个表的外键(addressuser_info_id)则该列(user_info表中id)无法删除。

 

4.重命名

语法结构:

       rename table 旧名字 to 新名字

5.截断表和删除表

截断表可以终止未提交的数据的提交并且删除表中的数据

①截断表

语法:

 truncate table 表名

注意:

1.截断表后,表中数据也一并被删除;

drop不仅用于删除表,表中保存的数据也一并被删除;

②删除表

语法结构:

drop table 表名

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值