数据库的基本操作
查看数据库
语法格式:
SHOW {DATABASES | SCHEMAS}[LIKE 'pattern' | WHERE expr]#查看全部数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)show databases [like '库名'| where 表达式];例:查看有my的数据库
show databases like 'my%'创建数据库
MySQL安装好之后,⾸先需要创建数据库,这是使⽤MySQL各种功能的前提。本章将详细介绍数据的基本操作,主要内容包括:创建数据库、删除数据库、不同类型的数据存储引擎和存储引擎的选择。
MySQL安装完成之后,将会在其data⽬录下⾃动创建⼏个必需的数据库,可以使⽤SHOW DATABASES; 语句来查看当前所有存在的数据库,如下。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)可以看到,数据库列表中包含了4个数据库,mysql是必需的,它描述⽤户访问权限,⽤户经常利⽤test数据库做测试的⼯作,其他数据库将在后⾯的章节中介绍。
创建数据库是在系统磁盘上划分⼀块区域⽤于数据的存储和管理,如果管理员在设置权限的时候为⽤户创建了数据库,则可以直接使⽤,否则,需要⾃⼰创建数据库。MySQL中创建数据库的基本SQL语句格式为:
CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];<数据库名>:创建数据库的名称。MySQL 的数据存储区将以⽬录⽅式表示 MySQL数据库,因此数据库名称必须符合操作系统的⽂件夹命名规则,注意在 MySQL 中不区分⼤⼩写。
IF NOT EXISTS:在创建数据库之前进⾏判断,只有该数据库⽬前尚不存在时才能执⾏操作。此选项可以⽤来避免数据库已经存在⽽重复创建的错误。
[DEFAULT] CHARACTER SET:指定数据库的默认字符集。
mysql> create database test_db;
Query OK, 1 row affected (0.00 sec)
mysql> show create database test_db;
+----------+--------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------+
| test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)删除数据库
删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将⼀起被删除。删除数据库语句和创建数据库的命令相似,MySQL中删除数据库的基本语法格式如下。
DROP {DATABASE | SCHEMA} [IF EXISTS] 库名
注:IF EXISTS表示如果存在,则删除库。
如果指定的数据库不存在,则删除出错。
mysql> drop database test_db;
Query OK, 0 rows affected (0.02 sec)字符集/字符校验
#查看字符校验
show collation;#查看字符集
show character set;#查看字符集
SHOW CHARACTER SET [LIKE 'pattern' | WHERE expr]show character set [like '字符集名' | where 表达式];#查看字符校验
SHOW COLLATION [LIKE 'pattern' | WHERE expr] show collation [like '字符校验名' | where 表达式]; 修改数据库
ALTER {DATABASE | SCHEMA} [db_name]alter_option ...alter_option: {[DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
}#修改库字符集
alter database 库名 default character set = 字符集名;#修改字符校验
alter database test collate 字符校验名;帮助命令
#帮助
help#帮助分类
help contents#查看定义语言
help data definition#查看操作语言
help data manipulation#查看创建库格式
help create database数据库存储引擎
数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使⽤数据引擎进⾏创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定⽔平等功能,使⽤不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都⽀持多种不同的数据引擎。MySQL的核⼼就是存储引擎。
2.3.1 MySQL存储引擎简介MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理⾮事务安全表的引擎。在MySQL中,不需要在整个服务器中使⽤⼀种引擎,针对具体要求可以对每⼀个表使⽤不同的存储引擎。MySQL5.5⽀持的存储引擎有:InnoDB、MyISAM、Memory等。
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.01 sec)查看默认存储引擎
mysql> show variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.06 sec)存储引擎简介
存储引擎说⽩了就是数据存储的格式,不同的存储引擎功能不同,占⽤的空间⼤⼩不同,读取性能也不同。
数据库存储引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制。
在 MySQL 中,不需要在整个服务器中使⽤同⼀种存储引擎,可以对每⼀个表使⽤不同的存储引擎。
MySQL ⽀持多种存储引擎,如 InnoDB 、MyISAM 、Memory 、Merge 、Archive 、CSV 、Federated 等等。
MyISAM 存储引擎特点
MySQL 5.5 之前使⽤ MyISAM 引擎,MySQL 5.5 之后使⽤ InnoDB 引擎。
MyISAM 引擎读取速度较快,占⽤资源相对较少,不⽀持事务,不⽀持外键约束,但⽀持全⽂索引。
读写互相阻塞,也就是说读数据的时候你就不能写数据,写数据的时候你就不能读数据。
MyISAM 引擎只能缓存索引,⽽不能缓存数据。
MyISAM 适⽤场景
不需要事务⽀持的业务,例如转账就不⾏。
适⽤于读数据⽐较多的业务,不适⽤于读写频繁的业务。
并发相对较低、数据修改相对较少的业务。
硬件资源⽐较差的机器可以考虑使⽤ MyISAM 引擎。
InnoDB 存储引擎特点
事务型数据库的⾸选引擎,⽀持事务安全表,⽀持⾏锁定和外键,MySQL5.5.5 版本之后,InnoDB 作为默认存储引擎。
具有提交、回滚和崩溃恢复能⼒的事务安全存储引擎,能处理巨⼤数据量,性能及效率⾼,完全⽀持外键完整性约束。
具有⾮常⾼效的缓存特性,能缓存索引也能缓存数据,对硬件要求⽐较⾼。
使⽤ InnoDB 时,将在 MySQL 数据⽬录下创建⼀个名为 ibdata1 的 10MB ⼤⼩的⾃动扩展数据⽂件,以及两个名为 ib_logfile0 和 ib_logfile1 的 5MB ⼤⼩的⽇志⽂件。
InnoDB 适⽤场景
需要事务⽀持的业务、⾼并发的业务。
数据更新较为频繁的场景,⽐如 BBS、SNS、微博等。
数据⼀致性要求较⾼的业务,⽐如充值转账、银⾏卡转账。
Memory 存储引擎特点
Memory 存储引擎将表中的数据存储到内存中,为查询和引⽤其他表数据提供快速访问。
Memory 存储引擎执⾏ HASH 和 BTREE 索引,不⽀持 BLOB 和 TEXT 列,⽀持 AUTO_INCREMENT 列和对可包含 NULL 值得列的索引。
当不再需要 Memory 表的内容时,要释放被 Memory 表使⽤的内存,应该执⾏DELETE FROM 或 TRUNCATE TABLE ,或者删除整个表。
存储引擎的选择
如果要提供提交、回滚和崩溃恢复能⼒的事务安全能⼒,并要求实现并发控制,InnoDB 是个很好的选择。
如果数据表主要⽤来插⼊和查询记录,则 MyISAM 引擎能提供较⾼的处理效率。
如果只是临时存放数据,数据量不⼤,并且不需要较⾼的安全性,可以选择将数据保存在内存中的 Memory 引擎,MySQL 使⽤该引擎作为临时表,存放查询的中间结果。
如果只有 INSERT 和 SELECT 操作,可以选择 Archive 引擎,⽀持⾼并发的插⼊操作,如记录⽇志信息可以使⽤ Archive 引擎。
功能 | MyISAM | Memory | InnoDB |
存储限制 | 256TB | RAM | 64TB |
⽀持事务 | no | no | yes |
支持全文索引 | yes | no | no |
支持数索引 | yes | yes | yes |
支持哈希缓存 | no | yes | no |
支持数据缓存 | no | N/A | yes |
支持外键 | no | no | yes |
总结
在mysql中,每个数据库最多可创建20亿个表,⼀个表允许定义1024列,每⾏的最⼤⻓度为8092字节(不包括⽂本和图像类型的⻓度)。
当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插⼊的数据⾏超过8092字节时将导致语句失败,并产⽣错误信息。SQL Server对每个表中⾏的数量没有直接限制,但它受数据库存储空间的限制。
每个数据库的最⼤空间1048516TB,所以⼀个表可⽤的最⼤空间为1048516TB减去数据库类系统表和其它数据库对象所占⽤的空间。理论上⽆限⼤ 就看你硬⽚够不够⼤ ⼤多数情况先是你的硬⽚不够。
相关文章:
数据库的基本操作
查看数据库语法格式:SHOW {DATABASES | SCHEMAS}[LIKE pattern | WHERE expr]#查看全部数据库mysql> show databases; -------------------- | Database | -------------------- | information_schema | | mysql | | performance_schema …...
分享5个超好用的Vue.js库
开发人员最好的朋友和救星就是这些第三方库,无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包。借助开源库加速Vue项目的开发进度是现代前端开发比较常见的方式,这几个 Vue.js库,建议尽早用上,加速你的项目开发…...
第四章.误差反向传播法—ReLU/Sigmoid/Affine/Softmax-with-Loss层的实现
第四章.误差反向传播法 4.2 ReLU/Sigmoid/Affine/Softmax-with-Loss层的实现 1.ReLU层 1).公式 2).导数: 3).计算图: 4).实现: class ReLU:def __init__(self):self.mask None# 正向传播def forward(self, x):self.mask (x < 0) # 输入…...
Python-第二天 Python基础语法
Python-第二天 Python基础语法一、 字面量1.1 常用的值类型1.1.1 字符串(string)二、注释2.1 注释的作用2.2 注释的分类三、变量3.1 什么是变量3.2 变量的特征四、数据类型4.1 数据类型4.2 type()语句4.3 type()语句的使用方式4.4 变量有类型吗ÿ…...
命令模式包含哪些主要角色?怎样实现命令?
命令模式包含以下主要角色:抽象命令类(Command)角色: 定义命令的接口,声明执行的方法。具体命令(Concrete Command)角色:具体的命令,实现命令接口;通常会持有…...
SpringCloud-Feign
Spring Cloud中集成Feign (只是笔记而已 其中有点命名啥的不对应,搜到了就划走吧) Feign--[feɪn]:Web 服务客户端,能够简化 HTTP 接口的调用。 没有Feign的之前服务提供者 package com.springcloudprovide.controller;import com.springclo…...
XCP实战系列介绍08-基于Vehicle Spy进行XCP测量的工程配置详解
本文框架 1.概述2. 工程配置步骤2.1 创建MEP工程2.1.1 添加A2L文件2.1.2 CAN收发ID配置2.2 MEP属性设置2.2.1 ECU属性设置2.2.2 MEP的Security设置2.3 DAQ设置2.3.1创建DAQ2.3.2 list中测量及标定量的添加和设置2.3.3 设置DAQ list中变量的event1.概述 在前面一篇文章《看了就…...
JVM调优几款好用的内存分析工具
对于高并发访问量的电商、物联网、金融、社交等系统来说,JVM内存优化是非常有必要的,可以提高系统的吞吐量和性能。通常调优的首选方式是减少FGC次数或者FGC时间,以避免系统过多地暂停。FGC达到理想值后,比如一天或者两天触发一次…...
Vue中路由缓存及activated与deactivated的详解
目录前言一,路由缓存1.1 引子1.2 路由缓存的方法1.2.1 keep-alive1.2.2 keep-alive标签中的include属性1.2.3 include中多组件的配置二,activated与deactivated2.1 引子2.2 介绍activated与deactivated2.3 解决需求三,整体代码总结前言 在Vu…...
【漏洞复现】phpStudy 小皮 Windows面板 RCE漏洞
文章目录前言一、漏洞描述二、漏洞复现前言 本篇文章仅用于漏洞复现研究和学习,切勿从事非法攻击行为,切记! 一、漏洞描述 Phpstudy小皮面板存在RCE漏洞,通过分析和复现方式发现其实本质上是一个存储型XSS漏洞导致的RCE。通过系…...
跨域小样本系列2:常用数据集与任务设定详解
来源:投稿 作者:橡皮 编辑:学姐 带你学习跨域小样本系列1-简介篇 跨域小样本系列2-常用数据集与任务设定详解(本篇) 跨域小样本系列3:元学习方法解决CDFSL以及两篇SOTA论文讲解 跨域小样本系列4…...
HTML浪漫动态表白代码+音乐(附源码)
HTML浪漫表白求爱(附源码),内含4款浪漫的表白源码,可用于520,情人节,生日,求爱场景,下载直接使用。 直接上源码吧 一.红色爱心 1.效果 实际效果是动态的哦 2.源码 复制粘贴即可运行哦 <!DOCTYPE…...
The last packet sent successfully to the server was 0 milliseconds ago. 解决办法
mybatis-generator-maven-plugin插件The last packet sent successfully to the server was 0 milliseconds agoYou must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to…...
分布式高级篇1 —— 全文检索
Elasticsearch Elasticsearch简介一、基本概念1、index(索引)2、Type(类型)3、Document(文档)4、倒排索引二、Docker 安装 EL1、拉取镜像2、创建实例三、初步探索1、_cat2、索引一个文档(保存)3、查询文档3、更新文档4、删除文档&索引5、_bulk 批量 AP6、样本测试数据四、进…...
集成电路开发及应用-模拟数字部分专栏目录
三角波发生器电路图分析_XMJYBY的博客-CSDN博客运算放大器正反馈负反馈判别法_如何理解运算放大器的反馈机制,分哪几种_XMJYBY的博客-CSDN博客运算放大器实现多路同向反向加减运算电路公式推导(一)_反向减法运算电路_XMJYBY的博客-CSDN博客运算放大器实现多路同向反向加减运算电…...
ios使用SARUnArchiveANY 解压rar文件(oc和swift版本)
SARUnArchiveANY简介 开源库网址: https://github.com/saru2020/SARUnArchiveANY 简介: 一个iOS的非常有用的库来解压zip,.rar,7z文件。 他是以下库的简单集成: UnrarKitSSZipArchiveLzmaSDKObjC (7z) 需要注意的是…...
【Python学习笔记】21.Python3 函数(2)
前言 本章介绍调用函数时可使用的正式参数。 参数 以下是调用函数时可使用的正式参数类型: 必需参数关键字参数默认参数不定长参数 必需参数 必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。 调用 printme() 函数,你必须传入一…...
day57回文子串_最长回文子序列
力扣647.回文子串 题目链接:https://leetcode.cn/problems/palindromic-substrings/ 思路 dp数组含义 dp[i][j]:以s[i]为开头,s[j]为结尾的子串是否是回文子串 递推公式 子串范围为[i,j],当s[i]s[j]时,有三种情况࿱…...
Element UI框架学习篇(二)
Element UI框架学习篇(二) 1 整体布局 1.1 前提说明 el-container标签里面的标签默认是从左往右排列,若想要从上往下排列,只需要写el-header或者el-footer就行了 <el-container>:外层容器 <el-header>:顶栏容器。 <el-aside>&#…...
【C++】类与对象(上)
文章目录一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装①访问限定符②封装五、类的作用域六、类的实例化七、类对象模型①如何计算类对象大小②类对象的存储方式③结构体中内存对齐规则八、this指针①this指针的引出②this指针的特性一、面…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
