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

1.MySQL数据库的基本操作

数据库操作过程:

1.用户在客户端输入 SQL
2.客户端会把 SQL 通过网络发送给服务器
3.服务器执行这个 SQL,把结果返回给客户端
4.客户端收到结果,显示到界面上

数据库的操作

这里的数据库不是代表一个软件,而是代表一个数据集合。

显示当前的数据库

show databases;

创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name
  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

create database 数据库名
CREATE DATABASE 数据库名
注意:
1.create,database … 相当于"关键字
2.SQL 的关键字 不区分大小写的
3.创建的数据库的名字,可以随便起,但是不能重复!!
4.单词之间至少有一个空格.也可以是多个空格,不能没有!!
5.在 命令行 中输入的 sql 必须以;作为结尾!!

创建名称为my_database的数据库

create database my_database;
-- 数据库已经存在,再创建就会报错
-- 如果一条一条执行 SQL,不报错影响不大。如果是批量执行 SQL(把很多 SQL 写到一个 文件 中)如果中间某个 SQL 报错, 就会执行停止。
-- 使用了 IF NOT EXISTS 就不会报错了!!
create database if not exists my_database;
-- 创建数据库同时指定数据库的 字符集utf8
create database my_database character set utf8;-- 一般形式
create database my_database charset utf8;-- 简写形式

英文字母,是如何在计算机中表示的?
ascii :使用 数字 表示字符。
ascii 中,只能表示 英文字母 和 标点符号,以及阿拉伯数字。汉字要表示的内容特别多,y有几万个,很明显ascii是不够用的。
其他的字符集思路是一致的,可以搞一个更大的表,来表示汉字。演化出了很多套这样的表示方式~~ (不像 ascii只有一套)。对于中文来说,当前最常见的表示方式,有两种:

  • gbk:使用两个字节,表示一个汉字的

  • utf8:使用三个字节,表示一个汉字的

在这两个表上,同一个汉字,表示的数字不同。同一个数字,对应汉字也不同。VS 使用的编码方式是跟随系统windows 简体中文版,系统编码就是 gbk。目前更主流的还是 utf8,这个东西能表示的内容特别多除了汉字之外,各种其他国家的语言文字符号都能表示。java 的字符集是在编译运行的时候,通过命令行参数显式指定的.一般默认都是 utf8 。

mysql 默认字符集是拉丁文(没法表示中文的)。手动设定一个字符集是非常关键的,后续如果要插入一些中文,如果不是 utf8 / gbk 之类的中文就会乱码。
mysgl 的 utf8 是残缺的.(残缺了一些 emoji 表情),完整版utf8就是:utf8mb4,一般情况下两种字符集是都可以设置的。

使用数据库

使用my_database数据库

use my_database;

1.4 删除数据库

DROP DATABASE [IF EXISTS] db_name;

drop database 数据库名;

-- 删除 删除my_database数据库:
drop database  my_database;
-- 如果存在 my_database数据库,删除my_database数据库:
drop database if exists my_database;

删库操作时非常危险的,一旦删掉数据库,数据库中的所有数据就没了.很难恢复。

如何针对上述危险操作,防患于未然:

1.权限不同的用户,能进行的操作是不一样的(有效避免失误)
2.备份 。一旦不小心误删除了数据, 通过之前的备份数据,恢复回来
3.重要操作的时候,拉上其他人帮忙一起检查。

2. 常用数据类型

数字:

数据类型大小说明对应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

DECIMAL 能够精确表示小数float 和 double 是不能精确表示小数的!!
0.1 + 0.2 != 0.3

image-20230814084045732

因此,DECIMAL 这个类型就是为了解决上述问题的。虽然能精确存储,精确计算了,但是存储空间占用的更多计算速度也是更慢的。

字符串:

数据类型大小说明对应java类型
VARCHAR (SIZE)0-65,535字节可变长度字符串String
TEXT0-65,535字节长文本数据String
MEDIUMTEXT0-16 777 215字节中等长度文本数据String
BLOB0-65,535字节二进制形式的长文本数据byte[]

varchar(SIZE) 属于可变长的字符串SIZE 表示最大长度.单位是 字符(不是字节!!)
varchar(10) => 最多十个字.哪怕是汉字,也是十个。

