您的位置:首页 > 数据库 > MySQL

MySQL数据库表的基本操作

2016-03-06 22:22 387 查看
1.创建数据表就是在已经创建好的数据库里面创建数据表。创建数据表的过程就是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性,引用完整性和域完整性等)约束的过程。

2.创建表的语法:

create table table_name

(

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

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

......

[表级约束条件]

);


注意:

(1)数据表属于数据库,所以在要创建表时,需要使用相应的数据库,

命令为:
use db_name;


(2)查看表的结构使用:
show create table table_name\G




3.使用主键约束

(1)主键(主码),是表中一列或者多列的组合。

(2)主键约束(primary key constraint)要求主键列的数据唯一,并且不允许为空。

(3)主键可以唯一的标识表中的一条记录。

(4)可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询操作。

(5)主键分为单字段主键和多字段联合主键

(6)单字段主键:在定义列的同时指定主键
字段名 数据类型 primary key[默认值]




(7)多字段联合主键:主键由多个字段联合组成

primary key[字段1,字段2,...,字段n]




4.使用外键约束

(1)外键用来在两个表的数据之间建立连接,它可以是一列或者多列。

(2)一个表可以有一个或多个外键。

(3)外键对应的是参照完整性

(4)一个表的外键可以为空值,如果不为空值,则每一个外键值都必须等于另一个表中主键的某个值。

(5)外键:是一个表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键,外键的主要作用就是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联联系的行。外键的作用是保持数据的一致性、完整性。

(6)主表(父表):对于两个具有关联关系的表而言,相关字段中主键所在的那个表为主表。

(7)从表(子表):对于两个具有关联关系的表而言,相关字段中外键所在的那个表为从表。

(8)语法规则:
[constranit <外键名>]foreign key 字段名1[,字段名2,...] references <主表名> 主键列1[,主键列2,]


外键名:定义外键约束的名称,一个表中不能有相同名称的外键;

字段名:子表需要添加外键约束的字段列;

主表名:被子表外键所依赖的表的名称;

主键列:表示主表中定义的主键列或者列组合。





注意:关联指的是在关系型数据库中,相关的表之间的联系,它是通过相容或相同的属性或者属性组来表示的,子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一样,就会出现错误。

5.使用非空约束

(1)非空约束指字段的值不能为空。如果使用了非空约束的字段,如果用户在添加数据的时候没有指定值,数据库系统就会报错。

(2)语法规则:
字段名  数据类型  NOT NULL




6.使用唯一约束

(1)唯一性约束(unique constraint)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。



7.使用默认约束

(1)默认约束(Default Constraint)指定某列的默认值

(2)语法规则:
字段名 数据类型 default 默认值




8.设置表的属性值自动增加

(1)可以通过为主键添加AUTO_INCREMENT关键字实现,默认的在MYSQL中AUTO_INCREMENT的初始值是1,每次新增一条记录,字段值就加1,一个表只能有一个字段使用AUTO_INCREMENT约束,并且该字段必须为主键的一部分,AUTO_INCREMENT约束的字段可以是任何整数类型。

(2)语法规则:
字段名 字段类型 AUTO_INCREMENT




9.查看数据表的结构





10.查看表的详细结构语句

(1)语法:
show create table table_name\G


(2)该语句不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。

(3)加上\G后可以使得结果更加直观,易于查看。

11.修改表名

(1)语法:
alter table <旧表名> rename [to] <新表名>;






12.修改字段类型

(1)修改字段的数据类型,就是把字段的数据类型转换成一种新的数据类型

(2)语法规则:
alter table <表名> modify <字段名> <数据类型>


表名:修改数据类型的字段所在的表的名称

字段名:需要修改的字段名称

数据类型:修改后字段的新的数据类型



13.修改字段名

(1)语法:
alter table <表名> change <旧字段名> <新字段名> <数据类型>;


旧字段名:修改前的字段名;新字段名:修改后的字段名;

新数据类型:修改后的数据类型,如果不需要修改字段的数据类型,可以将新的数据类型设置成与原来一样但是数据类型不能为空。



注意:由于不同的数据类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录,因此,当数据库表中已经有的数据,不要轻易修改数据类型。

14.添加字段

(1)语法:
alter table <表名> add <新字段名> <数据类型> [约束条件] [first|after 已存在的字段名];


(2)first或者after已存在的字段名:用于指定新增字段在表中的位置,如果SQL语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后列。

15.删除字段

(1)删除字段是将数据表中的某个字段从表中移出

(2)语法:
alter table <表名> drop <字段名>


字段名:需要删除的字段名称。

16.修改字段的排列位置

(1)语法:
alter table <表名> modify <字段名> <数据类型> first|after <字段名>


17.更改表的存储引擎

(1)语法:
alter table <表名> engine=<更改后存储引擎名>;


18.删除表的外键约束

(1)语法:
alter table <表名> drop foreign key<外键约束名>


19.删除数据表

(1)删除数据表就是将数据库中已经存在的表从数据库中删除,注意,在删除表的同时,表的定义和表中所有的数据均会被删除,因此再删除之前,最好对表进行备份,避免造成无法挽回的后悔。

(2)删除没有被关联的表

drop table [if exists]表1,表2,...表n;


其中表n指要删除的表的名称,后面可以同时删除多个表,只需将要删除的表的名依次写在后面,相互之间用逗号隔开就行。如果要删除的数据表不存在,则mysql会提示一条错误信息,参数if exists用于在删除前判断删除的表是否存在,加上这个参数后,再删除表的时候,如果表不存在,SQL语句也可以顺利执行,但是会出现警告。

(3)删除被其他表关联的主表

数据表之间存在外键关联的情况,如果直接删除父表,结果会显示失败,原因是直接删除就会破坏数据的完整性,如果必须删除的话,可以先删除与他关联的子表,再删除父表,只是这样需要删除两个表中的数据,但是有的情况下需要保留子表,这个时候需要删除父表,只需要将外键约束条件取消掉就可以删除父表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: