当前位置: 首页 > news >正文

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 创建数据库

语法:
在这里插入图片描述

说明:

  1. 蓝色字体且是大写的是关键字

  2. {}里的表示必选项,|表示或的意思,DATABASE和SCHEMA都表示数据库的意思,在创建时必须选择一个

  3. []表示可选项,可有可无,if not exists建议在创建数据库时都加上

  4. CHARACTER SET表示指定数据库采用的字符集,COLLATE表示数据库字符集采用的排序规则,强烈建议在创建数据库时手动指定为utf8mb4和utf8mb4_0900_ai_ci

    在MySQL8.0中默认是utf8mb4和utf8mb4_0900_ai_ci,而在5.17中,默认是latin1和utf8mb4_general_ci,而latin1是不支持中文的

  5. ENCRYPTION表示是否加密,在后续学习过程中不用,了解即可

演示:

  1. 创建一个名为test的数据库

    在这里插入图片描述

  2. 创建一个名为test2的数据库,并指定字符集编码规则为utf8mb4,排序规则为utf8mb4_0900_ai_ci

在这里插入图片描述

  1. 再次尝试创建一个test数据库

在这里插入图片描述

代码执行成功,但是出现了一个警告,用show warnings来查看警告信息

在这里插入图片描述

说明要创建的数据库已经存在了

如果不加if not exists的话,就直接报错了

在这里插入图片描述

在实际工作中,执行SQL语句,不是手动一条一条执行的,而是批量一起执行的,因此,为了不因为某一条语句的错误而影响整个执行流程,都会加上一些类似于if not exists的校验,防止因为某一条SQL语句出错而导致整个SQL中断执行

  1. 假如想要创建一个名为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
tinyint1字节Byte
smallint2字节Short
int4字节Integer
bigint8字节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

在这个表中,值得注意的是:

  1. bit(1)就相当于Java中的Boolean类型,用1表示true,用0表示false
  2. 由于float类型和double类型在表示小数时不是特别的精准,所以用decimal类型去表示小数
  3. M中是不计算小数点和负号的,如果D为0,则具体的值不保存小数,只保留整数
  4. decimal(M,D)中的M最大值为65,D最大值为30
  5. 如果省略D,则默认为0;如果省略M,则默认为10

2.2 字符串类型

数据类型大小说明对应Java类型
varchar(size)0-65,535字节可变长度字符串String
text0-65,535字节长文本数据String
mediumtext0-16,777,215中等长度文本数据String
blob0-65,535二进制形式的长文本数据byte[]

注意:

  • varchar(size)中的size是指存入字符串的最大长度,不是字节数

2.3 日期类型

数据类型大小说明对应Java类型
datetime8字节范围从1000到9999,不会进行失去的检索及转换java.util.Date、java.sql.Timestamp
timestamp4字节范围从1970到2038年,自动检索当前时区并进行转换java.util.Date、java.sql.Timestamp

3. 表的操作

创建好数据库后,可以在当前的数据库里对表进行操作,但是对表进行操作之前 ,需要指定是哪一个数据库,即需选择(使用)数据库

use 数据库名;

3.1 创建表

create table [if not exists]表名(字段名 数据类型,字段名 数据类型,字段名 数据类型
);

说明:

  1. 可以使用comment对字段进行说明,相当于Java中的注释
  2. 多个字段之间使用逗号隔开,最后一个字段后面没有逗号了!
  3. 小括号外面的最后面还有个分号别忘了!

示例:创建一个学生类,包含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. 综合应用

  • 有一个商店的数据,记录客户及购物情况,有以下三个表组成:
    1. 商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category, 供 应商provider)
    2. 客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证 card_id)
    3. 购买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中插入浮点数字段时&#xff0c;会发现浮点数的小数位数很长&#xff0c;如下所示&#xff1a; #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、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前 3 年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&a…...

【单片机毕业设计选题24106】-基于阿里云的心率呼吸监测系统

系统功能: 上电后OLED显示 “欢迎使用请稍后”&#xff0c;两秒后显示Connecting...表示 正在连接阿里云&#xff0c;正常连接阿里云后进入系统显示界面&#xff0c;如长时间显示Connecting...请 检查WiFi网络是否正确。 系统连接阿里云后可在阿里云界面查看到系统上报的温…...

leetcode28:找出字符串第一个匹配的下标

找出字符串第一个匹配的下标 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 public int strStr(Str…...

Java二十三种设计模式-桥接模式(10/23)

桥接模式&#xff1a;解耦抽象与实现的灵活设计 引言 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;用于将抽象部分与其实现部分分离&#xff0c;使它们可以独立地变化。它是一种对象结构型模式&#xff0c;又称为柄体(Handle and Body)模…...

Java 面试指南

Java 面试指南 目录 引言Java 基础知识 数据类型运算符控制结构面向对象编程 Java 高级特性 异常处理集合框架泛型多线程与并发 Java 标准类库 java.lang 包java.util 包java.io 包 Java Web 开发 ServletJSPSpring 框架 数据库连接与JDBC JDBC 基础数据库连接池 设计模式 单…...

计算机毕业设计选题推荐-自习室座位预约系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长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包含传输层&#xff0c;链路层&#xff0c;物理层。 应用层是对 JESD204B 进行配置的接口&#xff0c;在标准协议中是不含此层&#xff0c;只是为了便于理解&#xff0c;添加的一个层。 协议层指工程中生成的IP核JESD204B&#xff0c;负责处理输入的用户…...

网络安全-渗透测试工具及插件介绍和使用方法

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

JAVA WEB初步实验

Spring应用开发环境准备 安装配置Spring应用开发环境 熟悉IntelliJ IDEA开发工具 打开idea工具&#xff0c;创建普通Java工程 配置普通Java工程运行环境 得到基本的Java运行环境配置正常 修改pom.xml文件&#xff0c;搭建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(…...

电商行业中选择分账系统的关键因素!

分账是指将一笔交易的款项拆分成多个部分&#xff0c;按照预先设定的比例或规则分配给相关方。在电商行业中&#xff0c;分账通常是指将交易金额分给卖家、平台和其他相关方。 具体来说&#xff0c;分账可以帮助实现以下目标&#xff1a; 卖家结算&#xff1a;将顾客支付的货…...

通过继承实现状态模式(C++)

注意&#xff1a;先做类的声明和抽象基类的声明 抽象基类的函数方法中引入类&#xff0c;具体方法在类的实现后面声明。 在抽象基类的子类的函数中可以调用类的成员函数。 #include <iostream>using namespace std;class Contex;class state { public:virtual void Ha…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...