Mysql数据库基础篇笔记

目录

sql语句

DDL——数据库定义语言(定义库,表,字段)

数据库操作:

表操作:

DML

增删改语句

DQL

语法编写顺序:

条件查询

DCL

用户管理:

权限管理:

函数

常见字符串内置函数

常见数值内置函数

常见日期内置函数

常见流程内置函数

约束

外键约束

多表查询

连接查询:

内连接:相当于查询A,B交集部分数据

外连接:

自连接:

联合查询:

子查询:

标量子查询(子查询结果为单个值)

列子查询(子查询结果为一列)

行子查询(子查询结果为一行)

表子查询(子查询结果为多行多列)

事务

概念:

操作:

事务四大特性ACID:

并发事务问题:

事物的隔离级别:

隔离操作


部分图片截取自【黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括】https://www.bilibili.com/video/BV1Kr4y1i7ru?p=62&vd_source=4aa5c9ca48e929b37821b89859f00208

仅供学习使用,感谢!

sql语句

DDL——数据库定义语言(定义库,表,字段)

数据库操作:

查询:

查询所有数据库

Show   databases;

查询当前数据库

Select   database();

创建:

Create database [if  not exists]  数据库名  [default charset 字符集]  [collate 排序规则]

删除

Drop database [if exists]  数据库名;

使用

Use  数据库名;

表操作:

查询

查询当前数据库中所有表

Show  tables;

查询表结构

Desc  表名;

查询指定表的建表语句

Show create  table  表名

修改

添加字段

Alter table  名  add  字段名 类型 [comment  注释]  [约束]

修改数据类型

Alter  table  表名  modify  字段名  新数据类型;

修改字段名和字段类型

