Mysql数据表基本操作

本文详细介绍了如何在数据库中创建表,设置各种约束条件如主键、自增、非空、唯一等,以及查看和修改表结构、删除表的方法,包括关联表的处理。
摘要由CSDN通过智能技术生成

一、 创建表

1. 创建表的格式

creat table 表名(
字段名1 数据类型 约束条件,
字段名2 数据类型 约束条件,
字段名3 数据类型 约束条件,
......
);

2.设置约束条件

(1)设置主键约束

主键也称为主码,用于唯一标识该条记录。

  • 一张表只可有一个主键
  • 主键不为空
  • 关键字:primary key
格式一:字段名 数据类型 primary key
格式二:primary key(字段名)

建表完成后:

添加:alter table table_name add primary key(字段)
删除:alter table table_name drop primary key
【案例】删除tb_goods表的主键约束,然后再添加。**

在这里插入图片描述
在这里插入图片描述

(2)设置自增约束

  • 关键字为:auto_increment
  • 一张表只能设置一个字段为自增约束,并且该字段必须为主键
  • 默认的初始值为1,每增加一条记录,字段值自动增加1
  • 字段类型必须为整数类型
格式:字段名 数据类型 auto_incerment

//建表完成后
添加:alter table table_name modify 列名  int auto_increment
删除:alter table table_name modify 列名  int
【案例】删除tb_goods表的自增约束,然后再添加。

在这里插入图片描述

(3)设置非空约束

  • 关键字为not null
  • 作用是:规定字段值不能为空
  • 用户在向数据表中插入数据时,如果设置非空约束的字段没有指定值,系统就会报错
格式:字段名 数据类型 notnull

//建表完成后
添加:alter table table_name modify 列名 数据类型 not null
删除:alter table table_name modify 列名 数据类型 null
【案例】删除tb_goods表的非空约束,然后再添加。

在这里插入图片描述

(4)设置唯一约束

当数据表中某个字段的值不允许重复时,可以使用唯一性约束。

  • 关键字为:unique
  • 设置了唯一性约束的字段,插入的数据与数据表中已存在的数据相同时,系统会报错
格式一:字段名 数据类型 unique

建表完成后:

添加:alter table table_name add unique 约束名(字段)
删除:alter table table_name drop key 约束名

(5)设置无符号约束

  • 关键字:unsigned
  • 作用:规定该字段所存储的数据不为负数
格式:字段名 数据类型 unsigned

(6)设置默认约束

  • 关键字:default
  • 对于设置了默认约束的字段插入记录时,如果没有为该字段赋值,系统会自动将默认值插入到此字段中。
  • 没有设置默认约束的字段,系统会自读设置默认值为null
格式:字段名 数据类型 default

建表完成后:

添加:alter table table_name alter 列名 set default'值'
删除:alter table table_name alter 列名 drop default
【案例】删除tb_goods表的默认值约束,然后再添加

在这里插入图片描述
在这里插入图片描述

(7)设置外键约束

设置外键约束的作用是可以将两张表关联在一起。

  • 关键字:constraint foreign key references
格式:constraint外键约束 foreign key(外键列) references 主键表(主键列)

建表完成后:

添加:alter table table_name add constraint约束名 foreign key(外键列) references 主键表(主键列)
删除:
	[1]第一步:删除外键
		alter table table_name drop foreign key约束名
	[2]第二步:删除索引
		alter table table_name drop index 索引名

(8)设置表的存储引擎

代码格式

engine=存储引擎名

3、任务实例

(1)创建goods表:

字段数据类型约束注释
idINT(11)主键、自增商品编号
typeVARCHAR(30)非空商品类别
nameVARCHAR(30)唯一商品名称
priceDECIMAL(7,2)无符号商品价格
numINT(11)默认值为0商品库存
add_timeDATETIME添加时间

操作步骤:

create table goods (                                                              
          id int(11) primary key auto_increment,                                                 
          type varchar(30) not null,                                                      
          name varchar(30) unique,                                                  
          price decimal(7,2) unsigned,                                                
          num int default 0,                                                            
          add_time datetime,                                                
          );

(2)创建orders表:

字段数据类型约束注释
o_idINT(11)主键订单编号
add_timeDATETIME添加时间
goods_idINT(11)外键商品编号

操作步骤:

create table orders(
            o_id int(11) primary key,
            add_time datetime,
            goods_id int(11),
            constraint goo_ord foreign key(goods_id) references goods(id)
		    );

(3)创建category表:

字段数据类型约束注释
idINT(11)主键类别编号
nameVARCHAR(30)商品名称
p_idINT(11)父类编号

操作步骤:

create table category(
             id int(11) primary key,
             name varchar(30),
             p_id int(11)
			 );

(4)创建comment表:

