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   :串行操作,一方执行完,另一方才可以执行;

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大模型】深度解析 NLP 模型5大评估指标及 应用案例:从 BLEU、ROUGE、PPL 到METEOR、BERTScore

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;无论是机器翻译、文本生成&#xff0c;还是问答系统开发&#xff0c;模型性能评估指标始终是开发者绕不开的工具。BLEU、ROUGE、PPL&#xff08;困惑度&#xff09;、METEOR 和 BERTScore 是五个最具代表性的指标&am…

【QT】背景,安装和介绍

TOC 目录 背景 GUI技术 QT的安装 使用流程 QT程序介绍 main.cpp​编辑 Wiget.h Widget.cpp form file .pro文件 临时文件 C作为一门比较古老的语言&#xff0c;在人们的认知里始终是以底层&#xff0c;复杂和高性能著称&#xff0c;所以在很多高性能需求的场景之下…

【Maven】依赖冲突如何解决?

准备工作 1、创建一个空工程 maven_dependency_conflict_demo&#xff0c;在 maven_dependency_conflict_demo 创建不同的 Maven 工程模块&#xff0c;用于演示本文的一些点。 什么是依赖冲突&#xff1f; 当引入同一个依赖的多个不同版本时&#xff0c;就会发生依赖冲突。…

自动驾驶决策规划算法-路径决策算法:二次规划

本文为学习自动驾驶决策规划算法第二章第四节(中) 路径二次规划算法》的学习笔记。 1 二次型 二次型的形式为 1 2 x T H x f T x \begin{equation} \frac{1}{2}\boldsymbol{x}^TH\boldsymbol{x}f^T\boldsymbol{x} \end{equation} 21​xTHxfTx​​ 约束 A e q x b e q \be…

学习ASP.NET Core的身份认证(基于Session的身份认证2)

基于Session的身份认证通过后&#xff0c;后续访问控制器的函数时该如何控制访问权限&#xff1f;虽然可以按上篇文章方式在需要做控制的函数开头检查Session的用户标识&#xff0c;可以写个全局通用检查类供所需函数调用&#xff0c;但还是有更简便的方法&#xff0c;本文学习…

立创庐山派 K230 RTSP 推流

立创庐山派使用的是K230芯片&#xff0c;按照教程刷了canmv固件&#xff0c;下载canmv ide&#xff0c;使用嘉楠社区的rtsp和wlan例程&#xff0c;修改成连接wifi以及RTSP推流例程 # Description: This example demonstrates how to stream video and audio to the network us…

matlab代码--卷积神经网络的手写数字识别

1.cnn介绍 卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种深度学习的算法&#xff0c;在图像和视频识别、图像分类、自然语言处理等领域有着广泛的应用。CNN的基本结构包括输入层、卷积层、池化层&#xff08;Pooling Layer&#xff09;、全连…

挑战用React封装100个组件【004】

项目地址 https://github.com/hismeyy/react-component-100 组件描述 组件适用于展示图片的地方&#xff0c;提供了small&#xff0c;medium&#xff0c;large三种大小。可以删除图片&#xff0c;也可以全屏预览图片。 样式展示 前置依赖 今天我们的这个挑战需要用用到了…

【详细介绍及演示】Flink之checkpoint检查点的使用

目录 一、介绍 二、 设置checkpoint检查点演示 1、 代码演示 2、测试代码效果 3、查看快照情况 ​编辑 三、在集群上运行 1、第一次运行 2、第二次运行 四、自定义检查点savePoint 1、提交一个flink job 打成jar包 2、输入一些数据&#xff0c;观察单词对应的数字的…

【进阶篇-Day15:JAVA线程-Thread的介绍】

目录 1、进程和线程1.1 进程的介绍1.2 并行和并发1.3 线程的介绍 2、JAVA开启线程的三种方法2.1 继承Thread类&#xff1a;2.2 实现Runnable接口2.3 实现Callable接口2.4 总结&#xff1a; 3、线程相关方法3.1 获取和设置线程名字的方法3.2 线程休眠方法&#xff1a;3.3 线程优…

