MySQL学习-数据库创建-数据库增删改查语句-事务-索引

news2025/1/16 19:08:40

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 注意事项

  • 主键字段,在建表时,会自动创建主键索引。
  • 添加唯一约束时,数据库实际上会条件唯一索引。

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

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

相关文章

MySQL模糊查询再也不用like+%了

前言 倒排索引 全文检索 创建全文索引 使用全文索引 删除全文索引 小结 前言 我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效&#xff0c;但有时需求就是如此&#xff0c;类似这样的需求还有很多&#xff0c;例如&#xff0c;搜索引擎需要根基…

记录一个Invalid bound statement (not found)问题

SpringBootMyBatisPlus项目&#xff0c;非常简单&#xff0c;没有任何业务逻辑&#xff1a; 1. pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.…

Windows定时执行Python脚本

在Linux环境下我们可以使用crontab工具来定时的执行脚本&#xff0c;可以很轻松的管理各个虚拟环境下的py文件在Windows上可以使用任务计划程序来定时执行我们的脚本 关于这个的基本使用可以查看我前面的博客 https://blog.csdn.net/wyh1618/article/details/125725967?spm10…

单片机编程小错记录1:漏写串口中断服务函数

问题描述&#xff1a; 原本单独测试没问题的定时器程序&#xff0c;但在加上串口程序后出现了问题&#xff0c;发现定时器貌似没有在正常工作...... 问题发现&#xff1a; 程序如下&#xff1a; 该程序主要想实现的功能是&#xff1a; 1.串口在初始化时发送"welcome\r…

crossover软件2023跨电脑系统兼容工具好用吗?

CrossOver是一款系统兼容软件 让您可以在 Mac 和 Linux 系统上运行 Windows 应用&#xff0c;不必购买 Windows授权&#xff0c;不必重启系统&#xff0c;不必使用虚拟机。通过 CrossOver&#xff0c; 您可以从 dock 直接启动 Windows 应用&#xff0c;与您的 Mac 和 Linux 系统…

Java中this和super区别(面试题)

1.super 关键字可以理解为&#xff1a;父类的 2.可以用来调用的结构&#xff1a;属性、方法、构造器 3.super调用属性、方法&#xff1a; 3.1 我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式&#xff0c;显式的调用父类中声…

每日一练 | 华为认证真题练习Day54

1、现有一台交换机通过一个端口和对端设备的指定端口直连&#xff0c;但是该端口不转发任何报文&#xff0c;却可以通过接收BPDU来监听网络变化&#xff0c;那么该端口的角色应该是&#xff08;&#xff09;。 A. Root端口 B. Designated端口 C. Alternate端口 D. Disable端…

day1 计算机硬件基础

目录 课程回顾 嵌入式系统分层 ARM体系结构与接口技术 计算的组成 总线 CPU工作概述 课程回顾 嵌入式系统分层 操作系统的作用&#xff1a; 向下管理硬件、向上提供接口&#xff08;API&#xff09; Linux子系统&#xff1a; 进程管理&#xff1a;管理进程的创建、调度…

【MySQL数据库 | 第二篇】 启动与停止

目录 ​编辑 &#x1f914; 启动与停止&#xff1a; &#x1f642;1.WIN加R调用windows命令行&#xff0c;输入&#xff1a;services.msc &#x1f642;2.可以在cmd&#xff08;管理员模式&#xff09;中输入以下指令&#xff1a; &#x1f914; 启动MySQ后的操作步骤&…

Es elasticsearch 十九 kibana 可视化配置图表 及功能 集群部署

目录 Es kibana 可视化 下载zip 解压 bin/kibana.bat 启动 管理索引管理 吧logstash 存进来的数据 按照 xxx-* 方式 保存索引模式 通过 discove 配置可视化界面 图表数据实时刷新 时序图配置 饼图配置 表格数据配置 添加仪表盘 图表样例 使用后模拟绘制方法好看些 …

线程的相关函数pthread

