速通MySql

一、简介

1、什么是数据库

        数据仓库,用来存储数据。访问必须用SQL语句来访问

2、数据库的类型

        1、关系型数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询;事务支持良好,使得对于安全性能很高的数据访问要求得以实现

        2、非关系型数据库:redis,MongoDb等 性能高,不需要经过SQL层的解析

3、常见的数据库类型

        Oracle 大型数据库,收费

        Mysql 小型数据库,开源,

        SQL Server 微软数据库

        DB2 IBM公司产品,大型数据库,收费

二、数据库增删改查的操作

        前置:安装mysql,教程点击此处

1、增

语法

含义

模板

CREATE DATABASE

创建新数据库

CREATE DATABASE dbname;

CREATE TABLE

创建新表

CREATE TABLE table_name

(

column_name1 data_type(size),

column_name2 data_type(size),

column_name3 data_type(size),

....

);

INSERT INTO

向数据库中插入新数据

两种编写形式

1、第一种形式无需指定要插入数据的列名,只需提供被插入的值即可

INSERT INTO table_name VALUES (value1,value2,value3,...

2、第二种形式需要指定列名及被插入的值

INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);

2、删

语法

含义

模板

实例

备注

DELETE

从数据库中删除数据

DELETE FROM table_name

WHERE some_column=some_value;

DELETE FROM Websites

WHERE name='Facebook' AND country='USA';

WHERE 子句规定哪条记录或者哪些记录需要删除。如果省略了 WHERE 子句,所有的记录都将被删除

drop

从数据库中删除数据

drop table 表名;

把表和表中数据直接删除

truncate

从数据库中删除数据

truncate table 表名;

truncate 直接把表删除 会按照之前的表在创建一个新的

        删除速度 drop>truncate>delete

3、改

语法

含义

模板

备注

UPDATE

更新数据库中的数据

UPDATE table_name

SET column1=value1,column2=value2,...

WHERE some_column=some_value;

执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。

在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。

set sql_safe_updates=1; 表示开启该参数

4、查

1、select语句

语法

含义

模板

备注

DISTINCT

用于返回唯一不同的值

SELECT DISTINCT column_name,column_name

FROM table_name;

WHERE

(②、③)

用于提取那些满足指定条件的记录

SELECT column_name,column_name

FROM table_name

WHERE column_name operator value;

1、文字用单引号,数字不用引号;

2、后面不能跟聚合函数

AND & OR

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录

1、SELECT * FROM Websites

WHERE country='CN'

AND alexa > 50;

2、SELECT * FROM Websites

WHERE country='USA'

OR country='CN';

ORDER BY

(④、⑤)

关键字用于对结果集按照一个列或者多个列进行排序

SELECT column_name,column_name

FROM table_name

ORDER BY column_name,column_name ASC|DESC;

关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,可以使用 DESC 关键字

like&not like

(⑥)

用于在 WHERE 子句中搜索列中的指定模式

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern;

in

在 WHERE 子句中规定多个值

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...);

转换

1、select * from Websites where name in ('Google','菜鸟教程');

2、select * from Websites where name='Google' or name='菜鸟教程';

between&

not between

选取介于两个值之间的数据范围内的值

SELECT column_name(s)

FROM table_name

WHERE column_name BETWEEN value1 AND value2;

带有 IN 的 BETWEEN 操作符实例

SELECT * FROM Websites

WHERE (alexa BETWEEN 1 AND 20)

AND country NOT IN ('USA', 'IND');

5、多表连接

语法

含义

模板

备注

INNER JOIN&JOIN

关键字在表中存在至少一个匹配时返回行

1、SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name=table2.column_name;

2、SELECT column_name(s)

FROM table1

JOIN table2

ON table1.column_name=table2.column_name;

LEFT JOIN

关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL

左为主 把左边的表中的不符合规则的数据显示出来

SELECT column_name(s)

FROM table1

LEFT JOIN table2

ON table1.column_name=table2.column_name;

RIGHT JOIN

关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL

右连接 右为主 把右边的表中的不符合规则的数据显示出来

SELECT column_name(s)

FROM table1

RIGHT JOIN table2

ON table1.column_name=table2.column_name;

6、函数

语法

含义

模板

备注

AVG()

返回平均值

SELECT AVG(column_name) FROM table_name

聚合函数

COUNT()

COUNT(column_name)

函数返回指定列的值的数目(NULL 不计入)

COUNT(*)

返回表中的记录数

COUNT(DISTINCT column_name)

返回指定列的不同值的数目

同左

聚合函数

MAX()

返回最大值

SELECT MAX(column_name) FROM table_name;

聚合函数

MIN()

返回最小值

SELECT MIN(column_name) FROM table_name;

聚合函数

SUM()

返回总和

SELECT SUM(column_name) FROM table_name;

