MySQL学习笔记3: MySQL数据库基础

目录

  • 前言
  • 目标
  • 数据库操作(针对database 的操作)
    • 1. 创建数据库 create database 数据库名;
    • 2. 查看数据库 show databases;
    • 3. 选中数据库 use 数据库名;
    • 4. 删除数据库 drop database 数据库名;
  • mysql中支持的数据类型
    • 1. 数值类型: NUMERIC(M,D)
    • 2. 字符串类型: VARCHAR(SIZE)
  • 数据库的 表 操作(前提都是要选中数据库)
    • 1. 创建表 create table 表名(列名 类型 列名 类型 ...);
    • 2. 查看有哪些表 show tables;
    • 3. 查看表的结构 desc 表名;
    • 4. 删除表 drop table 表名;

前言

操作使用 MySQL 需要用到一种专门的编程语言: SQL (和 Java, C++ 是同类的)

这里需要注意的是:MySQL 是一个数据库软件,SQL 是一个编程语言,操作 MySQL 需要用到 SQL, 操作其他数据库也会用到这个语言

目标

  • 数据库的操作:创建数据库,删除数据库
  • 常用数据类型 (数据类型我只列举了一两个呜呜)
  • 表的操作:创建表,删除表

数据库操作(针对database 的操作)

数据库操作,此处 数据库 指的是 数据集合, 是逻辑上的概念, 一个 mysql 服务器上,有多个这样的数据集合.

1. 创建数据库 create database 数据库名;

create database 数据库名 charset utf8; (create, database 都是SQL 中的关键字,数据库名以字母数字下划线随便起,但是不能和关键字重复,每个语句这里带有英文分号 ; 结尾)
alt

成功案例:

在这里插入图片描述

注意:一个服务器上 数据库的名字,是不能重复的

例子:

在这里插入图片描述

创建数据库的时候,还可以同时设置一个字符编码,对于数据库存储中文有一定的帮助

因为 mysql 5. 默认的字符集是"拉丁文"无法直接存储中文的,创建数据库的时候手动指定 utf8 的字符集

mysql 这里指定的字符集还有一种写法: utfmb4 这是mysql 专有的,因为 mysql 的utf8不是完全体,有些内容缺失了(比如emoji),

utf8mb4 是完整版本的 utf8

例子:

在这里插入图片描述

指令集: 比如不同的编码方式,一个汉字需要用不同的字节数保存, 使用不同的字符集,编码方式也不同.计算机存储的是"二进制数据"编码就是用数字表示字符 (比如ASCII码)

现在比较常见的中文编码方式主要有两种: utf8和gbk码表

  • GBK (Windows 简体中文版,默认使用的字符编码),在 VS 上写 C 语言代码,可以看到一个汉字占 2 个字节,这种表示方式有一定缺陷,2个字节只能表示 6w 多个不同的字符,常用汉字 4k 个,但算上生僻字,总数就 6w 了.
  • utf8 更通用的编码方式, 变长编码,一个utf8的字符,可能是1个字节,2个字节,3个字节,4个字节…utf8能表示全世界任何一种语言文字,utf8如果用来表示汉字,一般就是 3 个字节
  • java 的 char 使用的是另外一种编码,unicode, gbk,utf8,unicode 是三种编码,也就是说,同一个汉字会有三种不同的数字表示,char 使用unicode 是没问题的, 但是String 就无法使用 unicode, Java String 默认也是 utf8
  • utf8 和 unicode 是有关系的,如果现在有一组汉字,想把这一组汉字,通过网络传输/保存到文件中,势必就需要把汉字内部的编码,一个字节一个字节的进行传输/存储,在这种场景下, unicode 就寄了, 因为把多个 unicode 的字符编码的数据,按照字节挨在一起之后,然后就区分不出来,从哪到哪是一个完整的汉字了.utf8 就相当于为了解决 unicode 这个问题而产生的

在这里插入图片描述

2. 查看数据库 show databases;

查看当前服务器有哪些数据库?

show databases;

一个数据库服务器,可以有多个数据库,使用 s 复数形式来描述

在这里插入图片描述

这里有些数据库是系统自带的,有些是我后来手动创建的

testdemo就是刚才创建出来的新鲜的数据库

test是之前创建出来的数据库

information_schema, mysql, performance_schema, sys是系统自带的数据库,这些数据库维护了 mysql 内部的一些相关信息,不去修改他们

在这里插入图片描述

3. 选中数据库 use 数据库名;

use 数据库名;

数据库服务器上,有多个数据库,进行后续的表操作的时候,就需要先指定你要操作哪个数据库.

在这里插入图片描述

4. 删除数据库 drop database 数据库名;

drop database 数据库名;

在这里插入图片描述

删除数据库是一个非常危险的操作,一旦删掉之后,数据就没了.

如果你删除的是一个比较重要的生产环境的数据,就非常危险

