掌握mysql,看完这篇文章就够了

1.mysql

学习数据库就是学习数据库管理系统(一个数据管理系统可以管理多个数据库)

安装
安装版本:mysql -installter -community-5.7.41.0.msl
流程
        1.custom自定义安装
        2.选择安装MySQl Server 5.7.41 - x64
        3.默认使用TCP、IP协议,端口3306
        4.配置用户密码
                默认root用户 直接配置密码
                自定义用户
                用户名
                Host % 所有主机都可以访问
                Role 角色 DBA
        5.配置服务
        服务名 MySQl57
        开机启动
        测试是否安装
                win+r-输出cmd-输入 mysql -uroot -p
        连接到数据库管理系统  mysql.exe
                -h 192.168.11.15 远程访问需要权限
                -uroot 用户名
                -p3306 端口
                -p 密码

2.数据库,表,数据相关SQL语句

2.1 数据库

展示所有数据库 show databases;
查看当前使用的数据库 select database();
创建数据库 create database 数据库名;
不存在创建 create database if not exists数据库名 charset = utf8;
指定编码
create database 数据库名 charset = utf8;
create database 数据库名 character set utf8;
使用数据库 use 数据库名;
删除数据库 drop database 数据库名;

2.2 表

展示当前数据库所有表 show tables;
创建表 create table 表名(列名 类型 约束信息, 列名 类型 约束信息, .... )
查看表 desc 表名;
删除表 drop table 表名;
修改表名 rename table 原始表名 to 新表名;
添加列 alter table 表名 add 列名 类型 约束;
删除列 alter table 表名 drop 列名;
修改列 alter table 表名 change 原始列名 新列名 类型 约束;

2.3 数据

查询数据 select * from 表名
select 列1,列2..... from 表名
select * from 表名 where 条件(id=5);
插入数据
全列插入 insert into 表名 values(列1, 列2, 列3,.....);
插入多行 insert into 表名 values(),(),()....;

缺省插入
insert into 表名 (列1,列2) values (值1,值2);
插入多行 insert into 表名 (列1,列2) values (),(),(),...;
只能写入一行 insert into 表名 set 列1=值1, 列2 = 值2...;
修改数据 update 表名 set 列1=值1,列2=值2 where 条件; 若没有where则修改整个表
删除数据 delete from 表名 where 条件; 若没有where则清空整个表

3.Mysql列的约束

用于限制数据在表中的输入规则
        主键primary
        外键 foreign key
        自增长 auto_increment
        唯一 unique
        非空 not null
        默认 default

4. Mysql数据类型

数字
        int
        bigint
        float单精度
        double双精度
        decimal高精度
字符串
        char长度
        varchar可变长度
        text长文本

布尔bool
         1、0
日期时间
        date
        time
        datetime
        year
        timestamp
枚举 enum,罗列所以可能

5.外键 创建,添加,删除

外键用于建立表与表之间的关联关系,一个表中的外键是另一个表中的主键
创建表时添加
        create table 表名 (列...., constraint 外键名 foreign key(外键列名) reference 主表(主键)) on update cascade on delete cascade;
删除
        alter table 表名 drop foreign key 外键名;

6.别名,查询指定列, 条件查询

select 列名 as 别名,列名 as 别名,...from 表名 where 条件
        针对查询到的列起别名
        多表查询,有共同的列表

7.系统函数与聚合函数

系统函数:
        user()当前用户
        version()当前数据库版本
        database()
        current_time
        current_date
        current_timestamp
聚合函数:
        max(列名) :select max(列名) from 表名
        min(列名)
        sum(列名)
        avg(列名)
        count(任意列名)

8. 排序、分页,分组,去重

排序: order by 列名 排序方式
        asc升序、desc降序

分页:
        limit n:显示前n个
        limit m, n:从索引m开始显示n个

分组:
        group by 针对查询结果分组
        select count(*), 列名 from 表名 where 条件
        having 针对分组结果进行处理
        having 列名条件

去重:
        distinct(列名),去重某一列

9.嵌套查询,内连接,左外连接,右外连接,全连接

嵌套查询:一个查询的结果作为另一个查询的内容
内连接:inner join on 连接条件
左外连接:内连接结果+左表内容(右侧补null)
右外连接:内连接结果+右表内容(左侧补null)
全连接:左外连接 union 右外连接

10. 用户创建,授权,删除

查看当前用户:select user()
创建用户:create user 'temp1'@'%' identified by '123456';
分配权限:grant all on *.* to 'temp1'@'%';
                grant select , insert on mydb. * to 'temp2'@'%';
删除用户:drop user 'temp2'@'%'
刷新权限:flush privileges;

11.视图

一张虚拟表,修改表等同于操作真实数据,方便查询
创建视图:不要求写SQL,使用navical工具创建
使用视图等同于使用表

12.函数与存储过程

