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

MySQL基本知识

目录

一,MySQL的元数据库

1.1.什么是元数据库

1.2.有哪些元数据库

1.3.切换数据库

二,账户管理

2.1.设置权限

2.2.授权用户

2.3.查看权限

2.4.撤销权限

三,MySQL引擎

3.1什么是数据库引擎

3.2.查看数据引擎

3.3.MyISAM引擎

3.4.memory

3.5.InnoDB

3.6.ARCHIVE

四,数据库命令

4.1.创建

4.2.查看

4.3.删除

五,建表与约束

5.1.建表

5.2.主键约束

5.3.非空约束

5.4.外键约束

5.5.唯一约束

5.6.默认值约束


一,MySQL的元数据库

1.1.什么是元数据库

记录MySQL自身数据的数据库

1.2.有哪些元数据库

information_schema:信息数据库,保存mysql所维护的其他数据库信息,例如:数据库名,数据库的表,表栏的数据类型与访问权限等

mysql:核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息

performance_schema:用于mysql的监控数据的存放

1.3.切换数据库
-- 示例 
use  mysql

二,账户管理

2.1.设置权限

命令格式

grant privileges on databasename.tablename to username@'host'-- privileges-- 指定select,update等权限,全部权限使用all-- databasename-- 指定数据库,所有数据库请使用*-- tablename-- 指定数据表,所有表请使用*-- username-- 需要赋权的用户名,@带的是Host,表示赋权操作针对那些链接,详情查看【host列说明】

使用示例

GRANT SELECT, UPDATE ON bookshop.`t_book` TO test@'%';-- 将bookshop数据库中的t_book表的select,update权限赋予test用户,并且不对ip地址限制
grant all on *.* to dba@'localhost'-- 一般用于赋予管理员最高权限,谨慎使用
grant create view on testdb.* to developer@'192.168.0.%'; -- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建视图的权限
grant show   view on testdb.* to developer@'192.168.0.%'-- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予查看视图的权限
grant index on testdb.* to developer@'192.168.0.%';-- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建索引的权限
grant create routine on testdb.* to developer@'192.168.0.%'-- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予操作存储过程与函数的权限
grant alter  routine on testdb.* to developer@'192.168.0.%';-- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建删除存储过程与函数的权限
2.2.授权用户

命令格式

grant privileges on databasename.tablename to username@'host' with grant option

示例

grant select on testdb.* to dba@localhost with grant option
2.3.查看权限
-- 查看当前用户(自己)权限
show grants
-- 查看其他 MySQL 用户权限
show grants for dba@localhost;
2.4.撤销权限
-- 收回test用户对于bookshop库中t_book表的update权限(ip不限)
REVOKE UPDATE ON bookshop.t_book FROM test@'%';

命令格式

revoke privileges on databasename.tablename from username@'host'

示例

-- 收回test用户对于bookshop库中t_book表的update权限(ip不限)
REVOKE UPDATE ON bookshop.t_book FROM test@'%';

三,MySQL引擎

3.1什么是数据库引擎

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据, 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能

3.2.查看数据引擎

命令

show engines
  • Support字段说明
  • DEFAULT的为默认的引擎
  • 为YES表示可以使用
  • 为NO表示不能使用
3.3.MyISAM引擎
  • MYISAM强调了快速读取操作
  • 使用场景: 大量查询,很少修改的场景
  • 存储限制:256TG
  • 事务支持:不支持事务
  • 3.4.memory
  • 所有的数据都保存在内存中,一旦服务器重启,所有Memory存储引擎的表数据会消失但是表结构会保存下来
  • 使用场景:由于易失性,可以用于存储在分析中产生的中间表
  • 存储限制:取决与RAM
  • 事务支持:不支持事务
3.5.InnoDB
  • 后者修改快,支持事务
  • 使用场景:一般事务性,均使用该引擎,用途最广,如果把握不准使用何种引擎,就使用该引擎
  • 存储限制:64TG
  • 事务支持:支持事务
3.6.ARCHIVE
  • 只允许插入和查询,不允许修改和删除,压缩存储,节约空间,可以实现高并发的插入,支持在自增id上建立索引
  • 使用场景:在日志和数据采集的时候可以使用
  • 特点
  • Archive表比MyISAM表要小大约75%,比支持事务处理的InnoDB表小大约83%
  • 不支持索引(自增id列除外)
  • 支持insert,select操作,但不支持delete,update操作

四,数据库命令

4.1.创建

命令格式

create database 数据库名
create database if not exists 数据库名 default charset utf8 collate utf8_general_ci;-- 默认的数据库编码集:utf8-- collate表示校验规则为utf8_general_ci-- 常用排序类型-- utf8_general_cs(区分大小写)-- utf8_genera_ci(不区分大小写)
4.2.查看
show databases
4.3.删除
drop database 数据库名
-- 危险操作,先备份

