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://www.mzph.cn/news/694766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现Slider 滑块组件标记动态变化

实现以上效果&#xff0c;下拉框、slider滑块、按钮都在同一行&#xff0c;设置flex布局后&#xff0c;发现silider滑块最右边的标记数字一直都如下竖着显示&#xff0c;后来通过给源组件的标记区.el-slider__marks-text增加一个宽度后解决该问题。 <template><div>…

Linux实验记录:使用LNMP架构部署动态网站环境

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; LNMP动态网站部署架构是一套由&…

探索亚信安慧AntDB的数据库管理之道

AntDB数据库管理系统以其卓越的性能和稳定性成为众多用户的选择之一。这款系统采用了影响力大、社区繁荣、开放度高、生态增长迅速的PG内核&#xff0c;为用户提供了稳定可靠的数据库解决方案。 数据库的稳定性对于用户来说至关重要&#xff0c;特别是在面对大规模数据处理和高…

Go语言进阶篇——泛型

前言 在开始今天有关泛型的介绍之前,我们先来看一个简单的例子&#xff0c;如果我们要设计两个int类型变量相加的函数&#xff0c;我们可以这样设计&#xff1a; func Sum (a, b int) int {return a b }如果变量要求是float类型或者是其他类型&#xff0c;我们要面对一个问题…

高防服务器是怎样进行防御的?

随着互联网的发展&#xff0c;网络攻击和恶意流量也日益增多&#xff0c;高防服务器作为企业网络安全的重要保障&#xff0c;越来越受到关注。那么&#xff0c;高防服务器是怎样进行防御的呢&#xff1f; 高防服务器主要是指具备防御DDoS攻击、CC攻击、7x24小时实时防御网站入…

【Flink集群RPC通讯机制(二)】创建AkkaRpcService、启动RPC服务、实现相互通信

文章目录 零. RpcService服务概述1. AkkaRpcService的创建和初始化2.通过AkkaRpcService初始化RpcServer3. ResourceManager中RPC服务的启动4. 实现相互通讯能力 零. RpcService服务概述 RpcService负责创建和启动Flink集群环境中RpcEndpoint组件的RpcServer&#xff0c;且Rpc…

32单片机基础:OLED调试工具的使用

下面会介绍OLED显示屏的驱动函数模块&#xff0c;先学会如何使用&#xff0c;至于OLED屏幕的原理和代码编写&#xff0c; 我们之后会再写一篇。 现在我们就是用OLED当一个调试的显示屏&#xff0c;方便我们调试程序。 为什么要调试呢&#xff0c;是为了方便我们看现象&#…

嵌入式学习之Linux入门篇——使用VMware创建Unbuntu虚拟机

目录 主机硬件要求 VMware 安装 安装Unbuntu 18.04.6 LTS 新建虚拟机 进入Unbuntu安装环节 主机硬件要求 内存最少16G 硬盘最好分出一个单独的盘&#xff0c;而且最少预留200G&#xff0c;可以使用移动固态操作系统win7/10/11 VMware 安装 版本&#xff1a;VMware Works…

CQT新里程碑:SOC 2 数据安全认证通过,加强其人工智能支持

Covalent Network&#xff08;CQT&#xff09;发展新里程碑&#xff1a;SOC 2 数据安全认证通过&#xff0c;进一步加强了其人工智能支持 Covalent Network&#xff08;CQT&#xff09;现已完成并通过了严格的 Service Organization Control&#xff08;SOC) 2 Type II 的合规性…

vivo 基于 StarRocks 构建实时大数据分析平台,为业务搭建数据桥梁

在大数据时代&#xff0c;数据分析和处理能力对于企业的决策和发展至关重要。 vivo 作为一家全球移动互联网智能终端公司&#xff0c;需要基于移动终端的制造、物流、销售等各个方面的数据进行分析以满足业务决策。 而随着公司数字化服务的演进&#xff0c;业务诉求和技术架构有…

ELK Stack 日志平台搭建

