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)删除被其他表关联的主表
数据表之间存在外键关联的情况,如果直接删除父表,结果会显示失败,原因是直接删除就会破坏数据的完整性,如果必须删除的话,可以先删除与他关联的子表,再删除父表,只是这样需要删除两个表中的数据,但是有的情况下需要保留子表,这个时候需要删除父表,只需要将外键约束条件取消掉就可以删除父表。