五,建表与约束

5.1.建表

命令格式

CREATE TABLE 表名称(列名称1 数据类型 NOT NULL,列名称2 数据类型,列名称3 数据类型,unique(列名称1[,列名称2,...,列名称N]))

示例

create table t_student
(sid                  int not null comment '学号',sname                varchar(60) not null comment '姓名',sex                  tinyint not null default 1 comment '性别:1男, 2女',age                  tinyint not null comment ' 年龄',icard                varchar(18) not null comment '身份证,唯一约束',primary key (sid),unique key AK_Key_2 (icard)
) comment '学生信息表';
5.2.主键约束
-- PRIMARY KEY
-- 增加主键ALTER TABLE 表名 ADD PRIMARY KEY(主键名称)
-- 删除主键ALTER TABLE 表名 DROP PRIMARY KEY
5.3.非空约束
 sid                  INT NOT NULL COMMENT '学号',
5.4.外键约束
DROP TABLE IF EXISTS t_score;
CREATE TABLE t_score
(id                   INT NOT NULL COMMENT '记录流水号',sid                  INT NOT NULL COMMENT '学号',cid                  INT NOT NULL COMMENT '课程ID',score                FLOAT COMMENT '成绩',PRIMARY KEY (id),FOREIGN KEY (sid) REFERENCES t_student (sid) ON DELETE RESTRICT ON UPDATE RESTRICT,UNIQUE KEY AK_Key_2 (sid, cid)
);
说明: sid为本表的外键,关联t_student表中的的sid主键,ON DELETE RESTRICT ON UPDATE RESTRICT说明在本表有数据的情况下,主表的关联键不能删除或更新。

增加外键

-- 增加外键
ALTER TABLE 表名 ADD FOREIGN KEY(外键名称) REFERENCES 主表名称(主键名称)

删除外键

-- 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 约束名
5.5.唯一约束
-- UNIQUE KEY 约束名 (字段)
-- 创建唯一约束ALTER TABLE 表名 ADD UNIQUE(列名称1[,列名称2,..])create unique index UserNameIndex on 't_user' ('username')
-- 删除唯一约束ALTER TABLE 表名 DROP INDEX 唯一约束缩影名称
5.6.默认值约束
default 

相关文章:

MySQL基本知识

目录 一,MySQL的元数据库 1.1.什么是元数据库 1.2.有哪些元数据库 1.3.切换数据库 二,账户管理 2.1.设置权限 2.2.授权用户 2.3.查看权限 2.4.撤销权限 三,MySQL引擎 3.1什么是数据库引擎 3.2.查看数据引擎 3.3.MyISAM引擎 3.4…...

Vue3 (unplugin-auto-import自动导入的使用)

安装 参考链接 npm i -D unplugin-auto-importvite.config.ts里面配置 import AutoImport from unplugin-auto-import/viteAutoImport({imports:[ vue,vue-router]})重新运行项目会生成一个auto-imports.d.ts的文件 /* eslint-disable */ /* prettier-ignore */ // ts-nochec…...

【漏洞复现】大华智慧园区综合管理平台信息泄露漏洞

Nx01 产品简介 大华智慧园区综合管理平台是一款综合管理平台,具备园区运营、资源调配和智能服务等功能。该平台旨在协助优化园区资源分配,满足多元化的管理需求,同时通过提供智能服务,增强使用体验。 Nx02 漏洞描述 大华智慧园区…...

JavaScript的书写方式

JavaScript的书写方式 目前较为流行的是第二种和第三种,第一种很少见。在第二种和第三种推荐使用第三种,因为在日常开发/工作中,第三种是最为常见的 1.行内式 把JS代码嵌入到html元素内部 示例代码 运行效果 由于JS中字符串常量可以使用单引…...

第二十篇-推荐-纯CPU(E5-2680)推理-llama.cpp-qwen1_5-72b-chat-q4_k_m.gguf