工作中会接触到的几套环境:

  1. 办公环境: 发一个电脑 笔记本/台式机,进行日常办公使用的机器,配置比较低,用来通过通讯软件和其他同事交流,开一些会议,发邮件,写PPT等,配置像是 8c 16G 512G
  2. 开发环境: 写代码,编译代码,简单的运行代码,有些公司,开发环境就是办公环境(开发的项目比较简单),也有些公司,开发环境需要配专门的机器(服务器) 配置像是 28c 128G NT ,这样的服务器启动一下就要几十个GB的内存,在自己的电脑跑是不现实的
  3. 测试环境: 把写好的代码进行测试时候使用的环境,配置像是 28c 128G NT
  4. 生产环境: 办公,开发和测试环境统称为线下环境,生产环境也叫做线上环境,生产环境上面部署的程序,是可以直接被外面的用户访问到的,比如打开一个搜索引擎,在看到搜索结果的这个过程中访问了搜索引擎的生产环境的服务器,服务器经过运算返回结果.往往生产环境的配置是最高的,配置像是 56c 256G N T ,这样的机器可能还会有很多台.如果用户多了,对于机器的压力就比较大,每个用户进行一次访问,服务器都是需要消耗一定的硬件资源来进行计算的,包括但不限于cpu,内存,硬盘,网络宽带…如果同一时刻的用户访问量非常大,消耗的总资源超过了机器能够提供的资源上限,这个时候,服务器可能就挂了(网页刷不出来,甚至就卡死了…)这种情况就是高并发,为了应对高并发的情况,可以添加更多的机器解决,因此生产环境上所涉及到的甚至几百台服务器所构成了分布式系统(集群)

mysql中支持的数据类型

mysql是关系型数据库,是按照 数据表的方式来组织数据的,数据表中的每一列都会有具体的类型,下面说明一些比较重要的数据类型

1. 数值类型: NUMERIC(M,D)

float 和 double 不能精确保存,因此比较两个浮点数,不能使用 == ,而是需要通过作差, 小于一个误差值的形式(IEEE 754 标准)

在MySQL中,DECIMALNUMERIC 可以看作是相同的数据类型。事实上,这两者是可互换的,它们都用来存储精确的数值,这些数值有固定的小数位。这很重要,尤其是在处理财务数据时,比如货币,其中精度非常关键。

DECIMALNUMERIC类型允许用户定义精确度和小数位。格式可以表示为DECIMAL(M, D)NUMERIC(M, D),其中M是数字的最大总位数(精度),D是小数点后的位数(标度)。如果没有定义D,默认是0

例如,DECIMAL(10, 2)可以存储最大为99999999.99的数字,其中有8位在小数点前,2位在小数点后。

DECIMAL不是按照 IEEE 754 的方式来表示的,而是类似于字符串的方式来表示的,需要付出更多的空间,运算的时候也会消耗更多的时间,但是保存的数据是精确的

2. 字符串类型: VARCHAR(SIZE)

size表示的是该字符串类型的数据能表示的最大长度


数据库的 表 操作(前提都是要选中数据库)

关系型数据库里边的存储结构先是一个数据库服务器,上面有很多数据库,每一个数据库都是逻辑上的数据集合,每一个数据库中都包含数据表

数据表 就是存储数据的基本单位

针对数据表的操作,一定是要先选中数据库 (use 数据库名;)

数据表有很多列,每一列都会有具体的类型

1. 创建表 create table 表名(列名 类型 列名 类型 …);

创建表的时候,必须要描述出表包含哪些列,每一列的类型,每一列的名字…后续往表里放的数据,也要遵守这里的规则,这是关系型数据库的基本要求

明确了列的类型,就可以更方便的对数据的值进行检查和校验

在这里插入图片描述

写sql的时候,可以分成多行

在这里插入图片描述

遇到 ; 才是一个完整的 sql, 在 ; 之前换行,就是换行操作
在这里插入图片描述

2. 查看有哪些表 show tables;

在这里插入图片描述

3. 查看表的结构 desc 表名;

desc => describe

就是查看一个表里面有哪些列,列的名字和类型啥的…

在这里插入图片描述

Field表示有哪些列,Null如果是YES表示这个格子没有填,是空的,Default是默认值,这里默认为NULL

4. 删除表 drop table 表名;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2799413.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

linux platform架构下I2C接口驱动开发

目录 概述 1 认识I2C协议 1.1 初识I2C 1.2 I2C物理层 1.3 I2C协议分析 1.3.1 Start、Stop、ACK 信号 1.3.2 I2C协议的操作流程 1.3.3 操作I2C注意的问题 2 linux platform驱动开发 2.1 更新设备树 2.1.1 添加驱动节点 2.1.2 编译.dts 2.1.3 更新板卡中的.dtb 2.2 …

良好的 API 安全策略的重要性

根据 Cloudflare 2024 年 API 安全与管理报告,到 2024 年,API 请求占全球动态互联网流量的 57%,这证实 API 是现代软件开发的重要组成部分。但随着多年来它们的采用不断增加,相关的安全挑战也随之增加。 在过去两年中&#xff0c…