聚合函数

GROUP BY

用于结合聚合函数,根据一个或多个列对结果集进行分组。

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

HAVING

(⑦)

筛选分组后的各组数据,解决WHERE 关键字无法与聚合函数一起使用

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value;

②、WHERE 子句中的运算符

运算符

描述

示例

=

等于

<>

不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=

>

大于

<

小于

>=

大于等于

<=

小于等于

③、WHERE 子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当 0 时转化为 false,1 转化为 true。

        例如:

                SELECT studentNO FROM student WHERE 0

        则会返回一个空集,因为每一行记录 WHERE 都返回 false。

                SELECT studentNO FROM student WHERE 1

        返回 student 表所有行中 studentNO 列的值。因为每一行记录 WHERE 都返回 true。

④、ORDER BY 多列的顺序

        先按照第一个column name排序,在按照第二个column name排序

        1)、先将country值这一列排序,同为CN的排前面,同属USA的排后面;

        2)、然后在同属CN的这些多行数据中,再根据alexa值的大小排列。

        3)、ORDER BY 排列时,不写明ASC DESC的时候,默认是ASC。

⑤、ORDER BY 多列的升降序

        order by A,B 这个时候都是默认按升序排列

        order by A desc,B 这个时候 A 降序,B 升序排列

        order by A ,B desc 这个时候 A 升序,B 降序排列

        即 desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

⑥、

%a

以a结尾的数据

a%

以a开头的数据

%a%

含有a的数据

_a_

三位且中间字母是a的

_a

两位且结尾字母是a的

a_

两位且开头字母是a的

⑦、分组查询的筛选条件

数据源

位置

关键字

分组前筛选

原始表

group by子句的前面

where

分组后筛选

分组后的结果集

group by子句的后面

having

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

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

相关文章

TA-Lib学习研究笔记(八)——Momentum Indicators 上

TA-Lib学习研究笔记&#xff08;八&#xff09;——Momentum Indicators 上 Momentum Indicators 动量指标&#xff0c;是最重要的股票分析指标&#xff0c;能够通过数据量化分析价格、成交量&#xff0c;预测股票走势和强度&#xff0c;大部分指标都在股票软件中提供。 1. A…

SSM框架(四):SSM整合 案例 + 异常处理器 +拦截器

文章目录 一、整合流程图1.1 Spring整合Mybatis1.2 Spring整合SpringMVC 二、表现层数据封装2.1 问题引出2.2 统一返回结果数据格式 代码设计 三、异常处理器3.1 概述3.2 异常处理方案 四、前端五、拦截器5.1 概念5.2 入门案例5.3 拦截器参数5.4 拦截器链 一、整合流程图 1.1 S…

如何做一名合格的班主任

班主任是学生在校园内最直接的“家长”&#xff0c;担负着对学生全面管理和教育的责任。该如何才能成为一名合格的班主任呢&#xff1f; 一、具备扎实的专业知识 班主任是一名教师&#xff0c;扎实的专业知识是成为合格班主任的基本条件。在教学过程中&#xff0c;班主任要能够…

代码随想录算法训练营第三十七天 _ 贪心算法_738.单调自增的数字、968.监督二叉树

学习目标&#xff1a; 60天训练营打卡计划&#xff01; 学习内容&#xff1a; 738.单调自增的数字 听不懂的时候就到该动手了。必须要从后向前操作&#xff0c;才能把压力逐级传给最前面的这一位。入如&#xff1a;322 class Solution {// java中的String不能修改&#xf…

探索数据之美:深入学习Plotly库的强大可视化

1. 引言&#xff1a; Plotly 是一个交互性可视化库&#xff0c;可以用于创建各种漂亮的图表和仪表板。它支持多种编程语言&#xff0c;包括Python、R、JavaScript。在Python中&#xff0c;Plotly提供了Plotly Express和Graph Objects两个主要的绘图接口。 2. Plotly库简介&am…

SQL中left join、right join、inner join等的区别

一张图可以简洁明了的理解出left join、right join、join、inner join的区别&#xff1a; 1、left join 就是“左连接”&#xff0c;表1左连接表2&#xff0c;以左为主&#xff0c;表示以表1为主&#xff0c;关联上表2的数据&#xff0c;查出来的结果显示左边的所有数据&#…

visual Studio MFC 平台实现图像增强中Gray-level slicing,Bit-plane slicing,对比度拉伸三种方法

MFC 实现图像增强–分段式变换 本文使用visual Studio MFC 平台实现图像增强中的第三大类分段式变换中的三种方法&#xff0c;包括Gray-level slicing&#xff0c;Bit-plane slicing&#xff0c;对比度拉伸&#xff0e; 关于其他MFC单文档工程可参考 01-Visual Studio 使用MFC …

android https 证书过期

