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…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
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": …...
