MySQL教程-SQL

news2025/1/14 18:35:35

SQL(Structured Query Language)结构化查询语言,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。

语法

  1. SQL语句可以单行多行书写,以;为结束标记
  2. SQL可以使用空格缩进来增强语句的可读性
  3. SQL单行注释(-- 注释内容 或 # 注释内容)和多行注释(/* 注释内容 */)
  4. MySQLSQL中的语句不区分大小写(建议关键字大写)

分类

SQL语句,按其功能可划分为4类:DDLDMLDQL、*DCL

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库、表、字段)
DMLData Manipulation Language数据操作语言,用来对数据表中的数据进行增、删、改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Langage数据控制语言,用来创建数据库用户,控制数据库的访问权限

DDL

DDL(Data Definition language),数据定义语言,用来定义数据库对象(数据库、表、字段)。
数据库操作常见命令:

# 查询所有数据库
show databases;

# 查询当前数据库
select database();

# 创建数据库
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

# 删除数据库
drop database [if exists] 数据库名;

# 切换数据库
use 数据库名;

数据表操作常见命令

# 查询当前数据库中所有表
show tables;

# 查看表结构 (可查看到指定表的字段、字段类型、是否为null,是否存在默认值等信息)
desc 表名;

# 查看建表语句 (查看指定表的建表语句,而部分默认值参数在建表时未指定也会查询到,如存储引擎、字符集等)
show create table 表名;

# 创建表
create table 表名(
	字段1 字段1类型 [comment 注释],
	字段2 字段2类型 [comment 注释],
	...
) [comment 表注释];

# 修改表名
alter talbe 旧表名 rename to 新表名;

# 删除表
drop table [if exists] 表名;

# 清空表 (先删除表,然后重新创建表)
truncate table 表名;

# 添加字段
alter table 表名 add 字段名 字段类型 [comment 注释] [约束];

# 修改数据类型
alter table 表名 modify 字段名 字段类型;

# 修改字符名和字段类型
alter table 表名 change 旧字段名 新字段名 字段类型 [comment 注释] [约束];

# 删除字段
alter table 表名 drop 字段名;

DML

DML(Data Manipulation language),数据操作语言,用来对数据表的数据记录进行增、删、改操作。

  • 添加数据 (INSERT)
  • 修改数据(UPDATE)
  • 删除数据(DELETE)
    添加数据常用命令:
# 给全部字段添加数据 
insert into 表名 values(1,2, ...);

# 给指定字段添加数据
insert into 表名 (字段1, 字段2, ...) values (1,2, ...);

# 批量插入数据
insert into 表名 values(1,2, ...)(1,2, ...), ...;
insert into 表名 (字段1, 字段2, ...) values(1,2, ...)(1,2, ...), ...;

注意:

  1. 插入数据时,指定的字段顺序需与值的顺序一一对应
  2. 字符串和日期类型的数据应该包含在引号中
  3. 插入的数据大小,应在字段的规定范围内

修改数据常用命令:

update 表名 set 字段1 =1, 字段2 =2, ... [where 条件];

注意: 修改数据时,where条件可以没有,没有表示修改整张表的数据

删除数据常用命令:

delete from 表名 [where 条件];

注意:

  1. 删除数据时,where条件可以没有,没有表示删除整张表的数据
  2. 不能删除某一个字段的值

DQL

DQL(Data Query language),数据查询语言,用来查询数据库中表的记录。其结构语法如下:

select 
	字段列表
from 
	表名列表
where 
	条件列表
group by
	分组字段列表
having
	分组后条件列表
order by
	排序字段列表
limit
	分页参数

可将上述语法进行拆分,分为:

  • 基础查询(不带任何掉件)
  • 条件查询(where)
  • 聚合函数(count、max、min、avg、sum)
  • 分组查询(group by)
  • 排序查询(order by)
  • 分页查询(limit)
    执行顺序
    在这里插入图片描述
基础查询
# 查询全部字段
select * from 表名;

# 查询指定字段
select 字段1, 字段2, ... from 表名;

# 查询并给字段设置别名
select 字段1 [as] 别名1, 字段2 [as] 别名2, ... from 表名;

# 去重
select distinct 字段列表 from 表名;
条件查询

语法

select 字段列表 from 表名 where 条件列表;

条件

运算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
between … and …在某个范围内(含最小、最大值)
in(…)在其列表中,多选一
like 占位符模糊匹配(_匹配单个字符,*匹配人一个字符)
is null是 null
is not null不是 null
and 或 &&且(多个条件同时成立)
or 或 ||或(多个条件任意一个成立)
not 或 !
聚合函数

聚合函数即将一列数据作为一个整体,进行纵向计算。
语法

select 聚合函数(字段列表) from 表名;

常见聚合函数

函数功能
count统计数量
max计算最大值
min计算最小值
avg计算平均值
sum求和

注意: null值不参与任何的聚合函数计算

分组查询

语法

select 字段列表 from 表名 [where 条件] group by 分组字段列表 [having 分组后过滤条件];

