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

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(二).设置主键自增等特点

前言        

        在上一节中,主要介绍了 Navicat Premium 17 的使用以及创建一个基础的表格。当时只设置了给数据表补充字段,没有设置给数据表删除字段。现在补充一下。

ALTER TABLE student ADD test int(4);

给名为 student 的数据表添加 test 列,数据类型为 int(4)

 执行新增测试样例代码如下所示: 

执行结果如下所示:

执行测试样例删除命令:

ALTER TABLE 表名 DROP 列名;

删除数据表的指定列

代码执行结果如图所示:

一. 设置自增列

        设置自增列有两种情况:第一种情况是增加一个新的列(属性),并把它设置为自增状态。第二情况是将表中存在的某一列设置为自增。

        在数据表中,自增经常被当做主键,但是自增并不一定是主键。主键:数据库表中用于唯一标识每条记录的一列或一组列。主键在每个数据表中只能存在一个。

1.1 数据表添加自增列

ALTER TABLE student ADD test int(4) PRIMARY KEY AUTO_INCREMENT;

给 student 数据表 添加 test列,并将其设置为主键和自增。

执行完代码,在指定位置刷新如下图所示:

注意在此时如果没有设置主键会报错,在这个软件中自增就需要设置为主键。

1.2 设置数据表某一列为自增

首先执行下列命令删除 test 列,因为一个表中只能存在一个主键。

ALTER TABLE student DROP test;

删除 student 表 test 属性。

命令的输入及解释: 

ALTER TABLE student CHANGE id id int(4) PRIMARY KEY AUTO_INCREMENT;

将 student 表中的 id 设置为主键自增

命令原型:ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];

查看数据信息

SHOW COLUMNS FROM student LIKE 'id';

查看表 student 的 id 属性的信息

  • 列名为“ id”
  • 数据类型为int(4)
  • 允许值为不空(NO)
  • 定义主键(Key 为 PRI)
  • 默认值为NULL(Default列为空)
  • 数据量设置为自增(Extra列为 auto_increment)

二. 设置属性为禁止为空

        设置禁止为空也有两个情况:第一种情况是增加一个新的列(属性),并把它设置为禁止为空状态。第二情况是将表中存在的某一列设置为禁止为空。

2.1 数据表添加禁止为空列

ALTER TABLE student ADD test int(4) NOT NULL;

设置数据表 student 增加 非空列 test

测试是否添加成功

SHOW COLUMNS FROM student LIKE 'test';

2.2 尝试添加为空

先正常添加数据,测试之前代码正确性。

INSERT INTO student (name,sex,age,test) VALUES ('测试','男','19','1');

添加数据

SELECT * FROM student;

查看表中所有的数据

查看表中所有的数据 结果如下,添加成功。

添加第一种错误数据。添加age为空的数据,所以这里说明在代码中不能直接设置为空数据。

INSERT INTO student (name,sex,age,test) VALUES ('测试1','男','','1');

添加数据

添加age为空的数据,所以这里表名在代码中不能直接设置为空数据

添加第二种错误数据。添加位置如下图所示:

  • 第一步双击红色框 student
  • 之后就会弹出黄色框的内容,如果没有自动切换过去,手动点击即可
  • 点击下方绿色加号 
  • 输入完数据之后,点击加号那一列第三个符号“对号”完成输入

只添加属性 test 的内容,可以添加成功。

添加其他四个属性的值,不添加  test  属性,报错。

通过控制变量法可以判断非空已经生效。

2.3 设置数据表某一列为非空

首先执行下列命令删除 test 列,因为我的习惯是测试数据即使删除。

ALTER TABLE student DROP test;

删除 student 表 test 属性。

通过选中测试数据,点击红色区域内的减号,删除数据。

ALTER TABLE student CHANGE name name VARCHAR(20) NOT null;

将 student 表中的 name 设置为非空

命令原型:ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];

        测试过程忽略,测试结果成功。MySQL数据库主键自增长删除后ID存在不连续的问题,这是正常的,可以通过手动输入代码的办法更改数据。下图为设置“name”为空。

三. 设置属性为唯一值

        设置禁止为唯一值有两个情况:第一种情况是增加一个新的列(属性),并把它设置为唯一值的状态。第二情况是将表中存在的某一列设置为唯一值。常见的有邮箱号不能重复使用,电话号,身份证号码登不能重复使用。

