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

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;

相关文章:

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

前言 上篇文章介绍了MySQL数据库以即数据库的管理 这篇文章将给大家讲解数据表的管理 一、数据表常见操作 数据表常见操作的指令 进入数据库use数据库; 查看当前所有表:show tables; 创建表结构 1.创建表操作 1.1创建表 create table 表名(列名 …...

如何在Lyra中创建一个新的Game Feature Plugin和Experience游戏体验

目录 -1.前言0.预备知识1.创建一个新的Game Feature Plugin插件2.创建Lyra Pawn Data Asset3. 创建Lyra Experience Definition4. 创建自定义关卡5. 设置资产管理器Asset Manager引用6. 创建Lyra User Facing Experience Definition7. 在编辑器中运行测试后记-1.前言 由于转职…...

RDMA简介5之RoCE v2队列

在RoCE v2协议中,RoCE v2队列是数据传输的最底层控制机制,其由工作队列(WQ)和完成队列(CQ)共同组成。其中工作队列采用双向通道设计,包含用于存储即将发送数据的发送队列(SQ&#xf…...

SAFe/LeSS/DAD等框架的核心适用场景如何选择?

在敏捷开发的规模化实践中,SAFe(Scaled Agile Framework)、LeSS(Large Scale Scrum)和DAD(Disciplined Agile Delivery)是三大主流框架。它们分别以不同的哲学和方法论应对复杂性、协作与交付的…...

鸿蒙应用开发之uni-app x实践

鸿蒙应用开发之uni-app x实践 前言 最近在开发鸿蒙应用时,发现uni-app x从4.61版本开始支持纯血鸿蒙(Harmony next),可以直接编译成ArkTS原生应用。这里记录一下开发过程中的一些经验和踩过的坑。 一、环境搭建 1.1 开发工具 …...

window查看SVN账号密码

背景 公司的SVN地址发生迁移,想迁移一下本地SVN地址,后来发现SVN账号密码忘记了。写此文章纯记录。 迁移SVN地址: 找到svn目录点击relocate,输入新的svn地址,如需输入账号密码,输入账号密码即完成svn地址…...

Python训练营---Day44

DAY 44 预训练模型 知识点回顾: 预训练的概念常见的分类预训练模型图像预训练模型的发展史预训练的策略预训练代码实战:resnet18 作业: 尝试在cifar10对比如下其他的预训练模型,观察差异,尽可能和他人选择的不同尝试通…...

前端项目初始化

​​​​​​ 目录 1. 安装 nvm 2. 配置 nvm 并切换到 Node.js 16.15.0 3. 安装 LightProxy 代理 4. GIT安装 1. 配置用户名和邮箱(这些信息将用于您在提交代码时的标识): 2. 生成SSH密钥(用于将本地代码仓库与远程存储库连…...

USB扩展器与USB服务器的2个主要区别

在现代办公和IT环境中,连接和管理USB设备是常见需求。USB扩展器(常称USB集线器)与USB服务器(如朝天椒USB服务器)是两类功能定位截然不同的解决方案。前者主要解决物理接口数量不足的“近身”连接扩展问题,而…...

第46节:多模态分类(图像+文本)

一、多模态分类概述 多模态分类是指利用来自不同模态(如图像、文本、音频等)的数据进行联合分析和分类的任务。 在当今大数据时代,信息往往以多种形式存在,例如社交媒体上的图片配文字、视频附带字幕、医疗检查中的影像与报告等。单一模态的数据往往只能提供有限的信息,…...

spring获取注册的bean并注册到自定义工厂中管理

背景 在开发的时候,对于同一个对象的按照某个字段的不同有很多的处理方式。想着开发一个类似于工厂模式,由上层工厂统一分配。 由于是基于springboot开发,所以有很多自动注入的对象,如果由工厂统一创建new对象的方式,那…...

IDEA 中 Maven Dependencies 出现红色波浪线的原因及解决方法

在使用 IntelliJ IDEA 开发 Java 项目时,尤其是基于 Maven 的项目,开发者可能会遇到 Maven Dependencies 中出现红色波浪线的问题。这种现象通常表示项目依赖未能正确解析或下载,导致代码提示错误、编译失败等问题。本文将详细分析该问题的常…...

springMVC-10验证及国际化

验证 概述 ● 概述 1. 对输入的数据(比如表单数据),进行必要的验证,并给出相应的提示信息。 2. 对于验证表单数据,springMVC提供了很多实用的注解, 这些注解由JSR303 验证框架提供. ●JSR 303 验证框架 1. JSR 303 的含义 JSR&#xff0…...

使用Python和TensorFlow实现图像分类

最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...

LRU 和 DiskLRU实现相册缓存器

我是写Linux后端的(golang、c、py),后端缓存算法通常是指的是内存里面的lru、或diskqueue,都是独立使用。 很少有用内存lru与disklru结合的场景需求。近段时间研究android开发,里面有一些设计思想值得后端学习。 写这…...

figma MCP + cursor如何将设计稿生成前端页面

一、准备工作 figma MCP需要通过figma key来获取设计稿权限,key的生成步骤如下 1. 打开figma网页版/APP,进入账户设定 2. 点击生成token 3. 填写内容生成token(一定要确认复制了,不然关闭弹窗后就不会显示了) 二、配置MCP 4. 进入到cursor…...

如何理解OSI七层模型和TCP/IP四层模型?HTTP作为如何保存用户状态?多服务器节点下 Session方案怎么做

本篇概览: OSI 七层模型是什么?每一层的作用是什么?TCP/IP四层模型和OSI七层模型的区别是什么? HTTP 本身是无状态协议,HTTP如何保存用户状态? 能不能具体说一下Cookie的工作原理、生命周期、作用域?使用…...

Flask 核心概念速览:路由、请求、响应与蓝图

一、路由参数与请求方法 Flask 路由允许定义多种参数类型,并通过 methods 属性限制请求方法。 1. 路由参数类型: 除了默认的 string,Flask 还支持: int: 匹配整数,自动转换为 Python int 类型。非数字输入会返回 404。 float: 匹配浮点数,自动转换为 Python float 类型…...

Spring Boot消息系统开发指南

消息系统基础概念 消息系统作为分布式架构的核心组件,实现了不同系统模块间的高效通信机制。其应用场景从即时通讯软件延伸至企业级应用集成,形成了现代软件架构中不可或缺的基础设施。 通信模式本质特征 同步通信要求收发双方必须同时在线交互&#…...

【Elasticsearch】映射:Nested 类型

映射:Nested 类型 1.为什么需要 Nested 类型2.如何定义 Nested 类型3.相关操作3.1 索引包含 Nested 数据的文档3.2 查询 Nested 数据3.3 聚合 Nested 数据3.4 排序 Nested 数据3.5 更新 Nested 文档中的特定元素 4.Nested 类型的高级操作4.1 内嵌 inner hits4.2 多级…...

Vue3 + UniApp 蓝牙连接与数据发送(稳定版)

本教程适用于使用 uni-app Vue3 (script setup) 开发的跨平台 App(支持微信小程序、H5、Android/iOS 等) 🎯 功能目标 ✅ 获取蓝牙权限✅ 扫描周围蓝牙设备✅ 连接指定蓝牙设备✅ 获取服务和特征值✅ 向设备发送数据包(ArrayBu…...

三种读写传统xls格式文件开源库libxls、xlslib、BasicExcel的比较

最近准备读写传统xls格式文件,而不是较新的xlsx,询问DeepSeek有哪些开源库,他给出了如下的简介和建议,还给出了相应链接,不过有的链接已失效。最后还不忘提醒,现在该用xlsx格式了。 以下是几个可以处理传统…...

Nature子刊同款的宏基因组免疫球蛋白测序怎么做?

免疫球蛋白A(IgA)是人体肠道黏膜分泌的主要抗体,它在塑造肠道微生物群落和维持肠道稳态中起着关键作用,有研究发现缺乏IgA的患者更容易患自身免疫性疾病和感染性疾病。 目前用于研究IgA结合的主要技术是IgA-SEQ,结合了…...

2025年牛客网秋招/社招高质量 Java 面试八股文整理

Java 面试 不论是校招还是社招都避免不了各种面试。笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的。关键在于理解企业的需求,明确自己的定位,以及掌握一定的应试技巧。 笔试部分,通常是对基础知识、…...

ADI的BF609双核DSP怎么做开发,我来说一说(五)LAN口测试

作者的话 ADI的双核DSP,第二颗是Blackfin系列的BF609,这颗DSP我用了很久,比较熟悉,且写过一些给新手的教程。 硬件准备 ADSP-BF609-CORE:ADI BF609开发板 产品链接:https://item.taobao.com/item.htm?…...

行业赋能篇-2-能源行业安全运维升级

在能源行业,尤其是风电领域,运维作业往往面临“三高”挑战——高风险环境、高异构数据量)、高合规要求。以海上风电场为例,传统运维依赖卫星电话沟通,数据记录碎片化,故障因信息传递延迟导致损失扩大。如何…...

飞云智能波段主图+多空短线决策副图指标,组合操盘技术图文解说

如上图,组合指标:主图-飞云智能波段,红线上红色K线标记,波段做多.副图指标-多空短线决策,跟踪做短线,红柱做多,绿柱短线卖出或做空。 实战操作中,我们在主图红色线支撑上红色K线出现…...

【51单片机】1. 基础点灯大师

1. 新建一个项目集一些基本操作 打开Keli软件,然后: 【Project】→【new μVision Project】→选择项目保存位置 建议文件名选一些通用的名字,如【Project】 左下角选择【Atmel】的【AT89C52】 弹出的【是否添加启动文件到文件夹下】&…...

RNN和CNN使用场景区别

RNN(循环神经网络)和 CNN(卷积神经网络)是深度学习中两种核心架构,它们的使用场景主要取决于数据结构和任务需求。以下是两者的关键区别及典型应用场景: 核心差异对比 维度RNN(循环神经网络&a…...

PC端直接打印功能(包括两张图片合并功能)

一、 效果图 二、demo代码 <template><div class"box"><divref"printContent"class"print-content"><div class"print-title">打印图片</div><imgclass"preview-image":src"merged…...