当前位置: 首页 > 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;…...

芒格思想阅读建议

&#x1f4da; 来源&#xff1a;《穷查理宝典》演讲精华**整理&#xff1a;小橙子 &#x1f34a; | 日期&#xff1a;2026-03-27&#x1f31f; 必读三篇&#xff08;核心精华&#xff09; 芒格思想的精华集中在三篇演讲&#xff0c;按以下顺序阅读效果最佳&#xff1a; 阅读顺序…...

嵌入式开发必知:如何通过.text、.data和.bss段优化内存使用(附实例分析)

嵌入式开发实战&#xff1a;从.text到.bss的内存优化策略与案例分析 在资源受限的嵌入式系统中&#xff0c;内存优化从来不是可选项&#xff0c;而是生存法则。当你的MCU只有几十KB RAM&#xff0c;而产品功能需求却在不断膨胀时&#xff0c;对内存分区的深入理解就成为了区分普…...

GIS空间分析:从“裁剪”到“掩膜”,如何精准提取目标区域数据?

1. 为什么需要精准提取目标区域数据&#xff1f; 想象一下你手里有一张全国地图&#xff0c;但只需要研究某个城市的数据。这时候就需要像"剪刀"和"遮罩"这样的工具来帮我们精准提取目标区域。在GIS领域&#xff0c;这就是**裁剪(Clip)和掩膜(Mask)**两大核…...

别再只会用0x22读VIN了!手把手教你用UDS诊断DID读取ECU的隐藏数据(附实战报文分析)

解锁ECU隐藏数据&#xff1a;UDS诊断中DID的高级应用实战 在汽车电子诊断领域&#xff0c;UDS协议中的0x22服务&#xff08;读取数据标识符&#xff09;常被工程师们简化为读取VIN码等基础信息的工具。但DID的真正潜力远不止于此——它就像一把可以打开ECU内部数据宝库的万能钥…...

告别新建工程烦恼:手把手教你为复旦微FM33LE0XX搭建IAR标准库工程模板

复旦微FM33LE0XX开发实战&#xff1a;打造可复用的IAR标准工程模板 在嵌入式开发领域&#xff0c;每次新建项目都从零开始配置工程文件无异于重复造轮子。对于复旦微FM33LE0XX系列单片机开发者而言&#xff0c;一个精心设计的标准工程模板能节省至少80%的初始化时间。本文将带你…...

RMBG-2.0应用案例:如何快速处理社交媒体配图

RMBG-2.0应用案例&#xff1a;如何快速处理社交媒体配图 1. 社交媒体配图的痛点与解决方案 在当今内容爆炸的时代&#xff0c;社交媒体配图的质量直接影响着内容的传播效果。无论是个人博主还是企业账号&#xff0c;每天都需要制作大量配图来吸引用户注意力。然而&#xff0c…...

从游戏到医疗:用Touch™和OpenHaptics 3.5解锁Windows力反馈应用新场景(附Unity与C++双环境配置要点)

从游戏到医疗&#xff1a;Touch™力反馈技术的跨界应用与开发实践 想象一下&#xff0c;外科医生在虚拟手术训练中感受到真实的组织阻力&#xff0c;汽车维修学员通过触觉反馈"触摸"到发动机零件的磨损痕迹&#xff0c;游戏玩家在射击游戏中体验到不同武器的后坐力差…...

手机高频麦克风音频采样技术

随着移动终端音频应用的多元化发展&#xff0c;从超声通信、高频声纹识别到医疗级音频监测&#xff0c;对手机麦克风的高频采样能力提出了更高要求。手机高频麦克风音频采样技术&#xff0c;是实现高频音频信号捕捉、传输与后续处理的核心支撑&#xff0c;其性能直接决定了高频…...

零基础玩转TensorFlow-v2.15:Jupyter与SSH两种方式快速上手

零基础玩转TensorFlow-v2.15&#xff1a;Jupyter与SSH两种方式快速上手 深度学习正在改变我们解决问题的方式&#xff0c;而TensorFlow作为最受欢迎的深度学习框架之一&#xff0c;让开发者能够轻松构建和训练复杂的机器学习模型。但对于初学者来说&#xff0c;环境配置往往成…...

BilibiliDown高效使用指南:解决20个核心功能难题

BilibiliDown高效使用指南&#xff1a;解决20个核心功能难题 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bil…...