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…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