3.1 数据表添加唯一列

 ALTER TABLE student ADD test int(4) NOT NULL;

设置数据表 student 增加 非空列 test

测试是否添加成功

SHOW COLUMNS FROM student LIKE 'test';

3.2 尝试添加重复数据

第一步:给“张三”添加“123”

 第二步:给“李四”添加“123”。添加失败。

3.3 设置数据表某一列为唯一值

ALTER TABLE student CHANGE name name VARCHAR(20) UNIQUE;

将 student 表中的 name 设置为唯一值

命令原型:ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];

四. 设置默认

ALTER TABLE student ADD post char(4) DEFAULT('学生');

设置默认值为学生

 刷新查看显示如下

五. 删除旧表创建新表

        DROP TABLE student;

        删除数据表

创建一个新的数据表

CREATE TABLE student(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
tel INT(11) UNIQUE,
sex char(1),
position VARCHAR(4) DEFAULT('学生'));/* id主键自增,name 非空,tel 唯一,sex 正常字符型,position 职位默认学生 */

添加数据

INSERT INTO student
(name,tel,sex)
VALUES
('张三','1516666777','男'),
('张四','1516666778','男'),
('李三','1516666779','女'),
('李五','1516666780','男');/* 插入四条数据。id是自增的,职位默认,所以不需要添加*/

查看数据 


        数据表中的某一列就是表的某一个属性。

        主键:数据库表中用于唯一标识每条记录的一列或一组列。主键在每个数据表中只能存在一个。    

相关文章:

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(二).设置主键自增等特点

前言 在上一节中,主要介绍了 Navicat Premium 17 的使用以及创建一个基础的表格。当时只设置了给数据表补充字段,没有设置给数据表删除字段。现在补充一下。 ALTER TABLE student ADD test int(4); 给名为 student 的数据表添加 test 列&#xf…...

SQL第13课——创建高级联结

本课讲另外一些联结(含义和使用方法),如何使用表别名,如何对被联结的表使用聚集函数。 13.1 使用表别名 第7课中使用别名引用被检索的表列,给列起别名的语法如下: SQL除了可以对列名和计算字段使用别名&a…...

订阅ROS2中相机的相关话题并保存RGB、深度和点云图

系统:Ubuntu22.04 ROS2版本:ROS2 humble 1.订阅ROS2中相机的相关话题并保存RGB图、深度图和点云图 ros2 topic list/stellar_1/rgb/image_raw /camera/depth/image_raw /stellar_1/points2CMakeLists.txt cmake_minimum_required(VERSION 3.15) projec…...

Open WebUI | 自托管的类 ChatGPT 网站

Open WebUI 是一个扩展性强、功能丰富且用户友好的自托管 WebUI,旨在完全离线操作。它支持各种 LLM 服务,包括 Ollama 和 OpenAI 兼容的 API。该项目在 GitHub 上已有 38k 星,非常受欢迎。 功能介绍 废话不多说,上图!…...

【Python】Python知识总结浅析

Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它以简洁的语法和强大的功能著称,适用于多种应用场景,包括Web开发、数据分析、人工智能、自动化脚本等。 易于学习和使用:Python的语法简洁明了,适合初…...

c#代码介绍23种设计模式_20策略者模式

目录 1、策略模式的定义 2、策略模式的结构 3、涉及到三个角色: 4、策略者模式在.NET中应用 5、策略者模式的适用场景 6、策略者模式的优缺点 7、实现思路 在现实生活中,策略模式的例子也非常常见,例如,中国的所得税,分为企业所得税、外商投资企业或外商企业所得税…...

FPGA-UART串口接收模块的理解

UART串口接收模块 背景 在之前就有写过关于串口模块的文章——《串口RS232的学习》。工作后很多项目都会用到串口模块,又来重新理解一下FPGA串口接收的代码思路。 关于串口相关的参数,以及在文章《串口RS232的学习》中已有详细的描述,这里就…...

复习HTML(基础)

