mysql怎么修改表定义_MYSQL数据库——表的基本操作(定义表的约束、查看表的结构、修改数据表、删除数据表)...

一.什么是数据库的表?

在关系数据库中,数据库表是一系列二维数组的集合,用来代表和储存数据对象之间的关系。它由纵向的列和横向的行组成。数据表是数据库中的最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。例如一个有关作者信息的名为 authors 的表中,每个列包含的是所有作者的某个特定类型的信息,比如“姓氏”,而每行则包含了某个特定作者的所有信息:姓、名、住址等等。

二.创建数据表

1.创建数据表的MYSQL语句

在创建数据库表之前,需要选定一个数据库,在选定的数据库中创建数据表,否则创建失败。

USE 数据库名称;

CREATE  TABELE  数据表名;

在创建好数据表之后,使用SQL语句进行查看,创建的数据表是否成功。

SHOW TABLES;(显示某选定的数据库中的所有的数据表名称)

2.创建数据表的语法

CREATE  TABLE  表名称 (

字段1  数据类型  列级别的约束条件  (可以设定默认值),

字段2  数据类型  列级别的约束条件   (可以设定默认值),

......

)

示例:创建一个员工表 tb_emp,有id,name,deptId,salary等列。

USE  wangfang;

mysql> CREATE TABLE tb_emp (

-> id INT(11),

-> name VARCHAR(25),

-> deptId INT(11),

-> salary FLOAT );

SHOW  TABLES;

de2ef1e03ecbd56719de1e23da3bd505.png      

f746bfd3792e4c658c6e9782345a3919.png

三.创建关于数据表的一些约束

1.主键 (PRIMARY KEY) 约束

主键又称为主码,是表中一列或者多列的组合。主键约束要求主键列的数据是唯一的,并且不能为空。主键能够唯一的标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系是一一对应的,就像人和身份证一样。主键分为:单字段主键和多字段联合主键。

(1)单字段联合主键

主键是由一个字段组成,定义单字段的方法有两种:一是定义列的同时指定主键,一种是在定义完成后指定主键。

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT PRIMARY KEY ,

......

)

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT ,

PRIMARY KEY (id);

......

)

(2)多字段联合主键

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT  PRIMARY KEY ,

name  VARCHAR(25) ,

PRIMARY KEY (id,name);

......

)

2.外键约束

外键用来在两个表的数据之间建立连接,可以是一列,也可以是多列。一个表可以有一个或者多个外键。外键对应的是参照的完整性,一个表的外键可以为空值,若是不为空值,那么每一个外键值必须等于另一个表中的主键的某个值。外键首先是一个表中的字段,可以不是本表的主键,但是一定要对应另一个表的主键。外键的作用是:保证数据引用的完整性。定义完成后,不能删除有关联性的行。

注意:建立外键的条件是,两个表的存储引擎要一致。

创建的语法规则:

CONSTRAINT  外键名称  FOREIGN KEY  外键处的字段名  REFERENCES  主表的主键字段名

示例:

CREATE  TABEL  wang (

字段  数据类型  列级别约束条件  (指定默认值)

id_info  INT PRIMARY KEY ,

name  VARCHAR(25) ;

......

)

CREATE  TABEL  haha (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT  PRIMARY KEY ,

name  VARCHAR(25) ,

CONSTRAINT  waijian  FOREIGN KEY id REFERENCES  wang(id_info) ;

......

)

3.非空 (NOT NULL) 约束

非空约束指的是:指定的字段不能为空。使用了非空约束的字段,在添加数据的时候,如果没有指定数据的指定值,那么数据库就会报错。

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT  PRIMARY KEY  NOT NULL;

......

)

4.唯一性 (UNIQUE) 约束

唯一性约束:要求该列唯一,允许为空,但是只能出现一个空值,唯一约束可以确保一列或者多列不出现重复的值。

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT  PRIMARY KEY  UNIQUE,

......

)

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT  PRIMARY KEY ,

CONSTRAINT  uniq  UNIQUE(id) ;

