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 

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

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

相关文章

科技云报道:黑马Groq单挑英伟达,AI芯片要变天?

科技云报道原创。 近一周来,大模型领域重磅产品接连推出:OpenAI发布“文字生视频”大模型Sora;Meta发布视频预测大模型 V-JEPA;谷歌发布大模型 Gemini 1.5 Pro,更毫无预兆地发布了开源模型Gemma… 难怪网友们感叹&am…

【Excel PDF 系列】POI + iText 库实现 Excel 转换 PDF

你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,欢迎指教: 企鹅:869192208 文章目录 前言转换前后效果引入 pom 配置代码实现 前言 最近遇到生成 Excel 并转 pdf 的需求,磕磕碰碰总…

stm32——hal库学习笔记(DMA实验)

一、DMA介绍(了解) 二、DMA结构框图介绍(熟悉) 三、DMA相关寄存器介绍(熟悉) 四、DMA相关HAL库驱动介绍(掌握) 五、DMA配置步骤(掌握) 六、编程实战&#xff…

Anaconda和TensorFlow环境搭建!!

Anaconda下载 进入官网下载 https://www.anaconda.com/download 也可以通过清华的映像站下载: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 我这里下载的是3.4.20版本。下载好就可以安装默认安装就行。 打开Anaconda Prompt修改成国内镜像 conda c…

大概了解一下G1收集器

在上一篇文章中(链接:大概了解一下CMS收集器)我们提到,CMS是一种主要针对旧生代对象进行回收的收集器。与CMS不同,G1号称“全功能的垃圾收集器”,对初生代内存和旧生代内存均进行管理。鉴于此,这…

ubuntu虚拟机与windows之间实现复制粘贴功能

1.首先卸载ubuntu中已有的vm-tools工具 sudo apt-get autoremove open-vm-tools 2.安装open-vm-tools sudo apt-get install open-vm-tools #安装open-vm-tools sudo apt-get install open-vm-tools-desktop 3.重启ubuntu虚拟机

pyspark分布式部署随机森林算法

前言 分布式算法的文章我早就想写了,但是一直比较忙,没有写,最近一个项目又用到了,就记录一下运用Spark部署机器学习分类算法-随机森林的记录过程,写了一个demo。 基于pyspark的随机森林算法预测客户 本次实验采用的…

成功解决ModuleNotFoundError: No module named ‘cv2’

🔥 成功解决ModuleNotFoundError: No module named ‘cv2’ 🔥 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 …

中间件-Nginx漏洞整改(限制IP访问隐藏nginx版本信息)

中间件-Nginx漏洞整改(限制IP访问&隐藏nginx版本信息) 一、限制IP访问1.1 配置Nginx的ACL1.2 重载Nginx配置1.3 验证结果 二、隐藏nginx版本信息2.1 打开Nginx配置文件2.2 隐藏Nginx版本信息2.3 保存并重新加载Nginx配置2.4 验证结果2.5 验证隐藏版本…

ubuntu20.04安装和使用 Maldet (Linux Malware Detect)

1、下载 Maldet sudo wget http://www.rfxn.com/downloads/maldetect-current.tar.gz 2、解压Maldet sudo tar -xvf maldetect-current.tar.gz 3、进入到Maldet目录,然后运行安装脚本 sudo ./install.sh 4、安装ClamAV sudo apt-get update sudo apt-get in…

Jenkins 中针对视图分组(11)

一、将没有在视图的项目进行归纳操作; 新增的项目规则,并入到某就一个视图中,但常规是设置一个规则,后续按照规则走,就不用单独设置 1、首先到控制台页面,如果没有视图分组就点击加号新增;已存在…

JavaScript异步编程

回调地狱 回调地狱是一种由于过度使用嵌套回调函数而导致的代码结构不清晰、难以理解和维护的问题。一个典型例子是嵌套多个回调函数,每个回调函数都作为另一个回调函数的参数。这样会导致各个部分之间高度耦合、程序结构混乱、流程难以追踪,每个任务只能…

PowerShell入门:掌握基本的输入输出命令

PowerShell入门:掌握基本的输入输出命令 本文将深入探讨PowerShell中的基本输入输出命令,以及如何使用这些命令来简化日常任务。 PowerShell的基本概念 在深入了解输入输出命令之前,让我们先快速了解一下PowerShell的一些基本概念。PowerS…

详解顺序结构滑动窗口处理算法

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

modelValue实现组件的双向数据绑定

modelValue modelValue是Vue.js 3.x中的一个重要概念,用于实现组件的双向数据绑定。当在父组件中使用v-model指令绑定一个子组件时,子组件需要声明一个modelValue属性来接收这个绑定值。同时,子组件还需要通过$emit方法触发一个名为update:m…

普通jar和SpringBootjar的区别

普通的 JAR(Java Archive)文件是一种压缩文件格式,它通常用于打包 Java 类文件、资源文件和其他相关文件。这些 JAR 文件可以包含任何类型的 Java 代码,并且可以由任何 Java 虚拟机(JVM)运行。普通的 JAR 文…

【2024】TCP、UDP和 HTTP 的区别是?

前言 作为前端开发者,理解TCP、UDP和HTTP这三种基本协议的区别和应用,对于构建高效、可靠的Web应用至关重要。本文将通过深入浅出的解释和实际的例子,帮助你掌握这些基础知识。 核心对比 TCP和UDP都是传输层协议,它们的主要区别…

性能优化问题思考总结

INP 是什么? Interaction to Next Paint (INP) INP是一项指标,通过观察用户在访问网页期间发生的所有点击、点按和键盘互动的延迟时间,评估网页对用户互动的总体响应情况。 互动是指在同一逻辑用户手势期间触发的一组事件处理脚本。例如&a…

龙蜥OS 尝试

> 尝试一下龙蜥OS,和Centos8应该没什么区别。 阿里云版本龙蜥 https://alinux3.oss-cn-hangzhou.aliyuncs.com/aliyun_3_x64_20G_nocloud_alibase_20230727.vhd Index of /anolis/8.8/isos/GA/x86_64/ (openanolis.cn) 网卡 我在虚拟机上安装完后,…

[Python进阶] 混合编程

2.22 混合编程 2.22.1 什么是混合编程 所谓的混合编程就是指在一个大型项目中,因为要涉及到多个方面,单独使用某一种语言进行开发已经不能满足要求,可能在某一个模块中,需要用A语言编写一部分,而用B语言编写另外的部…