数据库(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是自增的,职位默认,所以不需要添加*/

查看数据 


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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/440788.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android OTA升级

针对Android系统OTA升级,MTK平台有相关介绍文档:https://online.mediatek.com/apps/faq/detail?faqidFAQ27117&listSW 概念一:OTA包的构建 AOSP full build:Android原生提供的全量包的构建,意思就是可以从任何一…

数据结构:AVL树

前言 学习了普通二叉树,发现普通二叉树作用不大,于是我们学习了搜索二叉树,给二叉树新增了搜索、排序、去重等特性, 但是,在极端情况下搜索二叉树会退化成单边树,搜索的时间复杂度达到了O(N),这…

【EXCEL数据处理】000020 案例 保姆级教程,附多个操作案例。EXCEL使用表格。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000020 案例 保姆级教程,附多个操作案例。…

vulnhub-digitalworld.local DEVELOPMENT靶机

vulnhub:digitalworld.local: DEVELOPMENT ~ VulnHub 导入靶机,放在kali同网段,扫描 靶机在192.168.114.129,扫描端口 开了几个端口,8080端口有网页,访问 说是让访问html_pages 似乎把页面都写出来了&…

2-115 基于matlab的瞬态提取变换(TET)时频分析

基于matlab的瞬态提取变换(TET)时频分析,瞬态提取变换是一种比较新的TFA方法。该方法的分辨率较高,能够较好地提取出故障的瞬态特征,用于故障诊断领域。通过对原始振动信号设置不同信噪比噪声,对该方法的抗…

面向对象特性中 继承详解

目录 概念: 定义: 定义格式 继承关系和访问限定符 基类和派生类对象赋值转换: 继承中的作用域: 派生类的默认成员函数 继承与友元: 继承与静态成员: 复杂的菱形继承及菱形虚拟继承: 虚…

学MybatisPlus

1.设置MySql的数据库 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicodetrue&characterEncodingUTF-8&autoReconnecttrue&serverTimezoneAsia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: MySQL123 logging:l…

IDEA搭建JDK1.8源码调试环境

大家好 下载源码 安装好 JDK 后,源码目录下面有 src.zip 文件,这个文件就是 JDK 的源码 搭建调试环境 新建 Maven 工程,包含以下文件 source:源码文件夹(手动新建)test:单元测试文件夹&…

Linux文件重定向文件缓冲区

目录 一、C文件接口 二、系统文件I/O 2.1认识系统文件I/O 2.2系统文件I/O 2.3系统调用和库函数 2.4open( )的返回值--文件描述符 2.5访问文件的本质 三、文件重定向 3.1认识文件重定向 3.2文件重定向的本质 3.3在shell中添加重定向功能 3.4stdout和stderr 3.5如何理…

JS测试框架——Jest

文章目录 安装yarn安装jestvscode支持jest的智能提示创建JS测试用例 安装yarn yarn是meta发布的一款取代npm的包管理工具。 npm install -g yarn查看yarn软件源 yarn config get registry换源 yarn config set registry https://registry.npmmirror.com恢复官方源 yarn co…

中广核CGN25届校招网申SHL测评题库、面试流程、招聘对象,内附人才测评认知能力真题

​中国广核集团校园招聘在线测评攻略🚀 🎓 校园招聘对象 2024届、2025届海内外全日制应届毕业生,大专、本科、硕士、博士,广核集团等你来! 📈 招聘流程 投递简历 简历筛选 在线测评(重点来啦…

个人项目简单https服务配置

1.SSL简介 SSL证书是一种数字证书,由受信任的证书颁发机构(CA)颁发,用于在互联网通信中建立加密链接。SSL代表“安全套接层”,是用于在互联网上创建加密链接的协议。SSL证书的主要目的是确保数据传输的安全性和隐私性…

看Threejs好玩示例,学习创新与技术(LiquidRaymarching)

今天的示例有点超出我的想象,首先会科普下WGSL这种新的着色器脚本,然后说说示例《Liquid Raymarching Scene with Three.js Shading Language | Codrops (tympanus.net)》的技术流程。本示例最终呈现的效果如下。可以看到他跟QQ那个消息拖拽消灭的效果非…

基于STM32的数字温度传感器设计与实现

引言 STM32 是由意法半导体(STMicroelectronics)开发的基于 ARM Cortex-M 内核的微控制器系列,以其强大的处理能力、丰富的外设接口和低功耗著称,广泛应用于嵌入式系统设计中。在这篇文章中,我们将介绍如何基于 STM32…

考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)

考研论坛平台小程序 目录 基于java和微信小程序的考研论坛平台小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂…

联想电脑怎么开启vt_联想电脑开启vt虚拟化教程(附intel和amd主板开启方法)

最近使用联想电脑的小伙伴们问我,联想电脑怎么开启vt虚拟。大多数可以在Bios中开启vt虚拟化技术,当CPU支持VT-x虚拟化技术,有些电脑会自动开启VT-x虚拟化技术功能。而大部分的电脑则需要在Bios Setup界面中,手动进行设置&#xff…

【Android】Handler消息机制

文章目录 前言概述核心组件概述Android消息机制概述 Android消息机制分析ThreadLocal的工作原理ThreadLocal基础ThreadLocal实现原理 MessageQueueLooperHandler的工作原理总结 前言 本文用于记录Android的消息机制,主要是指Handler的运行机制。部分内容参考自《An…

数据库管理-第248期 23ai:全球分布式数据库-分片数据分布方法(20241006)

数据库管理248期 2024-10-06 数据库管理-第248期 23ai:全球分布式数据库-分片数据分布方法(20241006)1 系统管理分片2 用户定义分片2.1 分片空间2.2 在用户定义分片配置中添加分片空间2.3 为用户定义分片创建表空间2.4 用户定义分片创建分片表…

使用bert模型进行命名实体识别任务

一、实验内容 本实验使用预训练的 BERT 模型进行命名实体识别(NER)任务,并且使用 Hugging Face 的 Transformers 库完成模型的训练、验证和测试。最后,使用测试集评估模型性能,计算NER指标。 二、算法介绍 Bert是一种…

Python技巧:如何处理未完成的函数

一、问题的提出 写代码的时候,我们有时候会给某些未完成的函数预留一个空位,等以后有时间再写具体内容。通常,大家会用 pass 或者 ... (省略号)来占位。这种方法虽然能让代码暂时不报错,但可能在调试的时候…