前言 最近在折腾 ELK 日志平台&#xff0c;它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。 专门实操了一波&#xff0c;这玩意看起来简单&#xff0c;但是里面的流程步骤还是很多的&#xff0c;而且遇到了很多坑。在此记录和总结下。 本文亮点&#xff1a;…

如何添加或编辑自定义WordPress侧边栏

WordPress侧边栏是许多WordPress网站上的固定装置。它为您的内容提供了一个垂直空间&#xff0c;您可以在其中帮助读者导航、增加电子邮件列表或社交关注、展示广告等。 因为它是许多WordPress网站不可或缺的一部分&#xff0c;所以我们认为侧边栏值得拥有自己的大型指南。在这…

【AIGC】开源声音克隆GPT-SoVITS

GPT-SoVITS 是由 RVC 创始人 RVC-Boss 与 AI 声音转换技术专家 Rcell 共同开发的一款跨语言 TTS 克隆项目&#xff0c;被誉为“最强大中文声音克隆项目” 相比以往的声音克隆项目&#xff0c;GPT-SoVITS 对硬件配置的要求相对较低&#xff0c;一般只需 6GB 显存以上的 GPU 即可…

物体检测-系列教程8:YOLOV5 项目配置

1、项目配置 yolo的v1、v2、v3、v4这4个都有一篇对应的论文&#xff0c;而v5在算法上没有太大的改变&#xff0c;主要是对v4做了一个更好的工程化实现 1.1 环境配置 深度学习环境安装请参考&#xff1a;PyTorch 深度学习 开发环境搭建 全教程 要求torch版本>1.6&#xf…

【Java EE初阶二十一】http的简单理解(二)

2. 深入学习http 2.5 关于referer Referer 描述了当前页面是从哪个页面跳转来的&#xff0c;如果是直接在地址栏输入 url(或者点击收藏夹中的按钮) 都是没有 Referer。如下图所示&#xff1a; HTTP 最大的问题在于"明文传输”,明文传输就容易被第三方获取并篡改. …

#gStore-weekly | gStore最新版1.2之新增内置高级函数详解(一)

gStore1.2版本新增了七个高级函数&#xff0c;我们第2期将继续介绍的高级函数为&#xff1a;整体/局部集聚系数&#xff08;clusterCoeff&#xff09;、鲁汶算法&#xff08;louvain&#xff09;、K跳计数&#xff08;kHopCount&#xff09;/K跳邻居&#xff08;kHopNeighbor&a…

React之拖动组件的设计(一)

春节终结束了&#xff0c;忙得我头疼。终于有时间弄自己的东西了。今天来写一个关于拖动的实例讲解。先看效果&#xff1a; 这是一个简单的组件设计&#xff0c;如果用原生的js设计就很简单&#xff0c;但在React中有些事件必须要多考虑一些。这是一个系列的文章&#xff0c;…

Linux CAfile 文件下的/ca-bundle.crt怎么生成的

在配置Linux Nginx SSL证书后&#xff0c;通过服务器访问域名时发现&#xff0c;服务器返回的CA证书是&#xff1a;/etc/pki/tls/certs/ca-bundle.crt 正式我在使用Spring Native安装了Docker自动生成的&#xff0c;而且开启了Docker的自启动&#xff0c;如果你和我一样&#x…

10MARL深度强化学习 Value Decomposition in Common-Reward Games

文章目录 前言1、价值分解的研究现状2、Individual-Global-Max Property3、Linear and Monotonic Value Decomposition3.1线性值分解3.2 单调值分解 前言 中心化价值函数能够缓解一些多智能体强化学习当中的问题&#xff0c;如非平稳性、局部可观测、信用分配与均衡选择等问题…

从零开始学习Netty - 学习笔记 - NIO基础 - 文件编程:FileChannel,Path,Files

3.文件编程 3.1.FileChannel FileChannel只能工作在非阻塞模式下面&#xff0c;不能和selector一起使用 获取 不能直接打开FIleChannel&#xff0c;必须通过FileInputSream&#xff0c;或者FileOutputSetream &#xff0c;或者RandomAccessFile来获取FileChannel 通过FileIn…