“目标检测”任务基础认识

“目标检测”任务基础认识 1.目标检测初识 目标检测任务关注的是图片中特定目标物体的位置。 目标检测最终目的:检测在一个窗口中是否有物体。 eg:以猫脸检测举例,当给出一张图片时,我们需要框出猫脸的位置并给出猫脸的大小,如…

Meta 发布 MMCSG (多模态智能眼镜对话数据集)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

FFmpeg的HEVC解码器源代码学习笔记-1

一直想写一个HEVC的码流解析工具,看了雷神264码流解析工具,本来想尝试模仿写一个相似的265码流分析工具,但是发现265的解码过程和结构体和264的不太一样,很多结构体并没有完全暴露出来,没有想到很好的方法获得量化参数…

HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例

HAL STM32 HW I2C DMA SSD1306/SH1106驱动示例 📍硬件I2C DMA驱动参考:https://blog.csdn.net/weixin_45065888/article/details/118225993 🔖本工程基于STM32F103VCT6,驱动程序独立,可以移植到任意STM32型号上使用。…

VSCODE中使用Django处理后端data和data models

链接: Python and Django tutorial in Visual Studio Code MVC的理解 在实际的程序中采用MVC的方式进行任务拆分。 Model(模型)负责封装应用程序的数据和业务逻辑部分。Model包含数据结构,数据处理逻辑以及相关的操作方法&#…

如何在debian上实现一键恢复操作系统?

在Debian或任何其他Linux发行版上实现一键恢复操作系统,需要创建一个系统镜像或快照,并设置一个简单的方法来从该镜像恢复。以下是创建和恢复系统的基本步骤: 1. 创建系统镜像: 使用像dd,rsync或专门的备份工具&#…

Kubernetes 卷存储 NFS | nfs搭建配置 原理介绍 nfs作为存储卷使用

1、NFS介绍 NFS(Network File System)是一种分布式文件系统协议,允许客户端远程访问服务器上的文件,实现数据共享。它整合多个存储设备为统一文件系统,方便数据存储和管理,支持负载均衡和故障转移&#xf…

【专利】专利缴费清单与汇款金额不一致的处理方法

缴纳专利年费时,很容易算错滞纳金。比如有个专利年费滞纳金应交690,结果我算成了660,报给财务转账660。第二天补录缴费信息时,汇款金额660,然后缴费清单填写总是690无法修改,导致无法进行下一步&#xff01…

【AI大模型】ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

【MySQL】学习连接查询和案例演示

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-KOxr1rwR9cQTlydJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

win32 汇编读文件

做了2个小程序,没有读成功;文件打开了; .386.model flat, stdcalloption casemap :noneinclude windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib include Comdlg32.inc includelib …

探索海洋世界,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建海洋场景下海洋生物检测识别分析系统

前面的博文中,开发实践过海底相关生物检测识别的项目,对于海洋场景下的海洋生物检测则很少有所涉及,这里本文的主要目的就是想要开发构建基于YOLOv7不同系列参数模型的海洋场景下的海洋生物检测识别系统。 前文已有相关实践,感兴…

C#知识点-16(计算器插件开发、事件、递归、XML)

计算器插件开发 1、Calculator.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Calculator_DLL {//用来明确所有插件开发人员的开发规范public abstract class Calculator{public int N…

部署安装有道QanyThing

前提条件: 1、win10系统更新到最新的版本,系统版本最好为专业版本 winver 查看系统版本,内部版本要大于19045 2、CPU开启虚拟化 3、开启虚拟化功能,1、2、3每步完成后均需要重启电脑; 注:windows 虚拟…

(done) 如何判断一个矩阵是否可逆?

参考视频:https://www.bilibili.com/video/BV15H4y1y737/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 这个视频里还暗含了一些引理 1.若 AX XB 且 X 和 A,B 同阶可逆,那么 A 和 B 相似。原因&#xff1…

Redis 工具类 与 Redis 布隆过滤器

Redis 工具类 1. 核心依赖 <!--redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>com.google.guava…

如何修改docker容器的端口映射

要修改 Docker 容器的端口映射&#xff0c;你需要停止并删除现有的容器&#xff0c;然后使用新的端口映射重新运行容器。以下是详细步骤&#xff1a; 停止容器&#xff1a; 使用 docker stop 命令停止正在运行的容器。替换 <container_id> 为你要停止的容器的 ID 或者容器…

Python3零基础教程之Python解释器与开发环境搭建

大家好&#xff0c;我是千与编程&#xff0c;硕士毕业于北京大学&#xff0c;曾先后就职于字节跳动&#xff0c;京东等互联网大厂&#xff0c;目前在编程导航知识星球担任星球嘉宾&#xff0c;著有《AI算法毕设智囊袋》&#xff0c;《保姆级带你通关秋招教程》两大专栏。 今天开…