日期:

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

TIMESTAMP 时间戳:计算机表示时间的一种经典方式以1970年1月1日0时0分0秒为基准,计算当前时刻和基准时刻的秒数/毫秒数 之差。范围从1970到2038年,这个类型最大的问题是 4 个字节,表示的范围太小了。

小结:
上述这么多类型,不必全都掌握,大概熟悉几个常用的就可以了int, bigint, varchar, double, decimal, datetime。

数据表操作

关系型数据库中,数据是以"表”的方式来进行组织的(类似于 excel)。每个数据库中,里面就可以有很多个数据表,每个表可以有很多行,每一行又可以有很多个列(字段)。

所有的和表相关的操作,都是需要选中数据库再进行: use my_database;

3.1 创建表

create table 表名(列名 类型, 列名 类型, 列名 类型......
);

创建表的时候,就需要先把表的类型确定好,后续插入的数据也要遵守当前的这个类型。

 -- 创建学生表,有id和name两个字段create table student(id int, name varchar(20) comment '姓名');

comment 是注释属于是在创建表的时候的一种专属注释
SQL 中如果想用注释,可以使用 # 或者 –

3.2 查看数据库中的所有表

show tables;

3.3 查看指定表的表结构

desc 表名;

desc => describe(描述)

-- 查看student表的结构
desc student;

image-20230814085629174

int(11): 表示的是该列在打印的时候,显示的时候,最多占11 个字符这么宽和存储范围是无关的。

查看的表结构中的含义:

Field:字段.表一行里有几列.
Type:每一列的类型
Null:该列是否允许为空yes 就是允许为空(不填)
Key: 索引类型
Default:默认值.
Extra:额外补充信息

3.4 删除表

语法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
-- 删除 student 表
drop table student;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists student;

上述操作是数据库和数据表的最基础的操作

相关文章:

1.MySQL数据库的基本操作

数据库操作过程: 1.用户在客户端输入 SQL 2.客户端会把 SQL 通过网络发送给服务器 3.服务器执行这个 SQL,把结果返回给客户端 4.客户端收到结果,显示到界面上 数据库的操作 这里的数据库不是代表一个软件,而是代表一个数据集合。 显示当前的数据库 …...

Zabbix-6.4.4 邮箱告警SMS告警配置

目录 ​------------------------- # 邮箱告警 ---------------------------------- 1.安装mailx与postfix软件包 2.修改mailx配置文件 3. 创建文件夹 4. 编写mail-send.sh脚本 5. 将该脚本赋予执行权限 6. 进入web界面进行设置—> Alerts —> Media Types 7. 添…...

网络安全 Day30-运维安全项目-容器架构上

容器架构上 1. 什么是容器2. 容器 vs 虚拟机(化) :star::star:3. Docker极速上手指南1)使用rpm包安装docker2) docker下载镜像加速的配置3) 载入镜像大礼包(老师资料包中有) 4. Docker使用案例1) 案例01::star::star::…...

深入理解设计模式-创建型之单例模式

为什么要使用单例 1、表示全局唯一 如果有些数据在系统中应该且只能保存一份,那就应该设计为单例类。 如:配置类:在系统中,我们只有一个配置文件,当配置文件被加载到内存之后,应该被映射为一个唯一的【配…...

Vue中路由缓存问题及解决方法

一.问题 Vue Router 允许你在你的应用中创建多个视图,并根据路由来动态切换这些视图。默认情况下,当你从一个路由切换到另一个路由时,Vue Router 会销毁前一个路由的组件实例并创建新的组件实例。然而,有时候你可能希望保持一些页…...

Linux与bash(基础内容一)

一、常见的linux命令: 1、文件: (1)常见的文件命令: (2)文件属性: (3)修改文件属性: 查看文件的属性: ls -l 查看文件的属性 ls …...

NVIDIA Omniverse与GPT-4结合生成3D内容

全球各行业对 3D 世界和虚拟环境的需求呈指数级增长。3D 工作流程是工业数字化的核心,开发实时模拟来测试和验证自动驾驶车辆和机器人,操作数字孪生来优化工业制造,并为科学发现铺平新的道路。 如今,3D 设计和世界构建仍然是高度…...

