【MySQ必知必会】MySQL 是怎么存储数据的?

2023-11-09

总结

CREATE DATABASE demo;
DROP DATABASE demo; -- 删除数据库
SHOW DATABASES; -- 查看数据库
--创建数据表
CREATE TABLE demo.test (
barcode text,
goodsname text,
price int );

DESCRIBE demo.test; -- 查看表结构

SHOW TABLES; -- 查看所有表

--怎加主键
ALTER TABLE demo.test 
 ADD COLUMN itemnumber int PRIMARY KEY auto_increment;
-- 向表中添加数据 
INSERT INTO demo.test23(barcode,goodsname,price)24 VALUES ('0001','本',3);

前言

在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据

一,创建数据库

在Workbench下创建数据库demo。

create database demo;


mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| blog               |
| demo               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

在这里插入图片描述

二,确认字段

MySQL 会让我们确认新表中有哪些列及它们的数据类型。这些列就是 MySQL 数据表的字段。MySQL 数据表由行与列组成,一行就是一条数据记录,每一条数据记录都被分成许多列,一列就叫一个字段。每个字段都需要 定义数据类型,这个数据类型叫做字段类型。每一条数据记录的每一个片段,就按照字段的定义被严格地管理起来了,从而使数据有序而且可靠。MySQL 支持多种字段类型,字段的定义会影响数据的取值范围、精度,以及系统的可靠性。
在这里插入图片描述

三,创建数据表

MySQL 中的数据表是什么呢?你可以把它看成用来存储数据的最主要工具。数据表对存储在里面的数据进行组织和管理,使数据变得有序,并且能够实现高效查询和处理。

CREATE TABLE demo.test (
barcode text,
goodsname text,
price int );

执行完后就可在Workbench中的demo数据库中查看数据表test
在这里插入图片描述注意两点:

  • 创建表的时候,最好指明数据库。 否则,如果你没有选中数据库,Workbench 会提示错误; 要是你当前选中的光据 ; 不时,还可能把表创建到错误的数据库中。
  • 不要在最后一个字段的后面加逗号“,”,这也是初学者容易犯的错误。

查看数据表的结构

mysql> desc demo.test;
+-----------+---------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| barcode   | text    | YES  |     | NULL    |       |
| goodsname | text    | YES  |     | NULL    |       |
| price     | int(11) | YES  |     | NULL    |       |
+-----------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)

我来解释下文些信息都代表什么意思。
Field:表示字段名称。
Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。Null:表示这个字段是否允许是空值(NULL)。
这里你一定要注意,在 MySQL 里面,空值不等于空字符串。一个空字符串的长度是 0, 而一个空值的长度是空。而且,在MySQL 里面,空值是占用空间的。
Key:我们暂时把它叫做键。
Default:表示默认值。我们导入的表的所有的字段都允许是空,默认值都是 NULL。Extra:表示附加信息。关于字段类型和 Key,后面我会具体讲解,这里你只需要知道它们的含义就可以了。

查看数据库中的表

mysql> use demo   --选择数据库
Database changed
mysql> show tables; --查看数据库中的表
+----------------+
| Tables_in_demo |
+----------------+
| test           |
| test9          |
+----------------+
2 rows in set (0.00 sec)

如何使设置主键

MySQL 中数据表的主键,是表中的一个字段或者几个字段的组合。它主要有 3 个特征:

  • 必须唯一,不能重复;
  • 不能是空;
  • 必须可以唯一标识数据表中的记录。

在这里插入图片描述

由于数据表中的字段,每一个都有重复的可能,我们自己创建一个逻辑主键itemnumber

 我们就可以添加一个字段,字段类型是整数,我们给它取个名字叫商品编号“itemnumber”。让这个字段的值自动加 1,这样就永远不会重复了.

在 workbench中我们可以修改表结构,也可以使用sql语句修改。
在这里插入图片描述