Alter   table   表名   change  旧字段  新字段 类型(长[约束]

修改表名

Alter   table   表名  rename to  新表名;

删除

删除表

Drop  table [if  exists]  表名;

清空表

Truncate    table   表名;

DML

增删改语句

添加数据

Insert  into  表名([字段名1[,字段名2,…]]) values  (值1,值2,…) [, (值1,值2,…)];

修改数据

Update  表名  set   字段名1=值1,字段名2=值2,….[where 条件];

删除数据

Delete   from   表名  [where  条件]

注意:当添加一个字段,需要给原先的列中添加该字段的值时,需要用update设置这个值,而不是用insert插入这个值,

  insert插入的是整体字段的值,而不能插入单独一个字段的值。

DQL

语法编写顺序:

   Select   [distinct]  字段1[as  别名] ,[字段2,….]

   from  表名列表

   [where  条件列表] 

   [group   by    分组字段列表]   

   [having   分组后条件列表group  by分组之后的条件过滤用having

   [order by   字段1 排序方式1,字段2 排序方式2]   (排序方式ASC升序默认值,DESC降序:注意多字段排序,当第一个字段值相同时才会根据第二个字段进行排序)

   [   limit  起始索引,查询记录数]    (起始索引从零开始,起始索引=(查询页码-1)*每页显示记录数)

条件查询

注意:“link 占位符 ”中“_”的个数表示匹配的具体个数,“%”表示匹配到任意多个;

     多字段排序,当第一个字段值相同时才会根据第二个字段进行排序;

    IN中的元素需要用“,”进行隔离;

DCL

用户管理:

查询用户

Use   mysql

Select  *   from    user;

创建用户

Create   user   ‘用户名’@‘主机名’ identified  by ‘密码’;

修改用户密码

Alter    user  ‘用户名’@‘主机名’ identified  with   mysql_native_password  by  '新密码'

删除用户

Drop   user  ‘用户名’@‘主机名;

注意:主机名可以使用%通配。

权限管理:

创建权限:

①,查询权限

  show  grants  for   ‘用户名’@‘主机名’;

②,授予权限

  grant   权限列表  on  数据库名.表名   to   ‘用户名’@‘主机名’;

③,撤销权限

 revoke   权限列表  on   数据库名.表名   from   ‘用户名’@‘主机名’;

函数

常见字符串内置函数

注意:mysqlstart位置最小为1

常见数值内置函数

案例:随机生成六位验证码

SELECT ROUND(RAND()*1000000);

常见日期内置函数

常见流程内置函数

案例:

约束

补充:mysql中的主键自增:auto_increment 

 

注意:约束是作用于表中的字段上的,可以在创建表/修改表的时候添加约束。

  如果定义not null一定要给定义默认值,放置严格模式无法正常插入

 

外键约束

外键的作用:外键是用来让表与表之间建立连接,从而保证数据的一致性和完整性。

添加外键

Create table 表名(

字段名   数据类型,

,,,

[constraint]  [外键名称foreign   key(外键字段名) references  主表(主表列名)

);

Alter table 表名 add  constraint    外键名称  foreign  key(外键字段名)  references 主表(主表列名);

删除外键

Alter   table   表名  drop  foreign  key  外键名称;

删除或更新行为

Alter table 表名  add  constraint    自定义外键名称  foreign  key(外键字段名)  references 主表(主表列名)on update 行为 on delete 行为;

常用行为:级 联cascade    删除后值设置为空set null;

多表查询

多表查询分类:

注意·:关联匹配条件是到笛卡尔积里面筛选的条件

连接查询:

内连接:相当于查询A,B交集部分数据

隐式内连接:select  字段列表  from  1,表2 where 关联匹配条件;

显示内连接:select  字段列表  from  1  [inner] join  2 on 关联匹配条件;(推荐使用)

外连接:

左外连接:查询左表所有数据,以及两张表交集部分数据

右外连接:查询右表所有数据,以及两张表交集部分数据

Select  字段列表  from  1  left/right  [outer]  join  2  on   关联匹配条件;

自连接:

        当前表与自身的链接查询,子链接必须使用表别名

联合查询:

union,union all

对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果

Select    字段列表   from  表A…….

Union

Select  字段列表  from 表B…..  ;

注意:对于查询多张表的列数必须保持一致,字段类型也需要保持一致;

  Union  all会将全部的数据直接合并在一起,union会对合并之后的数据去重;

子查询:

概念:SQL语句中嵌套select语句,称为嵌套查询,又称子查询。

语法:select   字段列表  from       where  字段名=select  字段列表   from  ……..;

子查询外部的语句可以是insert/update/delete/select中的任意一个

根据子查询结果不同,分为:

标量子查询(子查询结果为单个值)
列子查询(子查询结果为一列)

行子查询(子查询结果为一行)

常用操作符:=,<>,IN,NOT IN

表子查询(子查询结果为多行多列)

根据子查询位置:分为:where之后,from之后,select之后。

事务

概念:

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,及这些操作要么同时成功,要么同时失败。

(例如银行转账要么成功要么失败)

默认mysql的事务是自动提交的,也就是说,当执行一条dml语句,mysql会立即隐式的提交事务。

操作:

查看/设置事务提交方式:(1为自动提交,0为手动提交)

Select  @@autocommit;

Set   @@autocommit=0

开启事务(不用更改事务提交方式):

Start  transaction  或  begin;

提交事务:

commit;

回滚事务:

rollback

注意:开启事务或者设置为手动提交时rollback才生效;

 

事务四大特性ACID:

原子性:事务是不可分割的最小操作单元,要么全部成功,要么全部失败。

一致性:事务完成时,必须使所有的数据都保持一致状态,

隔离性:数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。

持久性:事务一旦提交或回滚,它对数据库中的数据的改变是永久的。

并发事务问题:

事物的隔离级别:

注意:“×”是可以解决相关问题,“√”反之无法解决。 repeatable read(可重复读),serializable(串行)。

隔离操作

查看事务隔离级别         select  @@transaction_isolation;

设置事务隔离                set  [session|global]  transaction  isolation  level  [read  uncommitted | read committed | repeatable read(默认)  | serializable];

注意:事务隔离级别越高,数据越安全,但是性能越低。

 

Read  commited   :解决了脏读问题,当一方提交了,另一方才会查询得到。(一方提交);

Repeatable  read    :解决了不可重复读问题,当一方提交了,另一方查询不到,只有另一方自身也提交了才会查询得到(需要双方都提交);

Serializable   :串行操作,一方执行完,另一方才可以执行;

 

 

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

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

相关文章

联想按下“AI加速键”!目标:与5000万中小企业共创

根据相关数据显示&#xff0c;截至2023年末中国中小企业数量超过5300万家&#xff0c;中小企业支撑了中国经济的发展与前进。在AI大模型风潮到来之际&#xff0c;相比于AI带给大企业的长期价值&#xff0c;AI对中小企业有着更加直接、显著、决定性的意义。同时&#xff0c;AI与…

SpringBoot项目启动报错-Slf4j日志相关类找不到

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

SABO-CNN-BiGRU-Attention减法优化器优化卷积神经网络结合双向门控循环单元时间序列预测,含优化前后对比

SABO-CNN-BiGRU-Attention减法优化器优化卷积神经网络结合双向门控循环单元时间序列预测&#xff0c;含优化前后对比 目录 SABO-CNN-BiGRU-Attention减法优化器优化卷积神经网络结合双向门控循环单元时间序列预测&#xff0c;含优化前后对比预测效果基本介绍模型描述程序设计参…

【Java基础】集合

目录 CollectionListSet *重点&#xff1a; 底层机制&#xff08;源码&#xff09;应用场景 好处&#xff1a; 数组&#xff08;长度不可改&#xff0c;同一类型&#xff0c;增删不便&#xff09;集合&#xff08;动态保存&#xff0c;多种类型&#xff0c;方便操作&#xf…

实验3-实时数据流处理-Flink

1.前期准备 &#xff08;1&#xff09;Flink基础环境安装 参考文章&#xff1a; 利用docker-compose来搭建flink集群-CSDN博客 显示为这样就成功了 &#xff08;2&#xff09;把docker&#xff0c;docker-compose&#xff0c;kafka集群安装配置好 参考文章&#xff1a; …

javaweb-Mybaits

1.Mybaits入门 &#xff08;1&#xff09;介绍 &#xff08;2&#xff09; 2.Mybaits VS JDBC 3.数据库连接池 &#xff08;1&#xff09;SpringBoot默认连接池为hikari&#xff0c;切换为Druid有两种方式 方式一&#xff1a;加依赖 方式二&#xff1a;直接修改配置文件 …

Mybatis 关联查询

在 MyBatis 中&#xff0c;关联查询&#xff08;也称为复杂映射&#xff09;是指将多个表的数据通过 SQL 查询和结果映射的方式&#xff0c;组合成一个或多个 Java 对象。这种查询方式用于处理实体之间的关系&#xff0c;如一对一、一对多和多对多关系。通过关联查询&#xff0…

GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

分布式光伏电站如何实现监控及集中运维管理?

安科瑞戴婷 Acrel-Fanny 前言 今年以来&#xff0c;在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速&#xff0c;装机容量均大幅度增长&#xff0c;新能源发电已经成为新型电力系统重要的组成部分&#xff0c;同时这也导致新型电力系统比传统的电…

大模型分类1—按应用类型

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl根据应用领域,大模型可分为自然语言处理、计算机视觉和多模态大模型。 1. 自然语言处理大模型(NLP) 1.1 应用领域与技术架构 自然语言处理大模型(NLP)的应用领域广泛,包括但不限于文本分类、…

2024 32kstar 的目前最佳开源RAG框架之一的 Langchain-Chatchat开源项目实践(一)

2024 32kstar 的目前最佳开源RAG框架之一的 Langchain-Chatchat开源项目实践&#xff08;一&#xff09; 文章目录 2024 32kstar 的目前最佳开源RAG框架之一的 Langchain-Chatchat开源项目实践&#xff08;一&#xff09;一、前言二、实践步骤1、软硬件要求&#xff08;1&#…

网络安全应急响应流程图

一、网络安全应急响应建设的背景和现状 当前&#xff0c;许多地区和单位已经初步建立了网络安全预警机制&#xff0c;实现了对一般网络安全事件的预警和处置。但是&#xff0c;由于网络与信息安全技术起步相对较晚&#xff0c;发展时间较短&#xff0c;与其他行业领域相比&…

2024 阿里云Debian12.8安装apach2【图文讲解】

1. 更新系统&#xff0c;确保您的系统软件包是最新的 sudo apt update sudo apt upgrade -y 2. 安装 Apache Web 服务器 apt install apache2 -y 3. 安装 PHP 及常用的扩展 apt install php libapache2-mod-php -y apt install php-mysql php-xml php-mbstring php-curl php…

本地windows环境下,在vscode里将go项目打成docker镜像,并运行访问

此处只展示一个简单go代码实例. #前提:需要装好docker和golang环境,本地docker启动且配置好镜像源地址: # 容器镜像加速服务-云港网络 1.首先在vscode中写一个简单输出的demo go mod init &#xff0b;go mod tidy编译一下,命令运行如下: 2.使用命令生成Dockerfile文件 $ g…

GIT的使用方法以及汉化方法

1.下载git软件&#xff0c;可以从官网下载 下载后默认安装即可。 2.找到一个文件夹&#xff0c;或者直接打开gitbash gitbash可以使用cd指令切换目录的 打开后输入 git clone https:[git仓库的网页]即可克隆仓库 就是这个地址 克隆后即可使用代码 如果忘记了命令可以使用 -…

前缀和(四)除自身以外数组的乘积

238. 除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&…

图解RabbitMQ七种工作模式生产者消费者模型的补充

文章目录 1.消费者模型2.生产者-消费者模型注意事项2.1资源释放顺序问题2.2消费者的声明问题2.3虚拟机和用户的权限问题 3.七种工作模式3.1简单模式3.2工作模式3.3发布/订阅模式3.4路由模式3.5通配符模式3.6RPC通信3.7发布确认 1.消费者模型 之前学习的这个消息队列的快速上手…

头歌 Linux之线程管理

第1关&#xff1a;创建线程 任务描述 通常我们编写的程序都是单进程&#xff0c;如果在一个进程中没有创建新的线程&#xff0c;则这个单进程程序也就是单线程程序。本关我们将介绍如何在一个进程中创建多个线程。 本关任务&#xff1a;学会使用C语言在Linux系统中使用pthrea…

BioDeepAV:一个多模态基准数据集,包含超过1600个深度伪造视频,用于评估深度伪造检测器在面对未知生成器时的性能。

2024-11-29, 由罗马尼亚布加勒斯特大学创建BioDeepAV数据集&#xff0c;它专门设计来评估最先进的深度伪造检测器在面对未见过的深度伪造生成器时的泛化能力&#xff0c;这对于提高检测器的鲁棒性和适应性具有重要意义。 数据集地址&#xff1a;biodeep 一、研究背景&#xff1…

工业—使用Flink处理Kafka中的数据_ChangeRecord1

使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,当某设备 30 秒状态连续为 “ 预警 ” ,输出预警 信息。当前预警信息输出后,最近30