有的时候 我们android https 证书过期 &#xff0c;或者使用明文等方式去访问服务器 可能会碰到类似的 问题 &#xff1a; javax.net.ssl.SSLHandshakeException: Chain validation failed java.security.cert.CertPathValidatorException: Response is unreliable: its validi…

JavaScript类型判断:解密变量真实身份的神奇技巧

文章目录 1. typeof运算符2. instanceof运算符3. Object.prototype.toString4. Array.isArray5. 使用constructor属性6. 使用Symbol.toStringTag7. 使用is类型判断库8. 谨慎使用隐式类型转换结语 &#x1f389;JavaScript类型判断&#xff1a;解密变量真实身份的神奇技巧 ☆* o…

OpenTSDB(CVE-202035476)漏洞复现及利用

任务一&#xff1a; 复现环境中的命令注入漏洞。 任务二&#xff1a; 利用命令注入执行whoami&#xff0c;使用DNS外带技术获取结果 任务三&#xff1a;使用反弹shell&#xff0c;将漏洞环境中的shell反弹到宿主机或者vps服务器。 任务一&#xff1a; 1.搭建好环境 2.先去了…

Amazon CTO Werner Vogels:2024年及未来四大技术趋势预测

纵观历史&#xff0c;人类已经开发出各种工具和系统来增强自身能力。无论是印刷机还是装配线&#xff0c;这些创新拓宽了我们的能力范围&#xff0c;造就新的工作和职业&#xff0c;我们也不断适应着新生活。这种变化的速度在过去的一年里迅速加快&#xff0c;云技术、机器学习…

整体迁移SVN仓库到新的windows服务器

一、背景 公司原有的SVN服务器年代比较久远经常出现重启情况&#xff0c;需要把SVN仓库重新迁移到新的服务器上&#xff0c;在网上也搜到过拷贝Repositories文件直接在新服务器覆盖的迁移方案&#xff0c;但考虑到原有的操作系统和现有的操作系统版本不一致&#xff0c;SVN版本…

Redis缓存——Spring Cache入门学习

Spring Cache 介绍 Spring Cache 是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能。 Spring Cache 提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;例如&#xff1a; EHCacheCaffeineR…

springboot集成邮箱验证功能

准备工作 开启SMTP服务 前往你的邮箱网站&#xff0c;以网易邮箱为例&#xff0c;打开网易邮箱地址&#xff0c;登录你的邮箱&#xff0c;进入邮箱管理后台界面。点击“设置”》》“POP3/SMTP/IMAP”后&#xff0c;点击开启SMTP服务即可。 技术实现 Spring Boot 发送邮件验证…

java审计之java反序列化-CC链

介绍 序列化的本质是内存对象到数据流的一种转换&#xff0c;我们知道内存中的东西不具备持久性&#xff0c;但有些场景却需要将对象持久化保存或传输。 在Java工程中&#xff0c;序列化还广泛应用于JMX&#xff0c;RMI&#xff0c;网络传输&#xff08;协议包对象&#xff09…

vivado实现分析与收敛技巧4

执行建议 满足以下条件时 &#xff0c; 在建议运行轮次期间执行建议 &#xff1a; • 这些建议处于已启用 (ENABLED) 状态。 • 必须运行 APPLICABLE_FOR 阶段。 • 这些建议必须设置为 AUTO 。 执行建议时 &#xff0c; APPLIED 设置将会更新 &#xff0c; 如下图所示…

vue3动态加载音频文件,用于不同场景加载不同的文件

本文主要介绍如何在vue3中动态加载音频文件。 目录 前言静态加载动态加载import函数watch函数使用watch函数和import函数动态加载音频文件 前言 在vue3中&#xff0c;我们通常使用import xxx from xxxxxx来加载文件&#xff0c;但是如果我们需要加载哪些文件&#xff0c;是需要…

java数据结构(哈希表—HashMap)含LeetCode例题讲解

目录 1、HashMap的基本方法 1.1、基础方法&#xff08;增删改查&#xff09; 1.2、其他方法 2、HashMap的相关例题 2.1、题目介绍 2.2、解题 2.2.1、解题思路 2.2.2、解题图解 2.3、解题代码 1、HashMap的基本方法 HashMap 是一个散列表&#xff0c;它存储的内容是键…

Peter算法小课堂—差分与前缀和

差分 Codeforces802 D2C C代码详解 差分_哔哩哔哩_bilibili 一维差分 差分与前缀和可以说成减法和加法的关系、除法和乘法的关系、积分和微分的关系&#xff08;听不懂吧&#xff09; 给定数组A&#xff0c;S为A的前缀和数组&#xff0c;则A为S的差分数组 差分数组构造 现…

电子学会C/C++编程等级考试2021年06月(四级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:数字三角形问题 (图1) 图1给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 注意:路径上的每一步只能从一个数走到下一层上和它…