设为首页 加入收藏

TOP

MySQL据库表基本操作详细教程
2017-04-07 10:23:36 】 浏览:9199
Tags:MySQL 基本操作 详细 教程

 


  在数据库中,数据表是最重要、最基本的操作对象,数据存储的基本单位。本节将介绍数据表的增、删、改、查操作,使读者能够熟练掌握数据表的基本操作,理解约束、默认和规则的含义。


create table <表名>(


字段名 数据类型 [列级别约束条件] [默认值],


...


[表级别约束条件]


);


   使用sql语句创建数据库表之后,可以查看表结构的定义,以确认表的定义是否正确,在mysql中可以使用describe和show create table语句,本节将对两个语句分别进行介绍。



Null:表示该列是否可以存储null值


key:表示该列是否已编制索引,PRI表示该列是表主键的一部分,MUL表示在列中某个给定值允许出现多次


Default:如果该字段为null,表示该没有默认值


Extra:表示可以获取的与给定列有关的附加信息,例如auto_increment等。



  修改表是指修改数据库中已经存在的数据表的结构。mysql使用alter table语句修改表。常用的修改表操作有:修改表名、修改字段数据类型、或字段名、增加或删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。本节将对和修改表相关的操作进行说明。


mysql通过alter table语句来实现表名的修改,具体语法规则:alter table <旧表名> rename [to] <新表名>;其中to为可选参数。


把字段的数据类型转换成另一种数据类型,mysql中的语法规则:alter table <表名> modify <字段名> <数据类型>;



mysql中修改字段名的语法规则为:alter table <表名> change <旧字段名><新字段名><新数据类型>;其中旧字段名指修改前的字段名,新数据类型为修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成原来一样即可,但数据类型不能为空。同时需要注意该语句不能修改主键的字段名。



  随着业务需求的变化,可能需要在已经存在的表中添加新的字段,一个完整的字段包括字段名、数据类型、完整性约束,添加字段的语法格式如下:


  alter table <表名> add <新字段名> <数据类型> [约束条件][first|after 以存在字段名];


  新字段名为需要添加的字段名称,first为可选参数,其作用是将新添加的字段设置为表的第一个字段,after为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面,如果没有这两个参数,则默认将新添加的字段设置为数据表的最后列。



删除字段是将数据表中的某个字段从表中删除,语法格式为:alter table <表名> drop <字段名>;



  在数据表创建完成之后,字段在表中的排列顺序就已经确定了,但表的结构并不是完全不可变的,可以通过alter table来改变表中字段的相对位置,语法格式如下:


alter table<表名>modify<字段1><数据类型>first|after<字段2>;


  字段1指要修改位置的字段,数据类型指字段1的数据类型,first为可选参数,指将字段1修改为表的第一个字段,after<字段2>指将字段1插入到字段2的后面。



  对于数据库中定义的外键,如果不在需要,可以将其删除。外键一旦删除,就会解除主表和从表之间的关联关系,外键删除语法为:


alter table <表名> drop foreign key <外键约束名>;


  外键约束名是在定义表时constraint关键字后面的参数,详细见创建数据表章节。




  如上删除了tb_score表对tb_course表的外键关联,那么如下就是如何将外键约束添加回来,规则如下:


alter table <从表> add constraint fk_course foreign key (外键) references <主表>(关联主键);



   辛辛苦苦创建的数据表,仅仅一条删除数据表的语句,就能够将表的定义和表中所有的数据删除,因此在进行删除操作前,一定要慎重考虑。


  在mysql中,使用drop table可以一次删除一个或多个没有被其他表关联的数据表,语法为:drop table [if exists]表1,表2,...表n;


  如果直接执行drop table <表名>或报错:Cannot delete or update a parent now:a foreign key constraint fails。因此在删除该表前,需要首先解除其他表与该表的关联关系,如tb_course与tb_score关联,然后就可以将tb_course表删除。


  最后做一个小小的总结吧,①表删除操作一定要谨慎,因为mysql在执行删除操作时,不会有任何的确认信息,而且删除表操作是将表中的数据一并删除,因此在删除操作之前最好对表中的数据做备份。②数据库中并不是每一个表都存在主键,一般,多个表之间进行连接操作时,需要用到主键,因此并不需要为每个表建立主键,而且有些情况最好不要使用主键。③在mysql数据库中,带auto_increment约束的字段值是从1开始的,如果在表中插入第一条记录,同时指定auto_increment字段值为8,那么以后插入的该字段值会从9开始往上增加。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL数据库连接查询 下一篇Oracle Gateway使用小结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目