都是存储在服务器上,可以提升数据安全,客户端不需要关注具体实现
函数:经过计算返回一个结果,需要指定一个形参,指定返回值
                select 函数名(实参)
存储过程:一套SQL操作,没有返回值
                call 过程名(实参)

13. 索引

索引:一种查询优化技术,可以提升查询效率,实现的本质是要预先存储一些额外数据,牺牲存储空间,提升查询效率
索引类型:
        主键索引、唯一索引、普通索引

何时定义索引:
        索引不是创建越多越好,如果表的修改频率非常高,不适合创建索引
        如果表的查询效率非常高,,几乎不修改,适合创建索引
索引方法:
        BTREE:大数据量,适合范围比较
        HASH:适合小数据量,适合精准的等值比较

14. 事务

MySQl存储引擎innoDB支持事务,MySQl数据库中对应的一系列操作要么全部执行成功然后提交,要么全部失败然后回滚
        成功:commit 失败:rollback
mysql终端默认自动提交
        取消自动提交:set autocommit = 0;
        设置自动提交:set autocommit = 1;

事务相关
        开启事务:start transaction;
默认不会自动提交
        结束事务:commit;提交成功
rollback; 失败回滚

ACID原则:
        原子性:不可再分,全部成功或全部失败
        一致性:执行前后数据要保持一致
        隔离性:多个事务相互不影响
        持久性:一旦提交,则执行完毕,永久改变

15.存储引擎

create table 表名() engine=引擎名
create table myisam_table(id int not null primary key auto_increment,
name varchar(30)) engine=myisam;
数据的存储的实现,不同存储引擎不同场景
常用
InnoDB:
        支持事务
        支持外键
        支持行级别锁定,阻塞
        综合能力强,适用大多数场景
        默认存储引擎
        使用后缀为ibd文件存储内容
MyISAM: 查询,排序速度非常快,不支持外键
Memory: 读取内存速度最快,不能持久化,不能在本地保存
CSV: 使用逗号隔开,适合导入导出操作

16.数据库的备份与恢复

备份:将数据库信息转储为SQL文件、手动创建数据库
恢复:运行SQL文件在目录中找到myk.sql文件打开
 

17.Mysql与Python基础交互

1.导入模块
2.连接数据库
3.构建游标
4.通过游标执行sql语句
5.处理sql结果
6.释放连接与游标

18.Fetchone fetchall fetchmany scroll execute executemany 方法使用

fetchone:获取表中一条数据
fetchall:获取表中所有数据
fetchmany:获取表中自定义数据
scroll:在结果集中移动游标,允许你在结果集中向前或向后滚动,以便访问不同的行。
execute:用于执行单个SQL查询或操作,并且通常用于执行增删改查操作
executemany:用于执行批量的SQL操作,批量插入多行数据。
 

19.Mysql辅助类封装

方便地进行数据库操作,提高代码复用性和可维护性

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

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

相关文章

c++ 常用新特性总结【c++11】,【c++14】,【c++17】,【c++20】

文章目录 常用的c11新特性1.自动推导类型(auto)2.lambda表达式3.智能指针4.范围for循环5.右值引用 - 移动语义6.类型别名7.constexpr8.static_assert(静态断言)9.nullptr10.列表初始化11.继承构造函数12.显示虚函数重载(override)13.final14.变长模板参数15.新的容器与算法16.强…

代码随想录算法训练营第四十八天|583. 两个字符串的删除操作,72. 编辑距离

系列文章目录 代码随想录算法训练营第一天|数组理论基础,704. 二分查找,27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

第三方神秘顾客调查:如何选择专业的营业厅神秘顾客公司

选择专业的营业厅神秘顾客公司时,确实需要考虑多个因素,以确保您合作的公司能够为您提供高质量的服务和有价值的反馈。以下是选择营业厅神秘顾客公司时应考虑的关键因素: 1、公司声誉与经验:选择在行业内有良好声誉和丰富经验的神…

内容管理平台原来这么好用,优秀企业必备

内容管理平台是企业的强有力支持者,它可以使企业对旗下的各种网站、应用和其他数字内容进行集中管理,有效提高工作效率。对于企业的运营、市场推广和客户服务等各方面都有着重要的影响。今天,我们就来推荐三款值得尝试的内容管理平台。 首先…

论文的引用书写方法

前置操作 1、全选文献 2、在开始选项卡 段落功能区 选择编号功能 3、设置编号格式 [1] 论文的引用 1、光标放在需要引用论文的地方 2、选择引用选项卡 点击交叉引用 3、引用类型为编号项 引用内容为段落编号 选择需要的第几条参考文献

备战蓝桥杯---动态规划的一些思想2

话不多说,直接看题: 1.换根DP: 我们肯定不能对每一个根节点暴力求,我们不妨先求f[1],我们发现当他的儿子作为根节点时深度和为f[1](n-cnt[i])-cnt[i](cnt[i]表示以i为根的节点数),这样子两遍DFS…

