当前位置: 首页 > news >正文

MySQL数据库基础(二)———数据表管理

前言

上篇文章介绍了MySQL数据库以即数据库的管理

这篇文章将给大家讲解数据表的管理


一、数据表常见操作

数据表常见操作的指令

  • 进入数据库use数据库;

  • 查看当前所有表:show tables; 创建表结构

1.创建表操作 

1.1创建表

create table 表名(列名 类型,列名 类型,列名 类型
)default charset=utf8;
create table tbl(id int,name varchar(16)
)default charset=utf8;

创建好数据表之后,输出指令show tables查看所有表

1.2数据表数据是否允许为空 

  • 允许为空 (Nullable):该字段在插入新记录时,可以不提供值。数据库会存储一个特殊的 NULL 值来表示“没有值”、“未知”或“不适用”。NULL 不等于零、空字符串或空格,它是一个特殊的状态。

  • 不允许为空 (Not Null):该字段在插入新记录时必须提供一个值。不能是 NULL。这是保证数据完整性的重要约束。 

(1)如何设置是否允许为空 

create table tb2(id int,name varchar(16) not null,   ----不允许为空email varchar(32) null,   -----允许为空(默认)age int
)default charset=utf8;

1.3给数据表数据设置默认值 

设置默认值的目的与作用:

  • 简化插入操作:对于经常有固定值或常见值的字段(如状态码、创建时间、默认配置等),可以避免每次插入时都重复指定。

  • 保证数据完整性:为那些不能为空 (NOT NULL) 的字段提供一个合理的“后备”值,确保插入操作成功,即使应用层忘记传递该值。

  • 提供合理的初始状态:为新记录提供有意义的初始值(如新用户注册时的默认积分、新订单的初始状态为“待支付”)。

  • 提高效率:减少应用层代码需要生成和传递这些默认值的逻辑。

 (1)如何设置默认值 

create table tb3(id int,name varchar(16) not null,      --不允许为空email varchar(32) null,      --允许为空(默认)age int default 3          --插入数据时,如果不给age列设置值,默认值:3
)default charset=utf8;

1.4设置主键

(1)为什么要设置主键

在数据库设计中,主键(Primary Key) 是用于唯一标识表中每一行记录的一个或多个字段(列)。设置主键是保证数据完整性和建立表关系的基础操作。

(2)主键的核心特性

  • 唯一性(Unique):主键值在表中必须唯一,任意两行不能有相同的主键值。

  • 非空性(Not Null):主键字段绝对不允许为 NULL(这是与普通唯一约束的本质区别)。

  • 不可修改性(Immutability):主键值一旦生成,通常不建议修改(除非特殊设计)。

  • 高效索引:主键会自动创建唯一索引(通常是聚集索引),大幅提升查询效率。

(3)如何设置主键

create table tb4(id int primary key,  --主键(不允许为空、不能重复)name varchar(16) not null,  --不允许为空email varchar(32) null,    --允许为空(默认)age int default 3      --插入数据时,如果不给age列设置值,默认值:3
)default charset=utf8;

1.5主键自增 

主键一般用于表示当前这条数据的ID编号(类似于人的身份证),需要我们自己来维护一个不重复的值,比较繁琐。所以,在数据库中一般会将主键和自增结合。

注意:一个表中只能有一个自增列【自增列,一般都是主键】

(1)设置主键自增

create table tb5(id int not null auto_increment primary key,-- 不允许为空 & 主键 & 自增name varchar(16) not null, --不允许为空aemail varchar(32) nul1,  --允许为空(默认)age int default 3  --插入数据时,如果不给age列设置值,默认值
)default charset=utf8;

2.删除表、修改表操作

2.1删除、修改表 

  • 删除表 drop table 表名;

  • 清空表 delete from 表名;或 truncate table 表名;(速度快、无法回滚撒销等)

 

2.2删除、修改表内数据 

1.添加列

alter table 表名 add 列名 类型;
alter table 表名 add 列名类型 DEFAULT 默认值;
alter table 表名 add 列名类型 not null default 默认值;
alter table 表名 add 列名类型 not null primary key auto_increment;

2.删除列

alter table 表名 drop column 列名;

3.修改列类型

alter table 表名 modify column 列名 类型;

4.修改列 类型+名称

alter table 表名 change 原列名 新列名 新类型;
alter table tb change id id int not null;
alter table tb change id id int not null default 5;
alter table tb change id id int not null primary key auto_increment;
alter table tb change id id int; --允许为空,删除默认值,删除自增。

5.修改列 默认值

ALTER TABLE 表名 ALTER 列名 SET DEFAULT1000;

6.删除列 默认值

ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;

2.3主键操作

1.添加主键

alter table 表名 add primary key(列名);

2.删除主键

alter table 表名 drop primary key;

http://www.xdnf.cn/news/903313.html

相关文章:

  • 安卓基础(生成APK)
  • React 第五十六节 Router 中useSubmit的使用详解及注意事项
  • next,react封装axios,http请求
  • ✅ 常用 Java HTTP 客户端汇总及使用示例
  • 【零基础 快速学Java】韩顺平 零基础30天学会Java[学习笔记]
  • HTTP 请求协议简单介绍
  • 2025年SEVC SCI2区,潜力驱动多学习粒子群算法PDML-PSO,深度解析+性能实测
  • MySQL查询语句(续)
  • uniapp Vue2 获取电量的独家方法:绕过官方插件限制
  • Amazon Bedrock 助力 SolveX.AI 构建智能解题 Agent,打造头部教育科技应用
  • 当丰收季遇上超导磁测量:粮食产业的科技新征程
  • 智能手表健康监测系统的PSRAM存储芯片CSS6404LS-LI—高带宽、耐高温、微尺寸的三重突破
  • 微算法科技(NASDAQ:MLGO)基于信任的集成共识和灰狼优化(GWO)算法,搭建高信任水平的区块链网络
  • Guava LoadingCache 使用指南
  • Web前端基础:HTML-CSS
  • D3ctf-web-d3invitation单题wp
  • Q: dify前端使用哪些开发框架?
  • Houdini POP入门学习05 - 物理属性
  • 无头浏览器技术:Python爬虫如何精准模拟搜索点击
  • 每日八股文6.6
  • PowerBI企业运营分析—列互换式中国式报表分析
  • 【应用】Ghost Dance:利用惯性动捕构建虚拟舞伴
  • 单片机内部结构基础知识 FLASH相关解读
  • 数据集-目标检测系列- 口红嘴唇 数据集 lips >> DataBall
  • windows10搭建nfs服务器
  • Linux中 SONAME 的作用
  • mysql-MySQL体系结构和存储引擎
  • 《UE5_C++多人TPS完整教程》学习笔记37 ——《P38 变量复制(Variable Replication)》
  • Xsens-AAA工作室品质,为动画师准备
  • 中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点