MySQL——数据库的操作,数据类型,表的操作
MySQL——数据库的操作,数据类型,表的操作
- 1. 数据库的操作
- 1.1 显示当前数据库
- 1.2 创建数据库
- 舍弃当前所写的SQL语句
- 查看当前数据库服务全局的默认字符集
- 1.3 使用数据库
- 1.4 查看当前操作的数据库
- 查看MySQL的帮助
- 1.5 删除数据库
- 2. 常见数据类型
- 2.1 数值类型
- 2.2 字符串类型
- 2.3 日期类型
- 3. 表的操作
- 3.1 创建表
- 3.2 查看表的结构
- 3.3 查看当前数据库中有哪些表
- 3.4 删除表
- 4. 综合应用
1. 数据库的操作
1.1 显示当前数据库
语法:
show databases;
其中:
- 红色下划线的是MySQL自带的数据库,不要轻易进行改动!
- 蓝色下划线的是自己创建的数据库
注意:
- 在使用数据库时,只使用自己的数据库,其他的数据库不要动
- databases 是复数
1.2 创建数据库
语法:
说明:
-
蓝色字体且是大写的是关键字
-
{}里的表示必选项,|表示或的意思,DATABASE和SCHEMA都表示数据库的意思,在创建时必须选择一个
-
[]表示可选项,可有可无,if not exists建议在创建数据库时都加上
-
CHARACTER SET表示指定数据库采用的字符集,COLLATE表示数据库字符集采用的排序规则,强烈建议在创建数据库时手动指定为utf8mb4和utf8mb4_0900_ai_ci
在MySQL8.0中默认是utf8mb4和utf8mb4_0900_ai_ci,而在5.17中,默认是latin1和utf8mb4_general_ci,而latin1是不支持中文的
-
ENCRYPTION表示是否加密,在后续学习过程中不用,了解即可
演示:
-
创建一个名为test的数据库
-
创建一个名为test2的数据库,并指定字符集编码规则为utf8mb4,排序规则为utf8mb4_0900_ai_ci
- 再次尝试创建一个test数据库
代码执行成功,但是出现了一个警告,用show warnings
来查看警告信息
说明要创建的数据库已经存在了
如果不加if not exists的话,就直接报错了
在实际工作中,执行SQL语句,不是手动一条一条执行的,而是批量一起执行的,因此,为了不因为某一条语句的错误而影响整个执行流程,都会加上一些类似于if not exists
的校验,防止因为某一条SQL语句出错而导致整个SQL中断执行
-
假如想要创建一个名为create的数据库,显然按部就班地去创建是不可行的,那么改怎么办呢?需要将create两边加一对反引号 `create`,但实际上不建议这样给数据库命名
舍弃当前所写的SQL语句
另外,如果在写了很多SQL语句时,发现前面有错误,可以使用ctrl+c
将这些SQL语句舍弃掉,并另起一行
查看当前数据库服务全局的默认字符集
1.3 使用数据库
use 数据库名;
1.4 查看当前操作的数据库
select database();
database()是MySQL提供的一个方法,用于查看当前操作的数据库
当未选择(使用)任何数据库时,查看当前操作的数据库:
当使用test数据库时,查看当前操作的数据库:
查看MySQL的帮助
\?
在命令行中,既可以使用\q,也可以使用ctrl+z,退出程序
1.5 删除数据库
drop database [if exists] 数据库名;
写在最前面,删除数据库是一项非常危险的操作,需要慎之又慎,深思熟虑!
下面演示删除test2数据库:
2. 常见数据类型
2.1 数值类型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
bit[(M)] | M指定位数,默认为1 | 二进制数,M的范围从1到64,存储数值范围从0到2^M-1 | 常用Boolean对应bit,此时默认是1位,即只能存0和1 |
tinyint | 1字节 | Byte | |
smallint | 2字节 | Short | |
int | 4字节 | Integer | |
bigint | 8字节 | Long | |
float(M,D) | 4字节 | 单精度,M指定长度,D指定小数位数,会发生精度丢失 | Float |
double(M,D) | 8字节 | Double | |
decimal(M,D) | M/D最大值+2 | 双精度,M指定长度,D指定小数位数,精确数值 | BigDecimal |
numeric(M,D) | M/D最大值+2 | 和decimal一样 | BigDecimal |
在这个表中,值得注意的是:
- bit(1)就相当于Java中的Boolean类型,用1表示true,用0表示false
- 由于float类型和double类型在表示小数时不是特别的精准,所以用decimal类型去表示小数
- M中是不计算小数点和负号的,如果D为0,则具体的值不保存小数,只保留整数
- decimal(M,D)中的M最大值为65,D最大值为30
- 如果省略D,则默认为0;如果省略M,则默认为10
2.2 字符串类型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
varchar(size) | 0-65,535字节 | 可变长度字符串 | String |
text | 0-65,535字节 | 长文本数据 | String |
mediumtext | 0-16,777,215 | 中等长度文本数据 | String |
blob | 0-65,535 | 二进制形式的长文本数据 | byte[] |
注意:
- varchar(size)中的size是指存入字符串的最大长度,不是字节数
2.3 日期类型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
datetime | 8字节 | 范围从1000到9999,不会进行失去的检索及转换 | java.util.Date、java.sql.Timestamp |
timestamp | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换 | java.util.Date、java.sql.Timestamp |
3. 表的操作
创建好数据库后,可以在当前的数据库里对表进行操作,但是对表进行操作之前 ,需要指定是哪一个数据库,即需选择(使用)数据库
use 数据库名;
3.1 创建表
create table [if not exists]表名(字段名 数据类型,字段名 数据类型,字段名 数据类型
);
说明:
- 可以使用comment对字段进行说明,相当于Java中的注释
- 多个字段之间使用逗号隔开,最后一个字段后面没有逗号了!
- 小括号外面的最后面还有个分号别忘了!
示例:创建一个学生类,包含id,name字段
注:
- 强烈建议每张表都设计一个编号字段,数据类型为bigint
- varchar(size)里的长度记得指定
3.2 查看表的结构
desc 表名;
注解:
- Field表示当前表中有哪些字段,Type是对应字段的数据类型,NULL表示当前这个字段是否允许为null
- Default表示当前字段的默认值,即什么都不指定时的默认值
- Extra表示其他的一些扩展内容
3.3 查看当前数据库中有哪些表
show tables;
3.4 删除表
drop [temporary] table [if exists] 表名1[,表名2]...;
注:
- temporary表示用户创建的临时表
- 一条drop语句可以同时删除很多张表,每个表名之间用逗号隔开
- 同样地,删表操作也是一种很危险的操作,丝毫不亚于删库操作
4. 综合应用
- 有一个商店的数据,记录客户及购物情况,有以下三个表组成:
- 商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category, 供 应商provider)
- 客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证 card_id)
- 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)
use test;create table if not exists goods (goods_id bigint,goods_name varchar(50),unitpirce decimal(10,2),provider varchar(50)
);desc goods;create table if not exists customer(customer_id bigint,name varchar(10),address varchar(50),email varchar(20),gender tinyint(1),card_id varchar(20)
);desc customer;create table if not exists purchase(order_id bigint,customer_id bigint,good_id bigint,nums bigint
);desc purchase;show tables;
结果一:
结果二:
结果三:
结果四:
相关文章:

