MySQL学习-数据库创建-数据库增删改查语句-事务-索引
MySQL学习
前言
SQL是结构化查询语言的缩写,用于管理关系数据库(RDBMS)中的数据。SQL语言由IBM公司的Donald Chamberlin和Raymond Boyce于20世纪70年代开发而来,是关系型数据库最常用的管理语言。
使用SQL语言可以实现关系型数据库中的数据处理、数据查询、数据管理以及数据安全等操作。SQL语言具有代码简洁易读的特点,也能够支持多种不同的查询操作,如联合查询、嵌套查询和排序查询等。
SQL语言的基础语法主要包括数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和事务控制语言(TCL)等。在实际应用中,我们通常使用工具,如MySQL、Oracle和Microsoft SQL Server等,来进行SQL语言的操作。
总的来说,SQL语言在关系型数据库管理中起着至关重要的作用,是大量的数据管理工作不可或缺的一种工具。
- 注意:
下面的SQL语句中 [ ]里的内容可看情况省略
1.DDL(数据库操作)
1.1 查询
1.1.1 查询所有数据库:
show databases;
1.1.2 查询当前数据库
select database();
1.2 使用
1.2.1 使用数据库
use 数据库名;
1.3 创建
1.3.1 创建数据库
create database 数据库名;
2.如果不存在才创建
create database if not exists 数据库名;
1.4 删除
1.4.1 删除数据库
drop database 数据库名;
1.4.2 如果存在才删除
drop database if exists 数据库名;
2 DDL(表操作语言)
2.1 创建表
create table 表名(字段1 字段类型 [约束] [comment 字段1注释],……字段1 字段类型 [约束] [comment 字段2注释]
) [comment 表注释]
2.2 约束
- 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
- 目的:保证数据库中数据的正确性、有效性和完整性。
2.3 数据类型
2.3.1 数值类型
2.3.2 字符串类型
2.3.3 日期类型
2.4 查询
2.4.1 查询当前数据库的所有表
show tables;
2.4.2 查询表结构
desc 表名;
2.4.3 查询建表语句
show create table 表名;
2.5 修改
2.5.1 添加字段
alter table 表名 add 字段名 类型(长度)[comment 注释] [约束];
2.5.2 修改字段类型
alter table 表名 modify 字段名 新数据类型(长度);
2.5.3 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束];
2.5.4 删除字段
alter table 表名 drop column 字段名;
2.5.5 修改表名
rename table 表名 to 新表名;
2.5.6 删除表
drop table [if exists] 表名;
3 DML(数据操作语言)
3.1 insert语法
3.1.1 指定字段添加数据
inster into 表名 (字段1,字段2) values (值1,值2);
3.1.2 全部字段添加数据
insert into 表名 values (值1,值2,...);
3.1.3 批量添加数据(指定字段)
insert into 表名(字段名1,字段名2)values(值1,值2),(值1,值2);
3.1.4 批量添加数据(全部字段)
insert into 表名 values (值1,值2,....),(值1,值2,....)...;
3.2 delete语法
3.2.1 删除数据
delete from 表名 [where 条件];
3.3 update语法
3.3.1 修改数据
update 表名 字段1=值1,字段2=值2,……[where 条件]
4 DQL(数据查询语言)
4.1 DQL-基本查询
4.1.1 查询多个字段
selce 字段1,字段2,··· from 表名;
4.1.2 查询所有字段(通配符)
select * from 表名;
4.1.3 设置别名
select 字段1 as 别名1, 字段2 as 别名2,··· from 表名;
4.1.4 去除重复记录
select distinct 字段列表 from 表名;
4.2 DQL-条件查询
4.2.1 条件查询
select 字段列表 from 表名 where 条件;
4.3 DQL-聚合查询
4.3.1 聚合查询
select 聚合函数(字段) from 表名;
4.4 分组查询
4.4.1 分组查询
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
eg1:根据性别分组,统计男性和女性员工的数量
select gender,count(*) from tb_emp group by gender;
eg2:先查询入职时间在‘2015-01-01’(包含)以前的员工,并对结果根据职位分组,获得员工数量大于等于2是的职位(分组后的条件要用having)
select job ,count() as 数量 from tb_emp where entrydate<=‘2015-01-01’
group by job having count() >=2;
4.4.2 流程控制语句
原数据:
eg1:if(条件,true,fasle)
select if(gender=1,'男','女') 性别, count(*) 数量 from 表名 group by gender;
eg2:ifnull(字段,显示)
select name,ifnull(job,'未定义职业') 职业 from 表名;
eg3:case 字段,when 值1 then 显示1 when 值2 then 显示2 …else 显示 end
select name 姓名, case job when 1 then '班主任' when 2 then '讲师' when 3 then '学生' else '教官' end 职业 from 表名;
4.5 DQL-排序查询
4.5.1 条件查询
select 字段列表 from 表名 [where 条件列表] [group by 分组字段] order by 字段1 排序方式,字段2 排序方式 ;
排序方式
- ASC 升序(默认)
- DESC 降序
4.6 DQL-分页查询
4.6.1 分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;
5 多表查询
5.1 内连接查询 A∩B
5.1.1 隐式内连接
select 字段列表 from 表1,表2 where 条件...;
5.1.2 显式查询
select 字段列表 from 表1 [inner] join 表2 on 连接条件...;
5.2 外连接
5.2.1 左外连接 (A+A∩B)
select 字段列表 from 表1 left [outer] join 表2 on 连接条件;
5.2.2 右外连接 (B+A∩B)
select 字段列表 from 表1 right [outer] join 表2 on 连接条件...;
5.3 子查询
介绍:SQL语句中嵌套select语句,称为嵌套查询,又称子查询
select * from t1 where 字段 = (select 字段 from t2 ... );
select * from 表名 where (字段1,字段2) = (select 字段1,字段2 from 表名 [where 条件]);
6 事务
6.1 概念
事务 是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败。
6.2 事务控制
- 开始事务
start transaction; 或 begin ;
- 提交事务
commit;
- 回滚事务
rollback;
7 索引
7.1 概念
索引是帮助数据库高效获取数据的数据结构。
7.2 语法
7.2.1 创建索引
create [unique] index 索引名 on 表名(字段名,...);
7.2.2 查看索引
show index from 表名;
7.2.3 删除索引
drop index 索引名 on 表名;
7.2.4 注意事项
- 主键字段,在建表时,会自动创建主键索引。
- 添加唯一约束时,数据库实际上会条件唯一索引。
相关文章:

MySQL学习-数据库创建-数据库增删改查语句-事务-索引
MySQL学习 前言 SQL是结构化查询语言的缩写,用于管理关系数据库(RDBMS)中的数据。SQL语言由IBM公司的Donald Chamberlin和Raymond Boyce于20世纪70年代开发而来,是关系型数据库最常用的管理语言。 使用SQL语言可以实现关系型数据库中的数据处理、数据…...
浏览器渗透攻击-渗透测试模拟环境(9)
介绍了浏览器供给面和堆喷射技术。 “客户端最流行的应用软件是什么,大家知道吗?” 这个简单的问题,你当然不会放过:“当然是浏览器,国内用得最多的估计还是 IE 浏览器,其实 360安全浏览器遨游啥的也都是基于IE内核的。” “OK,浏览器是客户端渗透攻击的首要目标,目前IE…...

MySQL数据库基础(基础命令详解)
1、数据库操作 1.1、显示当前的数据库 SHOW DATABASES; 1.2、创建数据库 CREATE DATABASE IF NOT EXISTS 库名; 1.3、使用数据库 USE 库名; 1.4、删除数据库 DROP DATABASE IF EXISTS 库名; 说明:数据库删除之后,内部看不到对应…...

企业培训直播场景下嘉宾连线到底是如何实现的?
企业培训直播场景下,进行音视频连线的嘉宾,都拥有面向学员教学的权限,支持多位老师/专家异地同堂授课,那么,这种嘉宾连线到底是如何实现的? 企业培训,如何做到不受时间和地点限制,实…...

五、JSP05 分页查询及文件上传
五、JSP 分页查询及文件上传 5.1 使用分页显示数据 通过网络搜索数据时最常用的操作,但当数据量很大时,页面就会变得冗长,用户必须拖动才能浏览更多的数据 分页是把数据库中需要展示的数据逐页分步展示给用户 以分页的形式显示数据ÿ…...

