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)或…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
MySQL基本操作(续)
第3章:MySQL基本操作(续) 3.3 表操作 表是关系型数据库中存储数据的基本结构,由行和列组成。在MySQL中,表操作包括创建表、查看表结构、修改表和删除表等。本节将详细介绍这些操作。 3.3.1 创建表 在MySQL中&#…...
Redis专题-实战篇一-基于Session和Redis实现登录业务
GitHub项目地址:https://github.com/whltaoin/redisLearningProject_hm-dianping 基于Session实现登录业务功能提交版本码:e34399f 基于Redis实现登录业务提交版本码:60bf740 一、导入黑马点评后端项目 项目架构图 1. 前期阶段2. 后续阶段导…...
CMake系统学习笔记
CMake系统学习笔记 基础操作 最基本的案例 // code #include <iostream>int main() {std::cout << "hello world " << std::endl;return 0; }// CMakeLists.txt cmake_minimum_required(VERSION 3.0)# 定义当前工程名称 project(demo)add_execu…...