论文阅读:Diffusion Model-Based Image Editing: A Survey

Diffusion Model-Based Image Editing: A Survey 论文链接 GitHub仓库 摘要 这篇文章是一篇基于扩散模型(Diffusion Model)的图片编辑(image editing)方法综述。作者从多个方面对当前的方法进行分类和分析,包括学习…

Python exec 函数解析:探索动态代码执行的无限可能!

在 Python 中,exec() 是一个内置函数,用于执行储存在字符串或文件中的 Python 代码。这个函数的灵活性使得它在某些情况下成为一种有用的工具,但也因为其潜在的安全风险而需要谨慎使用。本文将深入探讨 exec() 函数的使用方法、注意事项以及适…

P10095 [ROIR 2023 Day 1] 斐波那契乘积

难度:普及/提高- 题目背景 翻译自 ROIR 2023 D1T2。 斐波那契数指斐波那契数列(f0​1,f1​1,fi​fi−2​fi−1​)中出现的数。 题目描述 给定一个自然数 n,求出将其表示为大于 1 的斐波那契数的乘积的方式数量。 输入格式 …

微信小程序-可以用区域

简介 movable-view和movable-area是可移动的视图容器,在页面中可以拖拽滑动。 本篇文章将会通过该容器实现一个常用的拖拽按钮功能。 使用效果 代码实现 side-view.wtml 布局见下面代码,left view为内容区域,right view为操作按钮&a…

【初中up主分享】自己动手,丰衣足食!看我打造的下载利器!

代码如下: import os.path import tkinter as tk import tkinter.ttk as ttk import tkinter.filedialog as tf import pytube from urllib.error import URLError import tkinter.messagebox as tm import requests import io from PIL import ImageTk, Image imp…

软件测试自学和报班学习的区别,各有各的优势和缺点,大家看完之后自己选择喔

时代在进步,人们汲取知识的方式不再是单一的在书本上面,现在网络发达,只需要上网就能找到相关的好多知识,慢慢的大家越来越觉得有了这些知识,只要自己有自制力就完全能够自学到一定的程度。 在自学氛围的影响下&#…

【Python】科研代码学习:五 Data Collator,Datasets

【Python】科研代码学习:五 Data Collator,Datasets Data CollatorDefault data collatorDefaultDataCollatorDataCollatorWithPaddingPadding 其他 Data Collator Datasetsload_dataset其他一些基本操作 Data Collator HF官网API:Data Coll…

抖音短视频素材哪里找,推荐五个好用的抖音素材网站

不知道你有没有想过一个问题,为什么别人都能找到那种高质量的视频素材,画质特别高清,甚至是4K的内容,而你需要视频素材却不知道去哪里找?网上有各种参差不齐的网站,变着法的想掏空你那本不富裕的腰包。今天…

Git 开源的版本控制系统-06-share to github 如何把项目代码共享到 github

拓展阅读 Subversion 开源的版本控制系统入门介绍 VCS Git 开源的版本控制系统-01-入门使用介绍 Git 开源的版本控制系统-02-base usage 基本用法 Git 开源的版本控制系统-03-时间数据回溯 Git 开源的版本控制系统-04-branch manage 分支管理 Git 开源的版本控制系统-05-…

springMVC自定义异常处理器

目录 🌱使用原因 🌳优点 🌱实现 🌳自定义一个异常 🌳异常处理 🌳测试 使用原因 系统中会有各种各样的,意料之中和意料之外的结果,我们并不能做到完全针对每个异常时刻做出针对…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Marquee)

跑马灯组件,用于滚动展示一段单行文本。仅当文本内容宽度超过跑马灯组件宽度时滚动,不超过时不滚动。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Ma…

数据结构从入门到精通——队列

队列 前言一、队列1.1队列的概念及结构1.2队列的实现1.3队列的实现1.4扩展 二、队列面试题三、队列的具体实现代码Queue.hQueue.ctest.c队列的初始化队列的销毁入队列出队列返回队头元素返回队尾元素检测队列是否为空检测元素个数 前言 队列是一种特殊的线性数据结构&#xff…

【操作系统学习笔记】文件管理2.3

【操作系统学习笔记】文件管理2.3 参考书籍: 王道考研 视频地址: Bilibili 虚拟文件系统 由于不同的硬件需要不用的文件系统,会导致写代码非常复杂 虚拟文件系统 VFS: 向上层用户进程提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异VFS…

Python 初步了解urllib库:网络请求的利器

目录 urllib库简介 request模块 parse模块 error模块 response模块 读取响应内容 获取响应状态码 获取响应头部信息 处理重定向 关闭响应 总结 在Python的众多库中,urllib库是一个专门用于处理网络请求的强大工具。urllib库提供了多种方法来打开和读取UR…