一、线程相关函数 头文件&#xff1a;#include <pthread.h> 注意&#xff1a;在编译时注意加上-lpthread参数&#xff0c;以调用静态链接库。因为pthread并非linux系统的默认库。 1、pthread_create 函数声明&#xff1a;int pthread_create(pthread_t *thread, const…

这所院校复试只刷低分,有9人擦线竟直接放弃复试!

本期为大家整理唯一个处于东部发达地区入选“双一流建设”的原双非类的综合类大学-“宁波大学”的择校分析&#xff0c;这个择校分析专题会为大家结合&#xff1a;初试复试占比、复试录取规则&#xff08;是否公平&#xff09;、往年录取录取名单、招生人数、分数线、专业课难度…

kubelet源码分析 kuberuntime的syncpod、createSandbox/createContainer函数(三)

kubelet源码分析 kuberuntime的syncpod、createSandbox/createContainer函数&#xff08;三&#xff09; 上一篇介绍了killContainer容器部分。当kill后&#xff0c;就需要重新创建sandbox和container&#xff0c;今天介绍最后一部分&#xff0c;创建容器。 这篇也是整个上面的…

通达信自动包络线指标公式以及ATR通道指标

根据亚历山大埃尔德在其著作《以交易为生》中的描述&#xff0c;自动包络线的设计思路是将通道看作试穿衬衫一样&#xff0c;寻找那些穿起来既不过松也不过紧的衬衫&#xff0c;只让手腕和脖子露在外面。自动包络线能够适应最近的行情波动&#xff0c;只有在极端情况下&#xf…

修电脑屏幕记

21年的时候媳妇买了台联想小新16Pro&#xff0c;最近发现屏幕闪&#xff0c;查了查售后政策&#xff0c;好在屏幕质保两年。 找维修点 从高德地图里搜联想售后很正常吧&#xff01;看看图片带着Lenovo的图片&#xff0c;是不是感觉是官方售后&#xff1f;拨打电话打到的是总部…

AI生成的二维码,真的太好看了!

今天我们迫不及待要和大家分享一组图片。 这是一位二维码开发者——倪豪 Isle of Chaos&#xff0c;与几位同学和老师们一起&#xff0c;使用最新的AI技术生成的非常惊艳的图片。最重要的是&#xff0c;这些图片里面都暗藏了一个可识别的二维码&#xff01; 总之&#xff0c;…

回归分析处理

线性回归 最小二乘法 对于某数据量 有呈线性关系的输出量 &#xff0c;且 &#xff0c;现有对这些数据量的采集序列&#xff0c;这些采集量会存在随机误差&#xff0c;线性回归的目的便是找到保证使误差最小的情况下的回归系数 。 即通过下列方程组求 可利用最小二乘法&a…

SaaS行业的公司为什么都需要一个专业的知识库

随着云计算和人工智能技术的不断发展&#xff0c;SaaS&#xff08;Software as a Service&#xff09;模式已经成为了企业信息化转型的必备选择。SaaS 公司提供的服务可以帮助客户在不增加IT投资的情况下&#xff0c;获得更为高效灵活的IT解决方案。但随着客户数量和服务类型的…

Windows下的网络编程Winsock

文章目录 前言1、服务器下的Winsock1.1、构建编程环境:1.2、WSAData结构体1.3、WSAStartup初始化Winsock1.4、WSACleanup释放Winsock1.5、socket创建套接字1.6、bind绑定套接字&#xff0c;调用其分配IP地址和端口号1.7、listen监听套接字1.8、accept接受客户端连接请求1.9、cl…

k8s helm安装使用

1.前言 Helm 是一个 Kubernetes 包管理工具&#xff0c;它的作用是简化 Kubernetes 应用程序的部署和管理。Helm 允许您将 Kubernetes 应用程序打包为 chart&#xff0c;chart 是一组预定义的 Kubernetes 对象模板&#xff0c;包括 Deployment、Service、Ingress 等。使用 Hel…