MySQL的基本操作(2)数据表的基本操作

2.1创建数据表

创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。

2.1.1创建表的语法形式

在创建数据表前,应该使用语句“USE<数据库名>”指定操作是在哪个数据库中进行,否则会抛出“No database selected"的错误。

CREATE TABLE<表名>

要创建的表的名字,不区分大小写,不能使用SQL中的关键字。
在这里插入图片描述
可见test数据库中已经有了数据表tb_emp1

2.1.2使用主键约束

主键,又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键能唯一地标识表中地一条记录,可以结合外键来定义不同数据表之间的关系,并加快数据库查询的速度。

1.单字段主键

由一个字段组成
(1)在定义列的同时指定主键

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

在这里插入图片描述
(2)在定义完所有列后指定主键

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

在这里插入图片描述

2.多字段联合主键

PRIMARY KEY (字段1,字段2,,,字段n)

2.1.3使用外键约束

外键:它可以不是本表的主键,但对应另一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。
参照完整性规则:若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中的每个元组在F上的值必须:

  • 或者取空值(F的每个属性值均为空值)
  • 或者等于S中某个元组的主码值
[CONSTRAINT 外键名 ]FOREIGN KEY 字段名1[字段名2,....]
REFERENCES<主表名>主键列1[主键列2...]

在这里插入图片描述在表5中添加了名称为fk_emp_dept1的外键约束,依赖于表1中的主键id。

2.1.4使用非空约束

字段名 数据类型 NOT NULL

用户在添加数据时没有指定值,数据库系统会报错

2.1.5使用唯一性约束

唯一性约束要求该列唯一,允许为空,但只能出现一个空值。
(1)在定义完列后直接指定唯一约束

字段名 数据类型 UNIQUE

(2)在定义完所有列之后指定唯一约束

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

UNIQUE和PRIMARY KEY的区别:一个表中可有多个唯一性约束,而主键只有一个;唯一性约束的列可取空,主键不允许。

2.1.6使用默认约束

指定某列的默认值

字段名 数据类型 DEFAULT 默认值

2.1.7设置表的属性值自动增加

希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加AUTO_INCREMENT关键字来实现。在MySQL中AUTO_INCREMENT默认初始值为1,每新增一条数据,字段值自动加1.一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。

字段名 数据类型 AUTO_INCREMENT

2.2查看数据表结构

2.2.1查看表基本结构语句DESCRIBE

DESCRIBE/DESC语句可查看表的字段信息,其中包括:字段名、字段数据类型、是否为主键、是否有默认值等。

DESCRIBE/DESC 表名

在这里插入图片描述
Key:表示该列是否已编制索引。

2.2.2查看表详细结构语句SHOW CREATE TABLE

SHOW CREATE TABLE<表名\G>;

使用SHOW CREATE TABLE语句,不仅可以查看表创建时候的详细语句,还可以查看存储引擎和字符编码。
在这里插入图片描述

2.3修改数据表

修改表的操作有:修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。

2.3.1修改表名

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

2.3.2修改字段的数据类型

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

2.3.3修改字段名

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

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

2.3.4添加字段

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

FIRST 或 ALTER用于指定新增字段在表中的位置,如果SQL语句中没有则两个参数,则默认将新添加的字段设置为数据表的最后列。

2.3.5删除字段

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

2.3.6修改字段的排列位置

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

2.3.7更改表的存储引擎

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

2.3.8删除表的外键约束

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

2.4删除数据表

2.4.1删除没有被关联的表

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

IF EXIST 用于在删除前判断删除的表是否存在,加上该参数再删除表的时候,如果表不存在,SQL语句可以顺利执行,但是会发出警告。

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

数据表之间存在外键关联的情况下,如果直接删除父表,会破坏表的参照完整性,结果会显示失败。需先删除与它关联的主表或将关联的表的外键约束条件取消

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值