字段数据类型约束注释
idINT(11)主键、自增商品编号
goods_idINT(11)非空、无符号评价商品
user_idINT(11)非空、无符号评价用户
contentTEXT默认评价内容
add_timeDATETIME添加时间

操作步骤:

create table comment(
           id int(11) primary key auto_increment,
           goods_id int(11) unsigned not null,
           user_id int(11) unsigned not null,
           content text,
           add_time datetime
		   );

(5)创建reply表:

字段数据类型约束注释
idINT(11)主键、自增回复编号
comment_idINT(11)非空、无符号评价编号
user_idINT(11)非空、无符号评价用户
r_contentTEXT回复内容
add_timeDATETIME添加时间

操作步骤:

create table reply(
              id int(11) primary key auto_increment,
              comment_id int(11) unsigned not null,
              user_id int(11) unsigned not null,
              r_content text,
              add_time datetime
			  );

二、查看表结构

1.查看表基本结构

查看表基本结构的关键字为describe,语法格式如下:

describe 表名;

在这里插入图片描述

  • Field:表示字段名称。
  • Type:表示数据类型。
  • Null:表示是否可以存储空值。
  • Key:表示是否创建索引,PRI表示主键索引,UNI表示唯一索引。
  • Default:表示默认值。
  • Extra:表示与字段有关的附加信息。
    提示: 一般情况下,describe可以简写为desc

2.查看建表语句

show create table 表名;

在这里插入图片描述

三 、修改表的结构

1、修改表名

语法格式:

alter table 旧表名 rename 新表名;

【案例】修改goods表的名称为tb_goods
在这里插入图片描述

2、修改字段数据类型

语法格式:

alter table 操作的表明 modify 被修改的字段名 修改后的数据类型;

案例:将tb_goods表中的type字段的数据类型修改为char(30)
在这里插入图片描述

3、修改字段名

语法格式:

alter table 操作的表明 change 旧字段名 新字段名 数据类型;

案例:将tb_goods表中的name字段的数据类型修改为g_name
在这里插入图片描述

4、添加字段

(1)在表的最后一列

alter table 操作的表明 add 添加的字段名 数据类型;

【案例】在tb_goods表最后一列添加picture字段,数据类型为varchar(255)
在这里插入图片描述
(2)在表的第一列

alter table 操作的表明 add 添加的字段名 数据类型 first;

【案例】在tb_goods表中第一列添加state字段,数据类型为tinyint(4)在这里插入图片描述
(3)在指定列之后

alter table 操作的表明 add 添加的字段名 数据类型 after(列名);

【案例】在tb_goods表中num字段之后添加intro字段,数据类型为text
在这里插入图片描述

5、删除字段

语法格式:

alter table 表名 drop 字段名;

【案例】将tb_goods表中的picture字段删除
在这里插入图片描述

6、修改字段顺序

语法格式:

alter table 表名 modify 字段名1 数据类型 first/after 字段名2;
  • first:表示调整该字段到表的第一列。
  • after:表示调整该字段到表的某一列后面。
    【案例】将tb_goods表的state字段位置修改为id字段之后
    在这里插入图片描述

7、修改存储引擎

语法格式:

alter table 表名 engine=新存储引擎;

四、删除表

1.删除没有被关联的表

语法格式:

drop table 表名;

【案例】删除category表
在这里插入图片描述

2.删除被其他表关联的主表

(1)从表不保留

删除从表—>删除主表

【案例】删除orders表后删除goods表
在这里插入图片描述

(2)从表保留

删除从表外键—>删除主表

语法格式:

alter table 表名 drop foreign key 外键约束名
  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL数据表基本操作包括创建数据表、插入数据、查询数据、更新数据和删除数据。创建数据表时,需要指定表名和字段名,并为每个字段指定数据类型和约束条件。可以使用CREATE TABLE语句来创建数据表。插入数据时,使用INSERT INTO语句,指定要插入的数据和表名。查询数据可以使用SELECT语句,可以指定查询条件和排序规则。更新数据可以使用UPDATE语句,根据指定的条件更新字段的数值。删除数据可以使用DELETE FROM语句,根据指定的条件删除数据行。这些基本操作可以帮助用户在MySQL数据库中进行数据管理和交互,是数据库操作的基础知识。 另外,MySQL数据表基本操作还包括对表结构的修改和索引的创建。可以使用ALTER TABLE语句对表结构进行修改,包括添加、修改和删除字段等操作。创建索引可以加快数据的检索速度,可以使用CREATE INDEX语句来创建索引。除此之外,还可以使用DESCRIBE语句来查看数据表的结构,使用SHOW TABLES语句来查看数据库中的数据表列表。这些操作可以帮助用户更好地管理和维护MySQL数据库中的数据表。 总之,对于MySQL数据表基本操作,包括创建数据表、插入数据、查询数据、更新数据、删除数据、修改表结构和创建索引等操作,是数据库管理和交互的基础,对于数据库开发和管理都是非常重要的知识点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值