目录 HTML含义 HTML作用 HTML的常用元素 元素的特点 元素的分类 1 是否嵌套关系 2 是否独占一行 块元素:独占一行 行内元素:共享一行 行内元素与块级元素的转换 3是否有结束标签 常用标签 1 标题标签:有六级 我们用h1 ~h6 表…...

Linux聊天集群开发之环境准备

一.windows下远程操作Linux 第一步:在Linux终端下配置openssh,输入netstate -tanp,查看ssh服务是否启动,默认端口22.。 注:如果openssh服务,则需下载。输入命令ps -e|grep ssh, 查看如否配有, ssh-agent …...

can 总线入门———can简介硬件电路

文章目录 0. 前言1. CAN简介2. 主流通讯协议对比3. CAN 硬件电路4. CAN 电平标准5. CAN 收发器 0. 前言 博客内容来自B站上CAN总线入门教程视频讲解,博客中的插图和内容均为视频中的内容。视频链接 CAN总线入门教程 1. CAN简介 先来看看一它名字的意思&#xff0c…...

【重学 MySQL】六十、空间类型

【重学 MySQL】六十、空间类型 空间数据类型的分类空间数据类型的属性空间数据的表示方式空间数据的操作应用场景 在MySQL中,空间类型(Spatial Types)主要用于支持地理特征的生成、存储和分析。这些地理特征可以表示世界上具有位置的任何东西…...

python实现DES算法

DES算法 一、算法介绍1.1 背景1.2 原理1.3 基本功能函数1.3.1 初始置换函数 I P IP IP1.3.2 f f f 轮函数1.3.3 逆初始置换函数 I P − 1 IP^{-1} IP−1 1.4 子密钥的生成 二、代码实现2.1 子密钥生成实现2.2 DES加解密实现2.3 完整代码 三、演示效果 一、算法介绍 1.1 背景…...

基于LORA的一主多从监测系统_框架搭建

第一节、框架搭建 打开CubeMAX,选择好芯片,进行基础配置 第一步、先配置时钟源 第二步、配置SYS选项 配置debug口以及计数器源,我这里选择TIM1 第三步、选择I2C接口 配置如下即可,默认配置不用改 第四步、串口选择 我们这里使…...

优化理论及应用精解【25】

文章目录 优化学习率调度1. 阶梯衰减(Step Decay)2. 余弦退火(Cosine Annealing)3. 多项式衰减(Polynomial Decay)4. 指数衰减(Exponential Decay)总结 梯度弥散效应 参考文献 优化 …...

贝锐蒲公英网盘首发,秒建私有云,高速远程访问

虽然公共网盘带来了不少便利,但是大家对隐私泄露和重要数据泄密的担忧也随之增加。如果想要确保数据安全,自建私有云似乎是一条出路,然而面对搭建私有云的复杂步骤,许多人感到力不从心,NAS设备的成本也往往让人望而却步…...

[ 蓝桥 ·算法双周赛 ] 第 19 场 小白入门赛

&#x1f525;博客介绍&#xff1a; EvLast &#x1f3a5;系列专栏&#xff1a; <<数据结构与算法>> << 算法入门>> << C项目>> &#x1f3a5; 当前专栏: << 算法入门>> 专题 : 帮助小白快速入门算法竞赛 &#x1f44d…...

HTML+CSS基础 第二季课堂笔记

一、列表 列表都不是单打独斗的&#xff0c;通常都是一组标签组成 1 无序列表 作用&#xff1a;定义一个没有顺序的列表结构 由两个标签组成&#xff0c;ul&#xff08;容器级标签&#xff09;&#xff0c;li&#xff08;容器级&#xff09; ul&#xff1a;英文ulordered …...

【Easy RL】Easy RL蘑菇书全书学习笔记

【Easy RL】Easy RL蘑菇书全书学习笔记 第一章 强化学习基础1.1 强化学习概述监督学习强化学习与监督学习的不同之处二者的区别总结强化学习的特征强化学习的优越性预演&#xff08;rollout&#xff09;和 轨迹&#xff08;trajectory&#xff09;的概念端到端的概念深度强化学…...

JavaWeb(二)

Servlet开发技术 [外链图片转存中…(img-Cnu8X2V4-1728026684827)] 简述Servlet的创建过程&#xff1f; package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; …...

【C++】--类和对象(2)

