MySQL(3):数据表的基本操作

本文详细介绍了MySQL中创建、修改和删除数据表的操作,包括定义主键、外键、非空约束、唯一性约束和默认值。还提到了 AUTO_INCREMENT 的用法以及如何查看和调整数据表结构。此外,讨论了外键约束与存储引擎的关系,并阐述了删除表及外键约束的注意事项。

创建数据表:

CREATE TABLE<表名>

(

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

......

[表级别约束条件]

);

在定义列的同时指定主键:

字段名 数据类型 PRIMAEY_KEY[默认值] 

在定义完所有列之后指定主键:

[CONSTRINT<约束名>]PRIMARY KEY[字段名]

定义多字段联合主键:

PRIMARY KEY[字段1,字段2,...字段n]

使用外键约束:

[CONSTRAINT<外键名>]FOREIGN KEY 字段名1 [,字段名2,...] REFERENCES<主表名>主键1[,主键列2,...]

“外键名”为定义的外键约束的名称,一个表中不能有相同名称的外键。

使用非空约束:

字段名 数据类型 not null 

使用唯一性约束:

字段名 数据类型 UNIQUE 

在定义完所有列后指定唯一约束,语法规则如下:

[CONSTRAINT<约束名>] UNIQUE(<字段名>)

 UNIQUE和PRIMARY KEY的区别:一个表可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY声明:声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。

默认约束指定某列的默认值,默认约束的语法规则如下:

字段名 数据类型 DEFUALT 默认值

 

在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加AUTO_INCREMENT关键字来实现。默认的,在Mysql中AUTO_INCREMENT的初始值是1,每增加一条记录,字段值自动加1.一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT,SMALLIN,INT,BIGINT等) 。

设置唯一性约束的语法规则如下:

字段名 数据类型 AUTO_INCREMENT

 

查看数据表结构,语法如下:

DESCRIBE/DESC 表名; 

其中,各个字段的含义分别解释如下:

  • NULL:表示该列是否可以存储NULL值。
  • Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次。
  • Default:表该列是否有默认值。如果有的话是多少。
  • Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

 

查看表详细结构语句:

SHOW  CREATE TABLE<表名\G>; 

如果不加'\G'参数,显示的结果可能非常混乱,加上参数‘\G'之后,可使显示结果更加直观,易于查看。

 

修改表名:

ALTER TABLE<旧表名>RENAME[TO]<新表名>; 

 

修改字段的数据类型:

ALTER TABLE<表名> MODIFY <字段名> <数据类型> 

 

修改字段名:

ALTER TABLE<表名>CHANGE<旧字段名> <新字段名><新数据类型>; 

 

添加字段:

ALTER TABLE <表名>ADD<新字段名><数据类型>[约束条件][FIRST|AFTER 已存在字段名]; 

 

删除字段:

ALTER TABLE<表名>DROP<字段名>;

 

修改字段的排列位置:

ALTER TABLE<表名>MODIFY <字段 1><数据类型> FIRST|AFTER <字段 2>; 

 

更改表的存储引擎:

ALTER TABLE<表名> ENGINE=<更改后的存储引擎名> 

 

删除表的外键约束:

ALTER TABLE<表名> DROP FOREIGN KEY<外键约束名> 

 

删除没有被关联的表:

DROP  TABLE [IF EXISTS]表1,表2,...表n; 

外键约束是用来保证数据的参照完整性,如果表之间需要关联外键,却指定了不同的存储引擎,这些表之间是不能创建外键约束的。

删除被其他表关联的主表:

先删除外键关联,再删除关联子表。 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值