MySQL中表的操作

在MySQL中,表是一种数据库对象,表由若干个字段(列)组成,表的操作包括增删查改。

一个表中的书库对象包括:列(column)、索引(index)及触发器:

列也称属性列,在创建表时,必须指定列的名字和类型,同时也可以指定约束;

索引是根据指定的数据库表列建立起来的顺序;

触发器是指用户定义的事务命令的集合,当对表中的数据进行插入、更新和删除时,这组命令就会自动执行,以确保数据的安全性和完整性。

以下在对表的操作中都是伴随着字段和数据类型一起的,约束可以不要,但是字段名和数据类型缺一不可。

1、创建表

1 create table 表名(
2     字段名 数据类型 约束,
3     字段名 数据类型 约束,
4       ...   ...   ...);

【注】创建的表名不可与存在的表名字重复;

在创建完表之后,可以查看创建的表结构的详细定义,可以使用:

show create table 表名;

也可以使用以下语句查看表的定义:

desc 表名;

【注】desc与describe相同。

2、删除表

drop table 表名;

3、修改表(alter table 表名  ...)

有时我们在创建表时考虑的问题不是很全面,可能后续需要修改,存在以下情况:

(1)只修改表名:

alter table 旧表名 rename 新表名;

(2)增加列(字段)

alter table 表名 add 字段 数据类型 约束;

【注】默认添加在表的最后一列;

也可以一次添加多个表名:

alter table 表名 add(字段 数据类型 约束,
    字段 数据类型 约束,
    字段 数据类型 约束)

在表的第一个位置增加字段:

alter table 表名 add 字段 数据类型 约束 first;

在表的指定字段后增加字段:

alter table 表名 add 字段名 数据类型 约束 after 属性名;

删除某个字段:

alter table 表名 drop 字段名;

修改字段的数据类型:

alter table 表名 modify 字段名 数据类型;

【注】数据类型为要修改成的数据类型;

修改字段的名字:

alter table 表名 change 旧属性名 新属性名 旧数据类型;

给已创建表的字段添加单一约束:

alter table 表名 add 约束名 (字段名);

如:

alter table test add primary key(id);

在创建表时,可以设置字段约束,常见的约束类型有:

not null(设置非空约束)

default(设置字段的默认值)

unique key(uk)(约束字段的值是唯一的)

primary key(pk)  (设置主键约束) 

【注】:表的主键可以不唯一

auto_increment(约束字段的值自动增加)

foreign key(约束字段为表的外键)

在创建表时可以添加约束,一般为:

create table 表名(
  字段名 数据类型 约束类型,
  字段名 数据类型 约束类型
  ...   ....     ....);

可以给字段设置的约束设置一个名字,在创建表时,在最后添加:

constraint uk_bname unique(字段名)

最后再以);结尾,uk_dname是为约束创建的名字。

在为字段创建主键时,主键可以有多个,此时需要通过以下语句来实现:

constraint 约束名 primary key(字段名1, 字段名2)

最后再以);结尾。

在创建表时也可以创建外键约束,只需要在最后一行添加:

constraint 约束名 foreign key(字段名1) references 表名(字段名2)

最后再以);结尾,在设置外键时,两个字段的数据类型必须一致。

给已创建表添加外键约束:

alter table 表名 add constraint fk_name foreign key (字段名) references 表名(字段名);

 

转载于:https://www.cnblogs.com/jdwfff/p/10492768.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值