&#x1f44c;个人主页: 起名字真南 &#x1f446;个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 类的默认成员函数2 构造函数3 析构函数4 拷贝构造5 赋值运算符重载5.1 运算符重载5.2 赋值运算符的重载 1 类的默认成员函数 默认成员函数就是用户没有显示实现&#xff0c;…...

探索下一代命令行界面:OpenCLI 架构设计与插件化实践

1. 项目概述&#xff1a;一个面向未来的命令行界面原型最近在开源社区里&#xff0c;我注意到一个名为sys-fairy-eve/nightly-mvp-2026-03-19-opencli的项目。这个标题信息量不小&#xff0c;它不像一个成熟的产品&#xff0c;更像是一个开发过程中的里程碑快照。sys-fairy-eve…...

如何为深信服超融合平台上的应用快速接入大模型能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何为深信服超融合平台上的应用快速接入大模型能力 对于在深信服超融合平台上部署业务应用的企业开发团队而言&#xff0c;集成智…...

Instagram视频下载终极指南:三分钟掌握免费下载技巧

Instagram视频下载终极指南&#xff1a;三分钟掌握免费下载技巧 【免费下载链接】instagram-video-downloader Simple website made with Next.js for downloading instagram videos with an API that can be used to integrate it in other applications. 项目地址: https:…...

从开源项目到个人监控工具:clawmonitor的设计、部署与实战

1. 项目概述&#xff1a;从开源项目到个人监控工具的蜕变最近在折腾一个挺有意思的东西&#xff0c;叫clawmonitor。这名字乍一听有点怪&#xff0c;像是“爪子监控器”&#xff0c;但如果你对开源社区&#xff0c;特别是自动驾驶辅助系统领域有所关注&#xff0c;可能会觉得眼…...

不改变专业术语和逻辑的论文降重软件推荐|2026 实测 5 款,改写保真 + 双降达标

论文降重最怕 “改完重复率合格&#xff0c;术语乱改、逻辑断裂”&#xff0c;尤其理工科、医学、经管等专业&#xff0c;公式、术语、论证框架不容半点偏差。2026 年知网、维普全面升级 AIGC 检测&#xff0c;既要降重复率&#xff0c;更要保术语、保逻辑、降 AI 率。今天聚焦…...

等保2.0合规实战:Redis安全配置核查与加固指南

1. Redis安全配置入门&#xff1a;为什么等保2.0要求这么严格&#xff1f; 我第一次接触Redis安全配置是在一次等保2.0合规检查中。当时客户系统因为Redis默认配置导致数据泄露&#xff0c;整个项目组连夜加班整改。从那以后&#xff0c;我就养成了每次部署Redis必做安全检查的…...

面试官问‘0.1+0.2≠0.3’,你能从CPU层面讲清楚吗?浮点数运算避坑指南

为什么0.10.2不等于0.3&#xff1f;从晶体管到代码的浮点数运算解密 当你在Python或JavaScript中输入0.1 0.2时&#xff0c;得到的不是预期的0.3&#xff0c;而是一个近似值0.30000000000000004。这个看似简单的数学问题背后&#xff0c;隐藏着计算机处理数字的复杂机制。理解…...

GalTransl代码架构分析:理解多进程插件系统的设计原理

GalTransl代码架构分析&#xff1a;理解多进程插件系统的设计原理 【免费下载链接】GalTransl 支持GPT-4/Claude/Deepseek/Sakura等大语言模型的Galgame自动化翻译解决方案 Automated translation solution for visual novels supporting GPT-4/Claude/Deepseek/Sakura 项目地…...

书成紫微动,律定凤凰驯:对比臆想歪解,铁哥的天然契合才是真天命

———— 千年颂辞 真天命笺 ————一、两种读法&#xff1a;伪天命 真天命伪天命&#xff08;臆想歪解&#xff09;真天命&#xff08;天然契合&#xff09;脑补玄学、权谋剧本本心行道、作品证道人追诗、人凑运诗等人、运合心后天强行拟合先天无心自洽悬浮文字游戏落地世…...

3分钟告别Armoury Crate:华硕笔记本轻量化控制终极指南

3分钟告别Armoury Crate&#xff1a;华硕笔记本轻量化控制终极指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, E…...