一起看 I/O | 借助 Google Play 管理中心价格实验,优化定价策略
作者 / Google Play 产品经理 Phalene Gowling 今年 Google I/O 大会上的 "通过 Google Play Commerce 提升收益" 演讲重点为您介绍了深度集成至 Google Play 的最新创收工具。此工具专注于帮您优化定价策略。为您的产品或内容确定合适的价格是实现更出色的用户生命周…...
hexview 命令行操作使用说明
hexview 命令行操作使用说明 命令行操作基础格式 hexview.exe infile [option] -o outfile提取部分内容 hexview.exe app.hex /AR:0X200000-0X303404 /s /XI -o app1.hex/AR:指定提取的范围。(也可以使用/CR,它可以指定多个范围࿰…...

vue3+element plus,使用分页total修改成中文
vue3element plus,使用分页total修改成中文 使用element plus的分页功能 el-pagination 的时候,total属性显示是英文 这是我建的一个新项目,总数显示的Total 1000 我们的需求是显示中文,共 1000 条 这个就很尴尬,组件…...

RPC、HTTP、DSF、Dubbo,每个都眼熟,就是不知道有什么联系?
一、HTTP 和 RPC 首先,http 与 rpc 有什么区别这个问题不太严谨,因为这俩就不是一个层级的东西。 HTTP 这个大家太熟悉了吧?日常接触最多的恐怕就是各种http协议的接口了。 没错,http它是一个协议。 其他在这里就不打算铺开了…...

java.security.MessageDigest的用法
java.security.MessageDigest MessageDigest的含义 message含义是:消息,信息 digest的含义是 digest 必应词典 n.摘要;文摘;概要;汇编 v.消化;领会;领悟;理解 海词 n. 摘要 vt. 消化;理解 vi…...

3.2 分析特征间的关系
3.2 分析特征间的关系 3.2.1 绘制散点图 scatter()例子1:绘制2000-2017年各季度国民生产总值散点图例子2:使用不同颜色不同形状的点,绘制2000-2017年各产业各季度国民生产总值散点图 3.2.2 绘制折线图 plot()例子1:绘制2000-2017年…...
Numpy学习
Numpy官方手册:Array objects — NumPy v1.24 Manual 创建数组 1.1 从现有数据创建 重要类型 np.ndarray # 判断是否可以迭代 注意0维标量不可以遍历 print(__iter__ in dir(np.ndarray) and __getitem__ in dir(np.ndarray))np.array(object, dtypeNone) objec…...

IDC机房相电压与线电压的关系
380V电动机(三相空调压缩机)的电流计算公式为:Ⅰ=额定功率(1.732额定电压功率因数效率)。 功率因数是电力系统的一个重要的技术数据。功率因数是衡量电气设备效率高低的一个系数。功率因数低,说…...

chatgpt赋能python:Python如何设置输入的SEO
Python如何设置输入的SEO Python是一种高级的编程语言,具有容易上手、可扩展和开源等特点,因此在软件开发过程中得到广泛的应用。然而,如果您想让您的Python项目在搜索引擎上获得更好的排名和流量,您需要考虑如何设置输入的SEO。…...

Spring Cloud Alibaba — Nacos 构建服务注册中心
文章目录 Nacos Server下载启动登录创建命名空间 Nacos Client启动样例Nacos 服务发现配置项 集成 OpenFeign 远程接口调用添加 OpenFeign 依赖开启 EnableFeignClients 注解编写远程服务接口远程接口调用 集成 Sentinel 熔断降级添加 Sentinel 依赖开启 Sentinel 熔断降级编写…...

4.2 Spark SQL数据源 - 基本操作
一、默认数据源 案例演示读取Parquet文件 查看Spark的样例数据文件users.parquet 1、在Spark Shell中演示 启动Spark Shell 查看数据帧内容 查看数据帧模式 对数据帧指定列进行查询,查询结果依然是数据帧,然后通过write成员的save()方法写入HDF…...

事件相关功能磁共振波谱技术(fMRS)
导读 质子磁共振波谱(MRS)是一种非侵入性脑成像技术,用于测量不同神经化学物质的浓度。“单体素”MRS数据通常在几分钟内采集,然后对单个瞬态进行平均,从而测量神经化学物质浓度。然而,这种方法对更快速的神经化学物质的时间动态…...

跨境电商客户服务五步法
互联网技术的革新与升级对商务客服产生了巨大的影响,过去由在线客服与客户直接电联的单一服务形式被全渠道客服系统所替代。在电子商务时代,商家与客户之间的互动变得尤为重要:一方面,卖家通过分析客户喜好及消费趋向来针对性处理…...
hadoop环境配置及HDFS配置
环境与配置 ubuntu 20.04.6 /centos8hadoop 3.3.5 指令有部分不一样但是,配置是相同的 安装步骤 创建一个虚拟机,克隆三个虚拟机,master内存改大一点4G,salve内存1Gj修改主机名和配置静态ip(管理员模式下)) hostnamectl set-hostname node1 # 修改主机名 sudo passwd root …...
HTML中 meta的基本应用
meta 标签的定义 meta 标签是 head 部分的一个辅助性标签,提供关于 HTML 文档的元数据。它并不会显示在页面上,但对于机器是可读的。可用于浏览器(如何显示内容或重新加载页面),搜索引擎(SEO)或…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...