Windows Server --- RDP远程桌面服务器激活和RD授权

RDP远程桌面服务器激活和RD授权 一、激活服务器二、设置RD授权 系统:Window server 2008 R2 服务:远程桌面服务 注:该方法适合该远程桌面服务器没网络状态下(离线),激活服务器。 一、激活服务器 1.打开远…...

关于游戏盾

游戏盾(Game Shield)是一种针对游戏行业特点的网络安全解决方案,主要针对游戏平台面临的各种网络攻击和安全威胁。以下是一些原因,说明为什么游戏平台需要加游戏盾: 1. DDoS攻击:游戏平台通常容易受到分布式…...

回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本…...

《cpolar内网穿透》外网SSH远程连接linux(CentOS)服务器

本次教程我们来实现如何在外公网环境下,SSH远程连接家里/公司的Linux CentOS服务器,无需公网IP,也不需要设置路由器。 视频教程 [video(video-jrpesBrv-1680147672481)(type-csdn)(url-CSDN直播https://live-file.csdnimg.cn/release/live/…...

IDEA启动报错【java.sql.SQLSyntaxErrorException: ORA-00904: “P“.“PRJ_NO“: 标识符无效】

IDEA报错如下: 2023-08-17 11:26:15.535 ERROR [egrant-biz,b48324d82fe23753,b48324d82fe23753,true] 24108 --- [ XNIO-1 task-1] c.i.c.l.c.RestExceptionController : 服务器异常org.springframework.jdbc.BadSqlGrammarException: ### Error queryin…...

Nginx详解

1、高并发时代 单台tomcat在理想情况下可支持的最大并发数量在200~500之间,如果大于这个数量可能会造成响应缓慢甚至宕机。 解决方案是通过多台服务器分摊并发压力,这不仅需要有多台tomcat服务器,还需要一台服务器专门用来分配请求。这既是…...

摸清一下mysql授权语句的实际执行关系

样例 ---------------------------------------------------------------------- grant all PRIVILEGES on db1.* to test% identified by test1; grant all PRIVILEGES on db2.* to test% identified by test2; grant all PRIVILEGES on db3.* to test127.0.0.1 identified …...

sCrypt于8月12日在上海亮相BSV数字未来论坛

2023年8月12日,由上海可一澈科技有限公司(以下简称“可一科技”)、 临港国际科创研究院发起,携手美国sCrypt公司、福州博泉网络科技有限公司、复旦大学区块链协会,举办的BSV数字未来论坛在中国上海成功落下帷幕。 本次…...

Hbase的列式存储到底是什么意思?一篇文章让你彻底明白

一、 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。 二、 HBase 数据模型 HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排…...

机器学习|Softmax 回归的数学理解及代码解析

机器学习|Softmax 回归的数学理解及代码解析 Softmax 回归是一种常用的多类别分类算法,适用于将输入向量映射到多个类别的概率分布。在本文中,我们将深入探讨 Softmax 回归的数学原理,并提供 Python 示例代码帮助读者更好地理解和…...

EmbedPress Pro 在WordPress网站中嵌入任何内容

EmbedPress Pro可让您通过高级自定义、自定义品牌、延迟加载和更多惊人功能嵌入源。为古腾堡块和Elementor编辑器提供支持的一体化 WordPress 嵌入解决方案。使用 EmbedPress 在古腾堡创建交互式内容。使用 EmbedPress 的古腾堡块立即将任何内容嵌入到您的网站。 网址: EmbedP…...

【C++学习手札】一文带你初识C++继承

食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识: C类 ♈️今日夜电波:napori—Vaundy 1:21 ━━━━━━️💟──────── 3:23 …...

【ubuntu18.04】01-network-manager-all.yaml和interfaces和resolv.conf各有什么区别和联系

文章目录 01-network-manager-all.yaml、interfaces 和 resolv.conf 是与网络配置相关的文件,它们在网络设置中有着不同的作用和使用方式。 01-network-manager-all.yaml: 这是一个配置文件,通常在 Ubuntu 系统上使用 NetworkManager 进行网络管理时使用…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

【机器视觉】单目测距——运动结构恢复

ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛&#xf…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...