mysql> ALTER TABLE demo.test 
    ->  ADD COLUMN itemnumber int PRIMARY KEY auto_increment;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

  • ALTER TABLE ,表示修改表;
  • ADD COLUMN,表示增加一列;
  • PRIMARY KEY,表示这一列是主键;
  • auto_increment,表示每增加一条记录,这个值自动增加。

四,插入数据

Workbench的数据导入功能,可以帮助我们把Excel的数据导入到表里面,那么,我们自己怎么向数据表中插入一条数据呢?我
们可以借助 SQL 语句。这里的INSERT INTO 表示向 demo.test 中插入数据,后面是要插入数据的字段名,VALUES 表示对应的值。

mysql>  
mysql>  INSERT INTO demo.test(barcode,goodsname,price)  
    ->  VALUES ('0001','本',3);
Query OK, 1 row affected (0.01 sec)

  1. 要插入数据的字段名也可以不写。这样做的好处是可读性好,不易出错,而且容易修改。
  2. 由于字段 itemnumber 定义了 AUTO_INCREMENT,所以我们插入一条记录的时候,不给它赋值,系统也会自动给它赋值。每次赋值,都会在上次的赋值基础上,自动增加 1。你也可以在插入一条记录的时候给 itemnumber 赋值,由于它是主键,新的值必须与已有记录的 itemnumber 值不同,否则系统会提示错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【MySQ必知必会】MySQL 是怎么存储数据的? 的相关文章

