速通MySql

news2024/11/18 15:36:50

一、简介

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

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

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

相关文章

Postman如何导入和导出接口文件

本文介绍2种导出和导入的操作方法&#xff1a;一种是分享链接&#xff0c;导入链接的方式&#xff08;需要登录&#xff09;&#xff1b;另一种是导出json文件&#xff0c;再次导入。下面将详细介绍。 由于第一种分享链接&#xff0c;导入链接的方式需要登录&#xff0c;所以推…

项目实战之RabbitMQ死信队列应用

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 文章目录 &#x1f31f;架构图&#x…

开源 LLM 安全扫描器

Vigil 是一款开源安全扫描程序&#xff0c;可检测即时注入、越狱以及对大型语言模型(LLM) 的其他潜在威胁。 当攻击者使用专门设计的输入成功影响 LLM 时&#xff0c;就会出现即时注入。这导致 LLM 无意中实现了攻击者设定的目标。 ​ 我对 LLM 的可能性感到非常兴奋&#xff…

MFC、VC++操作excel后,excel程序进程无法正常退出的非暴力处理方法

先说处理方式 1、最low的方式&#xff1a;强制结束进程 //打开进程得到进程句柄 HANDLE hProcessOpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid); if(hProcess!NULL) { //结束进程 if (TerminateProcess(hProcess,0)){printf("结束进程成功\n");return 0;} }这种方式…

【Linux系统化学习】揭秘 命令行参数 | 环境变量

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 代码仓库&#xff1a;Gitee 目录 命令行参数 环境变量 PATH 查看PATH $PWD 查看环境变量PWD $HOME 查看系统支持的环境变量 获取环境变量 命令行参数 在C/C编程语言中我们有一个…

hls实现播放m3u8视频将视频流进行切片 HLS.js简介

github官网GitHub - video-dev/hls.js: HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.HLS.js is a JavaScript library that plays HLS in browsers with support for MSE. - GitHub - video-dev/hls.js: HLS.js is a JavaScript library …

Redis——某马点评day01——短信登录

项目介绍 导入黑马点评项目 项目架构 基于Session实现登录 基本流程 实现发送短信验证码功能 controller层中 /*** 发送手机验证码*/PostMapping("code")public Result sendCode(RequestParam("phone") String phone, HttpSession session) {// 发送短信…

2024 年综合网络安全审计清单

在网络威胁不断演变的时代&#xff0c;确保组织数据和系统的安全至关重要。 全面的网络安全审核清单可以在实现这一目标方面发挥关键作用。但是&#xff0c;什么才是有效的网络安全审核清单呢&#xff1f;以及如何对其进行定制以满足您组织的独特需求&#xff1f; 了解网络安…

Linux部署elasticsearch集群

文章目录 一、集群规划二、安装前准备(所有节点操作)创建数据目录修改系统配置文件/etc/sysctl.conf创建用户组设置limits.conf 三、初始化配置(在节点1上操作)下载安装包解压安装包修改jvm.options文件下配置的所占内存修改集群配置文件elasticsearch.yml将安装包传到另外两个…

Python将excel模板复制到新的excel中,然后插入新数据导出

import copy import datetime import numpy import time import openpyxl import pymssql import requests import json from requests_toolbelt import MultipartEncoder from urllib import parse import os # 要想使用路径相关功能需要导入 os 模块 from apscheduler.sched…

NXP iMX8M Plus Qt5 双屏显示

By Toradex胡珊逢 简介 双屏显示在显示设备中有着广泛的应用&#xff0c;可以面向不同群体展示特定内容。文章接下来将使用 Verdin iMX8M Plus 的 Arm 计算机模块演示如何方便地在 Toradex 的 Linux BSP 上实现在两个屏幕上显示独立的 Qt 应用。 硬件介绍 Verdin iMX8M Plu…

2024年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-B卷

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-B卷 2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-B卷A 模块基础设施设置/安全加固&#xff08;200 分&#xff09;A-1&#xff1a;登录安全加固&#xff08;Windows…

【漏洞复现】智跃人力资源管理系统GenerateEntityFromTable.aspx接口存在SQL注入漏洞 附POC

漏洞描述 智跃人力资源管理系统是基于B/S网页端广域网平台,一套考勤系统即可对全国各地多个分公司进行统一管控,成本更低。信息共享更快。跨平台,跨电子设备。智跃人力资源管理系统GenerateEntityFromTable.aspx接口处存在SQL注入漏洞,攻击者可通过该漏洞获取数据库中的信…

『 Linux 』环境变量

文章目录 &#x1f680;什么是环境变量&#x1f680;&#x1f680;查看环境变量&#x1f680;&#x1f579;️和环境变量有关的命令&#x1f579;️ &#x1f680;PATH环境变量&#x1f680;&#x1f579;️设置PATH环境变量&#x1f579;️ &#x1f680;HOME环境变量&#x1…

手敲单链表,简单了解其运行逻辑

1. 链表 1.1 结构组成 链表是一种物理存储结构上非连续存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。 链表的结构如下图所示&#xff0c;是由很多个节点相互通过引用来连接而成的&#xff1b;每一个节点由两部分组成&#xff0c;分别数据域&…

【LeetCode每日一题合集】2023.11.20-2023.11.26 (二叉树中的伪回文路径)

文章目录 53. 最大子数组和解法1——DP解法2——分治&#xff08;维护区间、类似线段树的思想&#xff09; 2216. 美化数组的最少删除数&#xff08;贪心&#xff09;2304. 网格中的最小路径代价1410. HTML 实体解析器&#xff08;模拟&#xff09;2824. 统计和小于目标的下标对…

iOS Class Guard 成功了,但无法区分差异

​ 我正在开发一个静态库&#xff0c;并使用 Polidea 的 iOS Class Guard 来混淆我的静态库。我按照步骤在项目的根路径中下载 obfuscate_project&#xff0c;更改其中所需的名称&#xff0c;最后在终端中运行 bash obfuscate_project。我收到一条消息&#xff0c;说我的构建成…

【漏洞复现】大华智慧园区综合管理平台deleteFtp接口远程命令执行

漏洞描述 大华智慧园区综合管理平台deleteFtp接口存在远程命令执行,攻击者可利用该漏洞执行任意命令,获取服务器控制权限。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益…

CMMI认证含金量高吗

一、CMMI认证含金量解答 CMMI&#xff0c;即能力成熟度模型集成&#xff0c;是由美国卡内基梅隆大学软件工程研究所开发的一种评估企业软件开发过程成熟度的模型。CMMI认证的含金量究竟高不高呢&#xff1f;答案是肯定的。CMMI认证被誉为软件开发行业的“金牌标准”&#xff0…

spring cloud gateway源码分析,一个请求进来的默认处理流程

1.前言 spring cloud gateway的基本组成和作用就不细赘述&#xff0c;此篇适合对此有一定了解的人阅读。 spring cloud gateway版本: Hoxton.SR1 spring cloud gateway的配置使用yml配置&#xff1a; server:port: 9527y#根据微服务名称进行动态路由的配置 spring:applicati…