wherehaving区别

  • 执行时机不同。where是分组前进行过滤,不满足即不参与分组;having是分组后对结果进行过滤
  • 判断条件不同。where不能对聚合函数进行判断,而having可以

注意:

  1. 分组后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
  2. 执行顺序:where > 聚合函数 > having
  3. 支持多字段分组
排序查询

排序分为升序(ASC)和降序(DESC),默认为升序
语法

select 字段列表 from 表名 order by 字段1 排序方式, 字符2 排序方式, ...

注意:

  1. 若是升序,可以不指定排序方式ASC
  2. 若是多字段排序,当前面字段值相同后,才会根据后面的字段进行排序
分页查询

语法

select 字段列表 from 表名 limit 起始索引,查询记录数;

注意:

  1. 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数
  2. 分页查询是数据库的方言,不同的数据库有不同的实现。MySQL中是 limit
  3. 若查询第一页数据,起始索引可以省略

DCL

DCL(Data Control language),数据控制语言,用来管理数据库用户、控制数据表的访问权限。

管理用户
# 创建用户
create user '用户名'@'主机名' identified by '密码';

# 修改密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

# 删除用户
drop user '用户名'@'主机名'

注意:

  1. 在MySQL中通过用户名@主机名的方式来标识唯一用户
  2. 主机名可通过%匹配
权限控制

MySQL中定义多种权限,常用以下几种:

权限说明
all, all privileges所有权限
select查询数据权限
insert插入数据权限
update修改数据权限
alter修改表权限
drop删除数据库/表/视图权限
create创建数据库/表权限

以上只罗列了常见的几种权限,其它权限可参考官方文档。

# 查询用户拥有的权限
show grants for '用户名'@'主机名';

# 授予权限
grant 权限列表 on 数据库.数据表 to '用户名'@'主机名';

# 撤销权限
remove 权限列表 数据库.数据表 to '用户名'@'主机名';

注意:

  1. 多个权限之间,可用;进行分割
  2. 授权时,数据库和数据表名可使用*进行匹配,表示所有

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

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

相关文章

景略JL5104-N048C 可P2P代替RTL8304MB

话不多说&#xff0c;直接上参数&#xff0c;可免费申请样片上机测试。 JL5104是一个带有RMIl接口的4端口快速以太网交换机。 它支持四级优先级队列的QoS功能&#xff0c;保证了一些实时网络应用的性能。 JL5104集成了一个2k入口地址查找表和一个4路关联散列算法&#xff0c;该…

ios xcode 15 PrivacyInfo.xcprivacy 隐私清单 查询应用使用的隐私api

1.需要升级mac os系统到13 兼容 xcode 15.1 2.升级mac os系统到14 兼容 xcode 15.3 3.选择 New File 4.直接搜索 privacy 能看到有个App Privacy 5.右击Add Row 7.直接选 Label Types 8.选中继续添加就能添加你的隐私清单了 苹果官网文档

稀碎从零算法笔记Day15-LeetCode:判断子序列

跑样例的时候LC炸了&#xff0c;以为今天回断更 题型&#xff1a;字符串、双指针 链接&#xff1a;392. 判断子序列 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述&#xff08;此题建议结合样例理解&#xff09; 给定字符串 s 和 t &#xf…

鸿蒙Socket通信示例(TCP通信)

前言 DevEco Studio版本&#xff1a;4.0.0.600 参考链接&#xff1a;OpenHarmony Socket 效果 TCPSocket 1、bind绑定本地IP地址 private bindTcpSocket() {let localAddress resolveIP(wifi.getIpInfo().ipAddress)console.info("111111111 localAddress: " …

性能测试总结 —— 测试流程篇!

本文主要介绍下性能测试的基本流程&#xff0c;性能测试从实际执行层面来看&#xff0c;测试的过程一般分为这么几个阶段&#xff0c;如下图&#xff1a;       下面分别介绍下每个阶段具体需要做什么&#xff1a; 一、性能需求分析&#xff1a; 性能需求分析是整个性能…

【PLC】现场总线和工业以太网汇总

1、 现场总线 1.1 什么是现场总线 1&#xff09;非专业描述&#xff1a; 如下图&#xff1a;“人机界面”一般通过以太网连接“控制器(PLC)”&#xff0c;“控制器(PLC)”通过 “现场总线”和现场设备连接。 2&#xff09;专业描述&#xff08;维基百科&#xff09; 现场总线…

MTK安卓开发板_联发科开发板评估套件_安卓主板硬件开发

在介绍开发板之前&#xff0c;让我们先来区分一下核心板和开发板的区别。核心板是一种集成度高、功能完整的计算模块&#xff0c;搭载系统&#xff0c;简化了外围接口&#xff0c;体积尺寸相对较小&#xff0c;主要适用于嵌入式系统。而开发板由核心板底板组成&#xff0c;提供…

探索直播美颜SDK的未来发展方向:虚拟现实、增强现实与混合