MySQL——数据库的操作,数据类型,表的操作
MySQL——数据库的操作,数据类型,表的操作 1. 数据库的操作1.1 显示当前数据库1.2 创建数据库舍弃当前所写的SQL语句查看当前数据库服务全局的默认字符集 1.3 使用数据库1.4 查看当前操作的数据库查看MySQL的帮助 1.5 删除数据库 2. 常见数据类型2.1 数值…...
Go 临界资源 安全问题
临界资源安全的问题: 临界资源: 指并发环境中多个 进程/线程/协程 可以共享(都可以调用)的资源/变量,如果在并发环境中处理不当,就会造成一些 严重、问题 func main() {//临界资源a : 10go func() {a 100f…...

安卓常用控件(上)
文章目录 TextViewButtonEditText TextView textview主要用于在界面上显示一段文本信息。 属性名描述id给当前控件定义一个唯一的标识符。layout_width给控件指定一个宽度。match_parent:控件大小与父布局一样;wrap_content:控件大小刚好够包…...
基于 RabbitMQ 实现延迟消息的订单处理流程
文章目录 订单创建流程1. 商品查询与订单数据初始化2. 总价计算与订单保存3. 扣减库存与购物车清理4. 延迟消息与支付状态检测 订单延迟消息监听器支付成功与订单取消1. 订单支付成功2. 订单取消与库存恢复 总结 在现代电商系统中,订单处理是一个复杂且关键的环节。…...

使用Python将Word文档转换为PNG图片
在这篇博客中,我将介绍一个使用Python编写的小工具,它能够将指定文件夹中的所有Word文档(.doc和.docx格式)转换为PNG图片。这个工具基于wxPython库构建图形用户界面,并结合了win32com和PyMuPDF库实现文档格式的转换。接…...
Qt创建Json对象时浮点数的精度控制
我们在Qt中使用Json都是使用QJsonDocument、QJsonArray、QJsonObject、QJsonValue等类。 当我们在QJsonObject中插入浮点数字段时,会发现浮点数的小数位数很长,如下所示: #include <QJsonDocument> #include <QJsonArray> #incl…...

【海贼王航海日志:前端技术探索】CSS你了解多少?(二)
目录 1 -> 字体属性 1.1 -> 设置字体 1.2 -> 字体大小 1.3 -> 字体粗细 1.4 -> 文字样式 2 -> 文本属性 2.1 -> 文本颜色 2.1.1 -> 认识RGB 2.1.2 -> 设置文本颜色 2.2 -> 文本对齐 2.3 -> 文本装饰 2.4 -> 文本缩进 2.5 -&g…...

软件测试面试200问(全)
1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前 3 年积累测试经验,按如何做好测试工程师的要点去要求自己&a…...

【单片机毕业设计选题24106】-基于阿里云的心率呼吸监测系统
系统功能: 上电后OLED显示 “欢迎使用请稍后”,两秒后显示Connecting...表示 正在连接阿里云,正常连接阿里云后进入系统显示界面,如长时间显示Connecting...请 检查WiFi网络是否正确。 系统连接阿里云后可在阿里云界面查看到系统上报的温…...
leetcode28:找出字符串第一个匹配的下标
找出字符串第一个匹配的下标 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 public int strStr(Str…...

Java二十三种设计模式-桥接模式(10/23)
桥接模式:解耦抽象与实现的灵活设计 引言 桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模…...
Java 面试指南
Java 面试指南 目录 引言Java 基础知识 数据类型运算符控制结构面向对象编程 Java 高级特性 异常处理集合框架泛型多线程与并发 Java 标准类库 java.lang 包java.util 包java.io 包 Java Web 开发 ServletJSPSpring 框架 数据库连接与JDBC JDBC 基础数据库连接池 设计模式 单…...

计算机毕业设计选题推荐-自习室座位预约系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

android13 删除兼容性警告窗口 deprecation warning 去除弃用警告
总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况 3.问题分析 4.代码更改 5.编译测试 6.彩蛋 1.前言 在 Android 13 中,为了提高用户体验和应用的兼容性,系统引入了一些新的隐私和安全特性。这些特性可能会影响旧版应用的行为,因此当用户运行可能不完全兼容 An…...

JESD204B/C协议学习笔记
JESD204B基础概念 204B包含传输层,链路层,物理层。 应用层是对 JESD204B 进行配置的接口,在标准协议中是不含此层,只是为了便于理解,添加的一个层。 协议层指工程中生成的IP核JESD204B,负责处理输入的用户…...

网络安全-渗透测试工具及插件介绍和使用方法
1、Burp Suite Burp Suite 是用于攻击web 应用程序的集成平台。 是一款广泛使用的网络安全工具套件,主要用于测试Web应用程序的安全性。它可以帮助安全研究人员、渗透测试人员和开发人员发现和利用Web应用程序中的安全漏洞。 (1)下载和安装&a…...

JAVA WEB初步实验
Spring应用开发环境准备 安装配置Spring应用开发环境 熟悉IntelliJ IDEA开发工具 打开idea工具,创建普通Java工程 配置普通Java工程运行环境 得到基本的Java运行环境配置正常 修改pom.xml文件,搭建Spring IOC运行环境 更新pom文件 新建User、TestSpr…...
30 个 JavaScript 技巧,让你的代码更具可读性
1 、使用 !! 转换为布尔值 使用双重否定快速将任何值转换为布尔值。 let truthyValue !!1; // true let falsyValue !!0; // false 2 、 默认函数参数 设置函数参数的默认值以避免定义错误。 function greet(name "Guest") {return Hello, ${name}!; }greet(…...
电商行业中选择分账系统的关键因素!
分账是指将一笔交易的款项拆分成多个部分,按照预先设定的比例或规则分配给相关方。在电商行业中,分账通常是指将交易金额分给卖家、平台和其他相关方。 具体来说,分账可以帮助实现以下目标: 卖家结算:将顾客支付的货…...
通过继承实现状态模式(C++)
注意:先做类的声明和抽象基类的声明 抽象基类的函数方法中引入类,具体方法在类的实现后面声明。 在抽象基类的子类的函数中可以调用类的成员函数。 #include <iostream>using namespace std;class Contex;class state { public:virtual void Ha…...

智慧城市项目总体建设方案(Word700页+)
1 背景、现状和必要性 1.1 背景 1.1.1 立项背景情况 1.1.2 立项依据 1.2 现状 1.2.1 党建体系运行现状 1.2.2 政务体系运行现状 1.2.3 社会治理运行现状 1.2.4 安全监管体系现状 1.2.5 环保体系运行现状 1.2.6 城建体系运行现状 1.2.7 社区体系运行现状 1.2.8 园区…...
HTMLCSS 学习总结
目录 一、HTML核心概念 三大前端技术作用 HTML基础结构 开发工具:VS Code 专业配置安装步骤: 二、HTML标签大全(含表格) 三、CSS核心技术 1. 三种引入方式对比 2.…...
设计模式-观察着模式
观察者模式 观察者模式 (Observer Pattern) 是一种行为型设计模式,它定义了对象之间一种一对多的依赖关系,当一个对象(称为主题或可观察者)的状态发生改变时,所有依赖于它的对象(称为观察者)都…...

深度学习学习率优化方法——pytorch中各类warm up策略
warm-up具体原理以及为什么这么做在之前的博客有介绍,这里直接介绍如何直接使用pytorch中的warm-up策略,在pytorch中对于warm-up所有支持的方法都有描述,可以直接阅读1。 深度学习中各类学习率优化方法(AdaGrad/RMSprop/Adam/Warm-UP)原理及其…...

华为云Flexus+DeepSeek征文|华为云Flexus服务器dify平台通过自然语言转sql并执行实现电商数据分析
目录 前言 1 华为云Flexus服务器部署Dify平台 1.1 华为云Flexus服务器一键部署Dify平台 1.2 设置账号登录Dify,进入平台 2 构建自然语言转SQL并执行的应用 2.1 创建应用并启动工作流设计 2.2 应用框架设计 2.3 自然语言转SQL模块详解 2.4 代码执行模块实现…...

数学:”度量空间”了解一下?
度量空间是现代数学中一种基本且重要的抽象空间。以下是对它的详细介绍: 定义 相关概念 常见的度量空间举例 度量空间的类型 度量空间的作用 度量空间是拓扑空间的一种特殊情况,它为拓扑空间的研究提供了具体的模型和实例。同时,度量空间在…...

【第九篇】 SpringBoot测试补充篇
简介 本文介绍了SpringBoot测试中的五项关键技术:测试类专用属性加载、 测试类专用Bean配置、 表现层测试方法、测试类事务回滚控制、配置文件随机数据设置)。这些技术可以有效隔离测试环境,确保测试数据不影响生产环境,同时提供了…...

debian12拒绝海外ip连接
确保 nftables 已安装: Debian 12 默认使用 nftables 作为防火墙框架。检查是否安装: sudo apt update sudo apt install nftables启用并启动 nftables 服务 sudo systemctl enable nftables sudo systemctl start nftables下载maxmind数据库 将文件解…...

Spring Boot 从Socket 到Netty网络编程(下):Netty基本开发与改进【心跳、粘包与拆包、闲置连接】
上一篇:《Spring Boot 从Socket 到Netty网络编程(上):SOCKET 基本开发(BIO)与改进(NIO)》 前言 前文中我们简单介绍了基于Socket的BIO(阻塞式)与NIO(非阻塞式࿰…...
CommandLineRunner详细教程
文章目录 1. CommandLineRunner基础概念和背景1.1 什么是CommandLineRunner?1.1.1 核心概念1.1.2 接口定义 1.2 为什么需要CommandLineRunner?1.3 CommandLineRunner的特点1.3.1 执行时机1.3.2 与ApplicationRunner的区别 2. 环境搭建和项目结构2.1 Mave…...