环境 系统:CentOS-7 CPU: Intel Xeon CPU E5-2680 v4 2.40GHz 14C28T 内存: 48G DDR3 依赖安装 make --version GNU Make 4.3gcc --version gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)g --version g (GCC) 11.2.1 20220127 (Red Hat …...

CSS常见选择器

CSS常见选择器 在Web开发中,层叠样式表(CSS)是用于描述HTML或XML(包括SVG和XHTML等其他XML语言)文档的样式的语言。CSS描述了文档的表现形式,包括布局、颜色和字体等。在CSS中,选择器是一种模式…...

[LWC] Components Communication

目录 Overview ​Summary Sample Code 1. Parent -> Child - Public Setter / Property / Function a. Public Property b. Public getters and setters c. Public Methods 2. Child -> Parent - Custom Event 3. Unrelated Components - LMS (Lightning Message…...

Unity中URP实现水体(水下的扭曲)

文章目录 前言一、使用一张法线纹理,作为水下扭曲的纹理1、在属性面板定义一个纹理,用于传入法线贴图2、在Pass中,定义对应的纹理和采样器3、在常量缓冲区,申明修改 Tilling 和 Offset 的ST4、在顶点着色器,计算得到 应…...

anaconda指定目录创建环境无效/环境无法创建到指定位置

已经设置目录到D盘 创建环境时还是分配到C盘 可能是指定位置没有开启读写权限,如我在这里安装到了anaconda文件夹,则打开该文件夹的属性->安全->编辑 allusers下的权限全都打勾...

《Docker极简教程》--Docker在生产环境的应用--Docker在生产环境的部署

一、准备工作 1.1 硬件和基础设施要求 硬件和基础设施要求是在部署 Docker 到生产环境之前需要认真考虑和准备的重要方面,以下是一般性的要求: 服务器硬件: CPU:建议使用多核处理器,以支持同时运行多个容器。内存&a…...

算法D31 | 贪心算法1 | 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其规律, 没有思路就立刻看题解。 基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。 学完贪心之后再…...

在IDEA中创建vue hello-world项目

工作中最近在接触vue前端项目,记录一下从0搭建一个vue hello world项目的步骤 1、本地电脑安装配置node、npm D:\Project\vue\hello-world>node -v v14.21.3 D:\Project\vue\hello-world>npm -v 6.14.18 D:\Project\vue\hello-world> 2、设置npm国内淘…...

如何获取pnpm存储目录

现在你可以做 得到:\path\to.pnpm-store\v3 pnpm store path注:从v7.0.0开始,pnpm 存储位于不同的文件夹中。它将位于$XDG_DATA_HOMELinux Linux : ~/.local/share/pnpm/store (default) Windows : C:\Users\YOUR_NAME\AppData\Local\pn…...

QT两个类之间使用信号槽

在做一些东西的时候&#xff0c;习惯性的引入头文件并且调用&#xff0c;因此出现了很多bug,qt的信号槽机制便可以有效的避免一些问题。 A类 #ifndef A_H #define A_H#include <QObject> #include <QDebug> class A : public QObject {Q_OBJECT public:explicit A…...

【Ubuntu】使用WSL安装Ubuntu

WSL 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能&#xff0c;可用于在 Windows 计算机上运行 Linux 环境&#xff0c;而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。安装 Linux 发行版时&#xff0c…...

【Node.js】自动生成 API 文档

目录 1、直接使用swagger-ui-express 2、配合swagger-jsdoc 如何在Node.js项目中使用 Swagger 来自动生成 API接口文档&#xff0c;使用生成方式有很多种。本文基于swagger-jsdocswagger-ui-express快速实现 1、直接使用swagger-ui-express // 方便来浏览和测试api npm i sw…...

小红书3C家电行业种草营销策略打法,纯干货

小红书作为国内种草营销的鼻祖&#xff0c;拥有庞大的年轻用户群体&#xff0c;特别是在3C家电行业&#xff0c;小红书的种草营销效应更是明显。据相关数据显示&#xff0c;小红书3C家电行业的用户关注度持续攀升&#xff0c;尤其是90后和00后&#xff0c;他们对新鲜事物的接受…...

防火墙的内容安全

目录 1. 内容安全 1.1 IAE引擎 DPI---深度包检测技术 DFI---深度流检测技术 结论(优缺点)&#xff1a; 1.2 入侵防御&#xff08;检测&#xff09;(IPS) IPS的优势: 入侵检测的方法: 入侵检测的流程 签名 查看预定义签名的内容 新建自定义签名 入侵防御的检测…...

Redis 管道详解

Redis 管道 关键词&#xff1a;Pipeline Pipeline 简介 Redis 是一种基于 C/S 模型以及请求/响应协议的 TCP 服务。通常情况下&#xff0c;一个 Redis 命令的请求、响应遵循以下步骤&#xff1a; 客户端向服务端发送一个查询请求&#xff0c;并监听 Socket 返回&#xff08…...

【Redis】理论进阶篇------浅谈Redis的缓存穿透和雪崩原理

一、缓存穿透 1、概念 缓存穿透&#xff08;查不到数据&#xff09;&#xff0c;是指当用户想要查询数据的时候&#xff0c;会先去Redis中取命中&#xff0c;如果Redis中没有该数据&#xff0c;那么就会向数据库中去查找数据。如果数据库中也没有&#xff0c;则该次查询结果失…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...