如今&#xff0c;随着虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和混合现实&#xff08;MR&#xff09;等技术的不断发展&#xff0c;直播美颜SDK的未来发展方向也将面临着更多的可能性和挑战。今天我将与大家共同探讨直播美颜SDK在虚拟现实、增…

国科大网络行为学导论代码作业--更新中

一、Xray安装 参考自&#xff1a;Xray的安装与使用&#xff08;超详细&#xff09;_xray使用教程-CSDN博客 下载网址&#xff1a;Releases chaitin/xray GitHub 解压 双击安装 生成证书 cd到xray目录&#xff0c;生成证书 复制链接 然后cd到xray目录 .\xray_windows_amd6…

Ubuntu 14.04:PaddleOCR基于PaddleHub Serving的服务部署(失败)

目录 一、为什么使用一键服务部署 二、安装 paddlehub 1.8 2.1 安装前的环境准备 2.2 安装paddlehub 1.8 2.2.1 安装paddlehub 2.2.2 检测安装是否成功 2.2.3 检查本地与远端PaddleHub-Server的连接状态 2.2.4 测试使用 2.3 其他 2.3.1 如何卸载、pip常用命令、常见…

WRF模型运行教程(ububtu系统)--II.ARWpost安装

一、ARWpost简介 ARWpost 是一个把 WRF 结果转为 GrADS 或 Vis5D 可以辨识的数据格式的软件&#xff0c;就是WRF运行结束以后&#xff0c;把WRF的结果变成咱们平时比较常用的数据格式。 二、下载和安装ARWpos_V3 1.ARWpos_V3安装前准备 # 进入Build_WRF文件夹 cd Build_WRF …

代码随想录刷题笔记-Day33

1. 跳跃游戏 55. 跳跃游戏https://leetcode.cn/problems/jump-game/ 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 tru…

【海贼王的数据航海】排序——概念|直接插入排序|希尔排序

目录 1 -> 排序的概念及其运用 1.1 -> 排序的概念 1.2 -> 常见的排序算法 2 -> 插入排序 2.1 -> 基本思想 2.2 -> 直接插入排序 2.2.1 -> 代码实现 2.3 -> 希尔排序(缩小增量排序) 2.3.1 -> 代码实现 1 -> 排序的概念及其运用 1.1 -&g…

【数字调制】OQPSK调制与解调【附MATLAB代码】

文章来源&#xff1a;微信公众号&#xff1a;EW Frontier 关注可了解更多的雷达、通信、人工智能相关代码。 QPSK信号 QPSK信号与BPSK信号的调制方法相同&#xff0c;仅调制阶数不同&#xff0c;其表达式为&#xff1a; 上式中分别表示I、Q两路的基带信息序列&#xff0c;取值…

Xcode remove the package dependency

Xcode Version 15.2 (15C500b) &#x1f914;️ 想知道直接右键&#xff0c;这个 Delete 为什么是禁用状态 推荐一下刚上线的 App 熊猫小账本&#xff0c;里面有用到这篇博客讲的内容 熊猫小账本 一个简洁的记账 App&#xff0c;用于记录日常消费开支收入&#xff0c;使用 iCl…

Pulsar消息路由深入剖析

一、概述 大数据背景下&#xff0c;分区应该是所有组件必备的基本条件&#xff0c;否则面对海量数据时无论是计算还是存储都容易遇到瓶颈。跟其他消息系统一样&#xff0c;Pulsar通过Topic将消息数据进行业务层面划分管理&#xff0c;同时也支持Topic分区&#xff0c;通过将多…

挑战杯 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习多目标跟踪 …

WRF模型安装教程(ububtu系统)-- III.WRF和WPS模型的安装

六、WRF模型的安装 # 进入Build_WRF文件夹 cd Build_WRF # 下载WRFV3.9.1 wget https://www2.mmm.ucar.edu/wrf/src/WRFV4.0.TAR.gz # 解压WRF安装包并进入 tar -zxvf WRFV4.0.TAR.gz cd WRF # 安装WRF ./configure 出现如下选项&#xff1a; 选择34&#xff0c; 这里是让你选…

React进阶(Redux,RTK,dispatch,devtools)

1、初识Redux 是React最常用的集中状态管理工具&#xff0c;类似于Vue中的Pinia(Vuex)&#xff0c;可以独立于框架运行 作用&#xff1a;通过集中管理的方式管理应用的状态 案例-实现一个计数器 实现步骤&#xff1a; Redux管理数据的流程&#xff1a; state:一个对象&…

nRF52832——唯一 ID 与加密解密

nRF52832——唯一 ID 与加密解密 唯一 ID 概念唯一 ID 作用读取唯一 ID 唯一 ID 用于加密TEA 加密算法唯一 ID 的加密和解密 唯一 ID 概念 唯一 ID 作用 nRF52xx 微控制器提供一组 64 位的唯一 ID 号&#xff0c;这个唯一身份标识所提供的 ID 值对任意一个 nRF52xx 微控制器&…