springboot(20)(删除文章分类。获取、更新、删除文章详细)(Validation分组校验)

目录 一、删除文章分类功能。 &#xff08;1&#xff09;接口文档。 1、请求路径、请求参数。 2、请求参数。 3、响应数据。 &#xff08;2&#xff09;实现思路与代码书写。 1、controller层。 2、service接口业务层。 3、serviceImpl实现类。 4、mapper层。 5、后端接口测试。…

如何搭建JMeter分布式集群环境来进行性能测试

在性能测试中&#xff0c;当面对海量用户请求的压力测试时&#xff0c;单机模式的JMeter往往力不从心。如何通过分布式集群环境&#xff0c;充分发挥JMeter的性能测试能力&#xff1f;这正是许多测试工程师在面临高并发、海量数据时最关注的问题。那么&#xff0c;如何轻松搭建…

Y20030025基于php+mysql的幼儿健康管理系统设计与实现 源代码 配置 文档

幼儿健康管理系统的设计与实现 1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取 1.摘要 在信息化时代的浪潮中&#xff0c;幼儿健康管理面临着前所未有的挑战与机遇。为了更好地满足家长和幼儿园对幼儿健康管理的需求&#xff0c;我们致力于开发一套基于PHP的幼…

时频转换 | Matlab基于垂直二阶同步压缩变换vertical second-order synchrosqueezing一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式基本介绍 时频转换 | Matlab基于垂直二阶同步压缩变换vertical second-order synchrosqueezing一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x

1.1 数据结构的基本概念

1.1.1 基本概念和术语 一、数据、数据对象、数据元素和数据项的概念和关系 数据&#xff1a;是客观事物的符号表示&#xff0c;是所有能输入到计算机中并被计算机程序处理的符号的总称。 数据是计算机程序加工的原料。 数据对象&#xff1a;是具有相同性质的数据元素的集合&…

SpringBoot小知识(2):日志

日志是开发项目中非常重要的一个环节&#xff0c;它是程序员在检查程序运行的手段之一。 1.日志的基础操作 1.1 日志的作用 编程期调试代码运营期记录信息&#xff1a; * 记录日常运营重要信息(峰值流量、平均响应时长……) * 记录应用报错信息(错误堆栈) * 记录运维过程数据(…

传输控制协议(TCP)

传输控制协议是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。 1、TCP报文段结构 注&#xff1a;TCP默认采用累积确认机制。 2、三次握手、四次挥手 &#xff08;1&#xff09;当客户向服务器发送完最后一个数据段后&#xff0c;发送一个FIN段…

输出保留3位小数的浮点数

输出保留3位小数的浮点数 C语言代码C代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 读入一个单精度浮点数&#xff0c;保留3位小数输出这个浮点数。 输入 只有一行&#xff0c;一个单精度浮点数。 输出 也只有一…

安装 RabbitMQ 服务

安装 RabbitMQ 服务 一. RabbitMQ 需要依赖 Erlang/OTP 环境 (1) 先去 RabbitMQ 官网&#xff0c;查看 RabbitMQ 需要的 Erlang 支持&#xff1a;https://www.rabbitmq.com/ 进入官网&#xff0c;在 Docs -> Install and Upgrade -> Erlang Version Requirements (2) …

【竞技宝】CS2-上海major:MongoLZ成为亚洲之光

北京时间2024年12月1日,上海major在昨日正式拉开比赛序幕,首日第六轮迎来MongolZ对阵MIBR、COL对阵PUA。以下是本轮比赛的详细战报。 MongoLz 13-6 MIBR(比赛地图:远古遗迹) 上半场,MongoLz先做进攻方。手枪局,MongoLz抱团进攻遭遇MIBR重防被接连秒掉三人,然而在5V2的残局中,M…