随机推荐

  • python+Django的web开发实例

    一 创建一个项目 如果这是你第一次使用Django 那么你必须进行一些初始设置 也就是通过自动生成代码来建立一个Django项目 一个Django项目的设置集 包含了数据库配置 Django详细选项设置和应用 特性配置 具体操作步骤如下所示
  • TaiShan 200服务器安装Ubuntu 18.04

    TaiShan 200服务器安装Ubuntu 18 04 0 镜像下载 1 准备工作 1 1 软件硬件环境准备 1 2 组网规划 1 3 磁盘分区规划 1 4 可选 RAID配置 2 通过光驱安装Ubuntu 18 04 0 镜像下载 ub
  • 峰值电流模式Buck控制器

    图1 7 1峰值电流模式Buck Converter方块图 图1 7 1包含两个回路 分别是外回路 电压控制回路 和内回路 电感电流控制回路 外回路 电压控制回路 此回路类似与输出电压控制模式类似 Vcomp为输出电压与基准电压通过比较器而
  • Android Studio 中使用uiautomatorviewer插件

    1 综述 Android Studio是Google官方提供的一款用于开发Android应用程序的集成开发环境 IDE 它基于IntelliJ IDEA开发而来 为开发者提供了完整的工具链 包括代码编写 调试 测试 性能优化等 Androi
  • C++实现MySQL数据库连接池

    C 实现MySQL数据库连接池 涉及技术 MySQL数据库编程 单例模式 STL容器 C 11多线程 线程互斥 线程互斥 线程同步通信和unique lock 智能指针shared ptr lambda表达式 生产者 消费者线程模型 项目背
  • 职场日常:测试常用测试工具盘点,你用过几个?

    测试工具永远是软件测试人员的得力助手 不能完全依赖工具 但也不能没有工具 在学习软件过程中 要著中软件测试工具的使用 1 测试管理工具 禅道 简单好用 市场主流 互联网行业居多 Jira 简单好用 bugzilla 功能简单 svn 代码和
  • StringBuffer简单使用

    StringBuffer简单使用 一 简介 StringBuffer 是可以存储和操作字符串 即包含多个字符的字符串数据 String类是字符串常量 是不可更改的常量 而StringBuffer是字符串变量 它的对象是可以扩充和修改的 St
  • 【Linux】如何在Linux下提交代码到gittee

    文章目录 使用 git 命令行 创建项目 三板斧第一招 git add 三板斧第二招 git commit 三板斧第三招 git push 其他几个重要的命令 git pull 将远端同步到本地 git rm 删除 git log 查看提交
  • 如何让 useEffect 支持 async/await?

    大家在使用 useEffect 的时候 假如回调函数中使用 async await 的时候 会报错如下 看报错 我们知道 effect function 应该返回一个销毁函数 return返回的 cleanup 函数 如果 useEffec
  • linux 查看运行进程的可执行文件所在目录

    1 获取PID 方法1 执行top命令 然后找到对应的进程 方法2 执行ps ef grep 程序名 2 进入proc目录下对应的进程路径 cd proc 3 sudo ls l user为root的进程需要sudo权限 exe连接的即可执
  • go语言基础-----11-----正则表达式

    1 正则表达式介绍 正则表达式是一种进行模式匹配和文本操纵的复杂而又强大的工具 虽然正则表达式比纯粹的文本匹配效率低 但是它却更灵活 按照它的语法规则 随需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符组合 Go语言通过r
  • Java-API简析_java.lang.RuntimePermission类(基于 Latest JDK)(浅析源码)

    版权声明 未经博主同意 谢绝转载 请尊重原创 博主保留追究权 https blog csdn net m0 69908381 article details 132571263 出自 进步 于辰的博客 因为我发现目前 我对Java API的
  • 【MySQL安装问题】找不到MSVCR120.dll,无法继续执行代码。

    Q 由于找不到MSVCP120 dll 无法继续执行代码 重新安装程序可能会解决此问题 A 参考解决方法链接由于找不到MSVCP120 dll 无法继续执行代码 重新安装程序可能会解决此问题 琴时 博客园 解决方式 点击进入微软官网下载地址
  • MATLAB 数学应用 初等数学 绘制虚数和复数数据图

    文章最后留了个超实用的matlab在线测试工具 绘制一个复数输入 本文演示如何绘制复数向量 z 的虚部与实部 在此复数输入中 plot z 等同于 plot real z imag z 其中 real z 是 z 的实部 imag z 是
  • docker容器部署pytorch模型,gpu加速部署运行

    参考文章 https www zhihu com search type content q Docker EF BC 8C E6 95 91 E4 BD A0 E4 BA 8E E3 80 8C E6 B7 B1 E5 BA A6 E5
  • thinkphp6 入门教程合集(更新中)

    thinkphp6 入门 1 安装 路由规则 多应用模式 thinkphp6 入门 1 安装 路由规则 多应用模式 软件工程小施同学的博客 CSDN博客 thinkphp6 入门 2 视图 渲染html页面 赋值 thinkphp6 入门
  • 组件是如何通信的?技术水平真的很重要!学习路线+知识点梳理

    开头 此文希望能给想跳槽和面试朋友一些参考 金九银十已过 面试的狂热季也已结束 小编也正是选择了在金九十银跳槽 之前在腾讯做了五年Android开发工作 之后感觉公司不一定能继续提供给我想要的发展空间与前景 说白了 有家室 我需要更高的薪酬
  • pandas提取时间里面的年月日_python入门

    时间模块 datetime 1 datetime date date对象 年月日 datetime date today 该对象类型为datetime date 可以通过str函数转化为str In 1 import datetime In
  • 砝码称重问题【dp】

    设有 1g 2g 3g 5g 10g 20g 的砝码各若干枚 其 总重 1000g 要 求 输入 a1 a2 a3 a4 a5 a6 表示 1g 砝码有 a1 个 2g 砝码有 a2 个 20g 砝码有 a6 个 输出 Total N N
  • 【MySQ必知必会】MySQL 是怎么存储数据的?

    文章目录 总结 前言 一 创建数据库 二 确认字段 三 创建数据表 四 插入数据 总结 CREATE DATABASE demo DROP DATABASE demo 删除数据库 SHOW DATABASES 查看数据库 创建数据表 CRE