MySQL数据库基础第一篇(SQL通用语法与分类)
文章目录
- 一、SQL通用语法
- 二、SQL分类
- 三、DDL语句
- 四、DML语句
- 1.案例代码
- 2.读出结果
- 五、DQL语句
- 1.DQL-基本查询
- 2.DQL-条件查询
- 3.DQL-聚合函数
- 4.DQL-分组查询
- 5.DQL-排序查询
- 6.DQL-分页查询
- 7.DQL语句-执行顺序
- 1.案例代码
- 2.读出结果
- 六、DCL语句
- 1.DCL-管理用户
- 2.DCL-权限控制
- 1.案例代码
在当今数据库驱动的世界里,SQL(结构化查询语言)作为一门管理数据的语言,对开发者而言极为关键。不论你是在做后端开发、数据科学,或者是设计和维护数据库,一个深入的SQL基础知识对你都大有裨益。
在这篇博客中,我将为你提供一个全套的SQL教程,涵盖了从最基础的SQL通用语法,到更复杂的DDL(数据定义语言),DML(数据操作语言)以及DQL(数据查询语言)等。每一部分都包含了相应的图解以及示例代码,以便于你更好地理解和掌握SQL语句的使用。
不论你是初学者还是有一些SQL使用经验的开发者,我希望这篇博客都能对你有所帮助。让我们一起深入到SQL的世界里,掌握这门强大的数据管理语言。
一、SQL通用语法

二、SQL分类

三、DDL语句



四、DML语句




1.案例代码
代码如下(示例):
INSERT 表_name VALUES (1,'小明',19,92,85,95),(2,'小红',18,82,75,95),(3,'小王',21,66,88,55),(4,'小聪',20,92,84,95),(5,'小东',20,98,95,65);
UPDATE 表_name SET name = '张三',age = 25 where ID=1;
UPDATE 表_name SET name = '王五',age = 35 where ID=3;
UPDATE 表_name SET name = '李四',age = 28 where ID=5;
2.读出结果

五、DQL语句


1.DQL-基本查询

2.DQL-条件查询

3.DQL-聚合函数

注意:null值不参与所有聚合函数运算。
4.DQL-分组查询

5.DQL-排序查询

6.DQL-分页查询

7.DQL语句-执行顺序

1.案例代码
代码如下(示例):
create table emp
(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '姓名',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(18) comment '身份证号',workaddress varchar(50) comment '工作地址',entrydate date comment '入职时间'
) comment '员工表';insert into emp(id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '1', '柳岩', '女', 20, '123456789012345678', '北京', '2000-01-01'),(2, '2', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01'),(3, '3', '韦一笑', '女', 38, '123456789012345670', '上海', '2005-08-01'),(4, '4', '赵敏', '女', 18, '123456789012345670', '北京', '2009-12-01'),(5, '5', '小昭', '女', 16, '123456789012345678', '上海', '2007-07-01'),(6, '6', '杨逍', '男', 28, '12345678901234567X', '北京', '2006-01-01'),(7, '7', '范瑶', '男', 40, '123456789012345670', '北京', '2005-05-01'),(8, '8', '黛绮丝', '女', 38, '123456789012345670', '天津', '2015-05-01'),(9, '9', '范凉凉', '女', 45, '123456789012345678', '北京', '2010-04-01'),(10, '10', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01'),(11, '11', '张士诚', '男', 55, '123456789012345670', '江苏', '2015-05-01'),(12, '12', '常遇春', '男', 32, '123456789012345670', '北京', '2004-02-01'),(13, '13', '张三丰', '男', 88, '123456789012345678', '江苏', '2020-11-01'),(14, '14', '灭绝', '女', 65, '123456789012345670', '西安', '2019-05-01'),(15, '15', '胡青牛', '男', 70, '12345678901234567X', '西安', '2018-04-01'),(16, '16', '周芷若', '女', 18, null, '北京', '2012-06-01');
- ------------------------------------ -> 查询需求 <- ------------------------------------------------ 基本查询-- 1,查询指定字段 name ,woekno , age 返回select name,workno,age from emp;-- 2,查询指定所有字段 返回select id, workno, name, gender, age, idcard, workaddress, entrydate from emp;select * from emp;-- 查询所有员工的工作地址,起别名select workaddress as '工作地址' from emp;-- 查询所有员工的工作地址(不要重复)select distinct workaddress as '工作地址' from emp;-- 条件查询-- 1,查询年龄等于 88 的员工select * from emp where age = 88;-- 2,查询没有身份证的员工信息select * from emp where idcard is null;-- 3,查询年龄在 15 到 20 岁之间的员工select * from emp where age >=15 && age <=20 ;-- 4,查询性别为女年龄小于 25 岁的员工select * from emp where gender = '女' && age < 25;-- 5,查询年龄等于20或40或18岁的员工select * from emp where age iN(18,20,40);-- 6,查询性别为两个字员工select * from emp where name like '__';-- 7.查询身份证号码最后一位为X的员工信息select * from emp where idcard like '%X';-- 聚合函数-- 1,统计该企业员工数量select count(*) from emp;
select count(idcard) from emp;-- 2,统计该企业员工的平均年龄select avg(age) from emp;-- 3,统计该企业西安地区员工的年龄之和select sum(age) from emp where workaddress = '西安';-- 分组查询-- 1,根据性别分组,统计男员工与女员工的数据select gender, count(*) from emp group by gender;-- 2,根据性别分组,统计男员工与女员工的平均成绩select gender, avg(age) from emp group by gender;-- 3,调查年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址select workaddress, count(*) from emp where age<=45 group by workaddress;-- 排序查询-- 1,根据性别分组,统计男员工与女员工的数据select * from emp order by age asc ;-- 2,根据入职时间对公司的员工,进行降序排序select * from emp order by entrydate desc ;-- 3,根据年龄对公司的员工进行升序排序,如果年龄相同,再根据入职时间进行降序排序select * from emp order by age asc , entrydate desc ;-- 分页查询-- 1,查询第一页的员工数据,每页展示10条记录select * from emp limit 0,10;-- 2,查询第二页的员工数据,每页展示10条记录select * from emp limit 10,10;
2.读出结果
– 1,查询指定字段 name ,woekno , age 返回