......

)

5.默认 (DEFAULT) 约束

默认约束是指:给某一个字段设定默认的值,当用户添加数据的时候,没有给该字段添加相应的数据时,填入默认的值。比如说,一个理工科的学校,一般来说男生比女生要多,那么在存储用户信息的数据库中,可以将性别这一栏设定默认值为:男

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT  PRIMARY KEY ,

sex  CHAR(2)  DEFAULT "m" ;

......

)

6.设置表的属性自动增加

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

CREATE  TABEL  表名 (

字段  数据类型  列级别约束条件  (指定默认值)

id  INT  PRIMARY KEY  AUTO_INCREMENT,

name VARCHAR(25) NOT NULL

......

)

四.查看表的结构

1.DESC(DESCRIBE)数据表的名称  该SQL命令查看的是数据表的基本的结构

DESC  数据表的名称

bd29e09c6999b62e6c861d4cce72920e.png

2.SHOW CREATE TABLE 数据表名称    该SQL命令查看的是表的详细的结构

SHOW CREATE TABLE 数据表的名称 \G ;   ##如果不添加 \G 参数的话,输出的结果可能会很乱。添加该参数会利于查看

e8f95e318c3d80625368e1c5ce66f971.png

b5e2c2f716b8f5c440d2ce1a98f9c4eb.png

五.修改数据表

1.修改表的名称

语法规则:ALTER  TABLE  表名  RENAME  新表名 ;

72f17eb614bd8a7efd8a7dbb0d0f91d6.png

2.修改表的字段的名称

语法规则:ALTER  TABEL  表名  CHANGE  旧字段名  新字段名  跟定义的时候的该字段的数据类型 ;

d7a40388fe100ac3c2a4d5df4cf8a7f2.png

3.修改字段的数据类型

语法规则:ALTER  TABLE  表名  MODIFY  字段名  新的数据类型 ;

e476c7c4476219528e308d9defffd87e.png

4.添加字段

(1)添加新字段,添加的位置不定,默认添加到最后一个

语法规则:ALTER  TABLE  表名  ADD  字段名  数据类型  列级别的约束条件 ;

b7dbe93f00937fbb2b083245048c9bf3.png

(2)添加新的字段到第一个

语法规则:ALTER  TABLE 表名  ADD  字段名  数据类型  列级别的约束条件  FIRST ;

0592c0cbe1e3e86fa5519921eb057818.png

(3)添加新的字段到指定的字段后面

语法结构:ALTER  TABLE  表名  ADD  字段名  数据结构  列级别的约束条件  BEFORE  字段名 ;

dda135833a949a9283cc2883e0296b99.png

5.修改字段的排列顺序

语法结构:ALTER  TABLE  表名  MODIFY  字段名  数据类型  FIRST|AFTER  字段名 ;

e9876809a402b041c5f4491be5ab6b42.png

6.更改表的存储引擎

语法结构:ALTER  TABLE  表名  ENGINE=更改后的存储引擎的名称 ;

用于查看某表的存储引擎的SQL语句是:SHOW  CREATE  TABLE  表名 ;    ##在后面会有表的相应的存储引擎

c15455b71dd9fe40b3650b439a474c91.png

03848e0bf893e54a27a8d733534f623c.png

7.删除外键的约束

语法结构:ALTER TABLE 表名 DROP FOREIGN KEY 外键名称 ;

fdef53650be3374aefd0cdc94bcf7b8f.png

5909347b273c2ece6d8971f31024053b.png

13d23843629173ed2e597e87c2e1b86b.png

以上的操作是在创建外键

52af8327e2c322395518e2e7fd546259.png

六.删除数据表

1.删除没有关联的数据表

语法结构:DROP TABLE  表名 ;

2.删除有关联的数据表

如果两个表之间存在外键的连接,那么在删除表的时候,就不可能最先删除主表。

想要删除的方法是:先删除外键,再删除数据表;先删除子表,再删除父表。

c648ab400a22012af9bee82bd3b02201.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值