– 2,查询指定所有字段 返回

– 查询所有员工的工作地址,起别名

– 查询所有员工的工作地址(不要重复)

– 1,查询年龄等于 88 的员工

– 2,查询没有身份证的员工信息

– 3,查询年龄在 15 到 20 岁之间的员工

– 4,查询性别为女年龄小于 25 岁的员工

– 4,查询年龄等于20或40或18岁的员工

– 6,查询性别为两个字员工

– 7.查询身份证号码最后一位为X的员工信息

– 聚合函数
– 1,统计该企业员工数量

– 2,统计该企业员工的平均年龄

– 3,统计该企业西安地区员工的年龄之和

– 分组查询
– 1,根据性别分组,统计男员工与女员工的数据

– 2,根据性别分组,统计男员工与女员工的平均成绩

– 3,调查年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址

– 分组查询
– 1,根据年龄对公司的员工进行升序排序

– 2,根据入职时间对公司的员工,进行降序排序

– 3,根据年龄对公司的员工进行升序排序,如果年龄相同,再根据入职时间进行降序排序

– 分页查询
– 1,查询第一页的员工数据,每页展示10条记录

– 2,查询第二页的员工数据,每页展示10条记录

六、DCL语句

1.DCL-管理用户

2.DCL-权限控制


1.案例代码
代码如下(示例):
-- 创建用户 itcast ,只能够在当前主机localhost访问,密码123456;create user 'itcast'@'localhost' identified by '123456';-- 创建用户 heima ,可以在任意主机访问数据库,密码123456;create user 'heima'@'%' identified by '123456';-- 修改用户 heima 密码,为 1234 ;alter user 'heima'@'%' identified with mysql_native_password by '1234';-- 删除用户 'itcast'@'localhost'用户drop user 'itcast'@'localhost';-- 查询权限show grants for 'heima'@'%';-- 授予权限grant all on itcast.* to 'heima'@'%';-- 撤销权限revoke all on itcast.*from 'heima'@'%';
相关文章:
MySQL数据库基础第一篇(SQL通用语法与分类)
文章目录 一、SQL通用语法二、SQL分类三、DDL语句四、DML语句1.案例代码2.读出结果 五、DQL语句1.DQL-基本查询2.DQL-条件查询3.DQL-聚合函数4.DQL-分组查询5.DQL-排序查询6.DQL-分页查询7.DQL语句-执行顺序1.案例代码2.读出结果 六、DCL语句1.DCL-管理用户2.DCL-权限控制1.案例…...
【Qt学习笔记】(一)初识Qt
Qt学习笔记 1 使用Qt Creator 新建项目2 项目代码解释3 创建第一个 Hello World 程序4 关于内存泄漏问题5 Qt 中的对象树6 关于 qDebug()的使用7 使用其他方式创建一个 Hello World 程序(编辑框和按钮方式)8 关于 Qt 中的命名规范…...
YIA主题如何关闭新版本升级提示?WordPress主题怎么取消升级提醒?
前两天YIA主题发布了升级到2.8版本,新增了一些功能,优化调整修复了一些功能,但是这些功能调整幅度不大,加上boke112百科使用的YIA主题已经进行了很多方面的个性化修改,所以就懒得升级了,但是每次进入WordPr…...
消息队列的应用场景
消息队列的应用场景 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,Ze…...
Arcgis10.3安装
所需软件地址 链接:https://pan.baidu.com/s/1aAykUDjkaXjdwFjDvAR83Q?pwdbs2i 提取码:bs2i 1、安装License Manager 点击License Manager.exe,默认下一步。 安装完,点击License Server Administrator,停止服务。…...
用Python和 Cryptography库给你的文件加密解密
用Python和 Cryptography库给你的文件加密解密 用Python和 Cryptography库给你的文件加把安全锁。 先介绍与加密解密有关的几个基本概念。 加密(Encryption):加密是将明文转换为密文的过程,使得未经授权的人无法读懂。 解密&a…...
element-ui button 仿写 demo
基于上篇 button 源码分享写了一个简单 demo,在写 demo 的过程中,又发现了一个小细节,分享一下: 1、组件部分: <template><buttonclass"yss-button"click"handleClick":class"[ty…...
Maya------创建多边形工具
配合导入图像使用 Tab键可以删除一个点! 模型不能超过4边面!多切割工具进行连接! 15.maya常用命令5.创建多边形工具 反转 双显 挤出_哔哩哔哩_bilibili...
SQL分组统计条数时,不存在组类型,如何显示条数为0
首先有张表 CREATE TABLE person (id int NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,type int DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;表里很简单三条数据: INSERT INT…...
通过日期计算星期函数(C语言版)
测试源代码: #include <stdio.h>int getDayOfWeek(int year, int month, int day) {if (month < 3) {month 12;year--;}int q day;int m month;int K year % 100;int J year / 100;int dayOfWeek (q 13 * (m 1) / 5 K K / 4 J / 4 - 2 * J) % …...
配置支持 OpenAPI 的 ASP.NET Core 应用
写在前面 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 本文记录如何配置基于Swagger 的 ASP.NET Core 应用程序的 OpenAPI 规范。 需要从NuGet 安装 Swashbuckle.AspNetCore 包 代码实现 var builder WebApplicati…...
前端自己整理的学习面试笔记
简介 以下是本人一年多整理的前端学习笔记,现汇总分享给大家,很多问题都是面试必问的 更多学习资源,可以点击我获取更多 1 js数据类型 原始类型: null undefined number string boolean Symbol BigInt 引用类型: 对…...
jQuery html的使用
jquery中的html方法可以获取和设置标签的html内容 var $div $("div")// 获取标签div的html内容alert($div.html())console.log($div.html()) .html: 设置标签的html内容,之前的内容会清除(只会显示 CSDN) // 设置标签的html内容&…...
锦上添花!特征选择+深度学习:mRMR-CNN-BiGRU-Attention故障识别模型!特征按重要性排序!最大相关最小冗余!
适用平台:Matlab2023版及以上 特征选择方法:"最大相关最小冗余"(Maximal Relevance and Minimal Redundancy,简称MRMR)是一种用于特征选择的方法。该方法旨在找到最相关的特征集,同时最小化特征…...
C++ QT入门2——记事本功能实现与优化(事件处理+基本控件)
C QT入门2——记事本功能优化(事件处理基本控件) 一、记事本功能优化编码乱码问题QComboBox下拉控件QString、string、char * 间的数据转化编码问题解决整合 光标行列值显示记事本打开窗口标题关闭按钮优化—弹窗提示快捷键设计 二、☆ QT事件处理事件处…...
《Lua程序设计》-- 学习10
环境(Environment) 具有动态名称的全局变量 全局变量的声明 由于Lua语言将全局变量存放在一个普通的表中,所以可以通过元表来发现访问不存在全局变量的情况。 正如前面所提到的,我们不允许值为nil的全局变量,因为值为…...
Linux内核编译-ARM
步骤一、下载源码及交叉编译器后解压 linux kernel官网 ARM GCC交叉编译器 步骤二、安装软件 sudo apt-get install ncurses-dev sudo apt-get install flex sudo apt-get install bison sudo apt install libgtk2.0-dev libglib2.0-dev libglade2-dev sudo apt install libs…...
开源编辑器:ONLYOFFICE文档又更新了!
办公软件 ONLYOFFICE文档最新版本 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF&#…...
第3章 文件类型和目录结构
第3章 文件类型和目录结构 在这这章之前我们先学习一个前面使用过的命令 ls 查看文件ls 命令格式: [rootbogon redhat]# ls --helpUsage: ls [OPTION]... [FILE]...List information about the FILEs (the current directory by default).Sort entries alphabeti…...
前端构建变更:从 webpack 换 vite
现状 这里以一个 op (内部运营管理用)项目为例,从 webpack 构建改为 vite 构建,提高本地开发效率,顺便也加深对 webpack 、 vite 的了解。 vite 是前端构建工具,使用 一系列预配置进行rollup 打包&#x…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
