SQL 基础语法(一)
文章目录
- 1. SQL 分类
- 2. 数据库操作
- 3. 数据表操作
- 4. 增删改操作
- 5. 查询操作
- 6. 用户管理
- 7. 权限控制
1. SQL 分类
2. 数据库操作
#创建数据库
create database if not exists test;#查询所有数据库
show databases;#查询当前数据库
select database();#删除数据库
drop database if exist test;#使用数据库
use test;
3. 数据表操作
#创建表
create table db_user (id int comment '编号',name varchar(50) comment '姓名',gender char(1) comment '性别'
) comment '用户表注释';#查询当前数据库的所有表
show tables;#查询表结构
desc db_user;#查询指定表的建表语句
show create table db_user;#修改数据类型
alter table db_user modify id char(10);#修改字段名和数据类型
alter table db_user change name age int comment '年龄';#删除字段
alter table db_user drop id;#修改表名
alter table db_user rename to new_user;#删除表
drop table db_user;#删除表,并重新创建该表
truncate table db_user;
char 和 varchar 都属于字符串的数据类型,char 长度固定,效率高,varchar 长度可伸缩,但效率低,对于长度固定的字符串(如性别),我们可直接选择 char 来存储。
在删除表时,表中的全部数据也会被删除!
4. 增删改操作
#给指定字段添加数据
insert into db_user(id, name) values(2, 'zxe');#给全部字段添加数据
insert into db_user values(2, 'zxe', '女');#批量添加数据
insert into db_user(id, name) values(2, 'zxe'), (3, 'ldh');#全部字段批量添加数据
insert into db_user values(2, 'zxe', '女'), (3, 'ldh', '男');#修改数据
update db_user set name = 'zyz', gender = '女' where id = 3;#删除数据
delete from db_user where id = 2;
注意:
① 插入数据时,指定的字段顺序需要与值的顺序一一对应;
② 字符串和日期型数据应包含在引导中;
③ 插入的数据大小应在字段的规定范围内。
5. 查询操作
#查询多个字段
select id, name from db_user;#查询全部字段
select * from db_user;#根据条件查询数据,顺序不可颠倒
select * from db_user
where gender = '女'
group by address
having count(*) >= 3
order by id desc
limit 10, 10; #设置别名,as可以省略
select id as uId, name as uName from db_user;
select d.id, d.name from db_user d;#去除重复记录
select distinct * from db_user;
① 条件查询,where
② 聚合函数,count、max、min、avg、sum
null 是不参与聚合函数的计算的!
③ 分组查询,group by
#根据性别分组,统计男女的数量
select gender, count(*) emp_count from emp
group by gender;#查询年龄小于45的员工,并根据工作地址进行分组,获取员工数量大于等于3的工作地址
select address, count(*) emp_count from emp
where age < 45
group by address
having count(*) >= 3;
where 与 having 的区别:
执行时机不同,where 是分组之前进行过滤,不满足 where 条件的数据将不参与分组,而 having 是对分组之后的结果进行过滤;
判断条件不同,where 不能对聚合函数进行判断,而 having 可以。
执行顺序 where > 聚合函数 > having,分组是为了统计,所以查询的结果一般为分组字段和聚合函数(统计结果),查询其他字段无任何意义。
④ 排序查询,order by
#asc升序排序,desc降序排序,默认为升序
select * from emp order by id asc, age desc;
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序!
⑤ 分页查询,limit
#查询第2页数据,每页展示10条记录
select * from emp limit 10, 10;#查询第一页数据,每页展示10条记录
select * from emp limit 0, 10;#查询性别为男,姓名为三个字,且年龄在20~40岁以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同的按入职时间升序排序
select * from emp
where gender = '男' and name like '___' and age between 20 and 40
order by age, entrydata
limit 5;
第一个参数为起始索引,第二个参数为要查询的记录数,起始索引最小为 0,如果查询的是第一页数据,起始索引可以省略。
6. 用户管理
#查询用户
use mysql;
select * from user;#创建用户
create user '用户名'@'主机名' identified by '密码';#修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';#删除用户
drop user 
;
7. 权限控制
#查询权限
show grants for '用户名'@'主机名';#授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';#撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
注意:
① 多个权限之间,使用逗号分隔;
② 授权时,数据库名和表名可以使用 * 进行通配,代表所有。
相关文章:

SQL 基础语法(一)
文章目录 1. SQL 分类2. 数据库操作3. 数据表操作4. 增删改操作5. 查询操作6. 用户管理7. 权限控制 1. SQL 分类 2. 数据库操作 #创建数据库 create database if not exists test;#查询所有数据库 show databases;#查询当前数据库 select database();#删除数据库 drop databas…...

Python酷库之旅-第三方库Pandas(190)
目录 一、用法精讲 881、pandas.Index.is_方法 881-1、语法 881-2、参数 881-3、功能 881-4、返回值 881-5、说明 881-6、用法 881-6-1、数据准备 881-6-2、代码示例 881-6-3、结果输出 882、pandas.Index.min方法 882-1、语法 882-2、参数 882-3、功能 882-4、…...

Spring学习笔记_19——@PostConstruct @PreDestroy
PostConstruct && PreDestroy 1. 介绍 PostConstruct注解与PreDestroy注解都是JSR250规范中提供的注解。 PostConstruct注解标注的方法可以在创建Bean后在为属性赋值后,初始化Bean之前执行。 PreDestroy注解标注的方法可以在Bean销毁之前执行。 2. 依赖…...

《云计算网络技术与应用》实训8-1:OpenvSwitch简单配置练习
1.按《云计算网络技术与应用》实训5-1进行环境配置,安装好OVS 2.开启OVS虚拟交换机 3.创建一个网桥br0 4.查看网桥列表 5.把ens34网卡连接到网桥br0上 6. 查看网桥br0所有端口 7.列出网卡ens34连接的所有网桥列表 8.查看OVS网络状态 9.将网桥br0上连接的网卡ens34删…...

【架构艺术】服务架构稳定性的基础保障
一个产品随着不断研发,其服务架构的复杂度会越来越高。随着产品的用户体量变大,为了保证产品能够长线运营,就需要保证整个服务架构的稳定性。因此,今天这篇文章,就从实操的角度,粗浅讨论一下,服…...

Python中使用pip换源的详细指南
在Python开发过程中,我们经常需要安装各种第三方库。pip是Python的包管理工具,用于安装和管理Python库。然而,由于网络原因,有时访问默认的Python包索引(PyPI)可能会比较慢。这时,我们可以通过更…...

一站打包国际智慧教育自主学练软件资源
👑🌟一站打包国际智慧教育自主学练软件与资源平台,欧美学校正在使用,不出国就可以学👒🎈 💛 多元学练:我们正在使用的自主学练软件是美国学校一线教师使用的,涵盖了英语…...

用股票API获取高频行情数据来实现数据分析和量化
用股市API获取高频行情来实现数据分析和量化 使用股市API是一种有效的方式来获取高频行情数据,以便进行行情数据分析和量化交易。Python是一种广泛应用于金融数据领域的编程语言,它提供了丰富的库和工具,可用于与股市API进行交互。通过调用股…...

C++ | Leetcode C++题解之第526题优美的排列
题目: 题解: class Solution { public:int countArrangement(int n) {vector<int> f(1 << n);f[0] 1;for (int mask 1; mask < (1 << n); mask) {int num __builtin_popcount(mask);for (int i 0; i < n; i) {if (mask &am…...

【RabbitMQ】01-RabbitMQ
1. MQ MQ可以有更好的并发性。 2. 安装 docker run \-e RABBITMQ_DEFAULT_USERitheima \-e RABBITMQ_DEFAULT_PASS123321 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network hm-net\-d \rabbitmq:3.8-management3. 结构 4. 数据…...

使用 ADB 在某个特定时间点点击 Android 设备上的某个按钮
前提条件 安装 ADB:确保你已经在计算机上安装了 Android SDK(或单独的 ADB)。并将其添加到系统环境变量中,以便你可以在命令行中运行 adb。 USB调试:确保 Android 设备已启用 USB 调试模式。这可以在设备的“设置” -…...

【随笔】对于开发者而言,你对什么事情感到失落?亦或者你上一次感到有成就感是什么时候?你遇到过怎样格局的老板?
这是博主的一篇随笔文章,一起和大家聊聊工作上的一些事和一些感受,我觉得我们这个群体,同样有很多优秀的、幽默的人。只不过有些表达和沟通并不是我们擅长的,包括博主也是,这是我们的劣势和缺点。没关系,这…...

【LeetCode】两数之和返回两数下标、数组形式整数相加
主页:HABUO🍁主页:HABUO 1.两数之和返回两数下标 题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输…...

Kubernetes中的secrets存储
华子目录 2.secrets2.1secrets功能介绍2.2secrets的创建2.2.1从文件创建2.2.2编写yaml文件 2.3secret的使用案例2.3.1将secret挂载到volume中2.3.2设置子目录映射secret密钥2.3.3将secret设置为环境变量2.3.4存储docker register的认证信息spec.imagePullSecrets[] 2.secrets …...

使用 Elastic、OpenLLMetry 和 OpenTelemetry 跟踪 LangChain 应用程序
作者:来自 Elastic Bahubali Shetti Langchain 应用程序的使用正在增长。构建基于 RAG 的应用程序、简单的 AI 助手等的能力正在成为常态。观察这些应用程序更加困难。考虑到现有的各种选项,本博客展示了如何将 OpenTelemetry 检测与 OpenLLMetry 结合使…...

【论文复现】VALL-E:语音合成的新里程
📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐、摄影的一位博主。 📗本文收录于论文复现系列,大家有兴趣的可以看一看。 📘相关专栏C语言初阶、…...

java项目之微服务在线教育系统设计与实现(springcloud)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的闲一品交易平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 微服务在线教育系统设计与…...

P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法
讲解视频: P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法 知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法 一、算法、顺序结构程序设计任务分析 知识要点:算法…...

Vue2——单页应用程序路由的使用
一.单页应用程序与多页应用程序之间的比较 二.单页的应用场景 系统类网站 / 内部网站 / 文档类网站 / 移动端网站 三.路由的介绍 1. 什么是路由 路由是一种映射关系 2. Vue中的路由是什么 路径和组件的映射关系 四.VueRouter的使用 5个基础步骤(固定) …...

变分法(Calculus of Variations)
变分法(Calculus of Variations)是数学的一个分支,主要研究函数的极值问题,即寻找一个函数,使得某个泛函达到最大值或最小值。泛函是将函数作为变量的函数,与通常的函数不同,泛函的变量是函数本…...

包括 Nginx、Gateway、Nacos、Dubbo、Sentinel、RocketMQ 和 Seata 的调用链路描述:
以下是一个更详细和清晰的客户端请求在 Spring Cloud Alibaba 框架中,包括 Nginx、Gateway、Nacos、Dubbo、Sentinel、RocketMQ 和 Seata 的调用链路描述: 1. 客户端请求 用户在浏览器或移动应用中发起请求(例如,获取用户信息的…...

【P2-1】ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式介绍与AT指令介绍
前言:本文对ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式进行介绍;以及AT指令介绍,包括基础AT指令,WIFI功能AT指令、TCP/IP相关AT指令、常用AT指令实例进行介绍。 ESP8266 WIFI模块的接线及固件烧写可参考我的这篇博客:正点原子ATK-ESP8266 WIFI模块接线及固件…...

《C#语法一篇通》,20万字,48小时阅读,持续完善中。。。
本文摘录了C#语法的主要内容,接近20万字。 所有鸡汤的味道都等于马尿! 如果你相信任何所谓的鸡汤文章,智商堪忧。 计算机语言没有”好不好“之说,骗子才会告诉你哪个语言好,学好任何一本基础语言(C&#…...

[node] 2 fs文件系统模块
前言 fs模块是Node.js官方提供的内置Api,用来操作文件的模块。它提供了一系列的属性和方法,来满足用户对文件的操作需求 目标 1 掌握fs中文件处理方法readFile、writeFile等的基础用法 2 node如何安装 3 一些常用的终端快捷键 #mermaid-svg-rPp2nDYrW33gLvuI {font-family:&q…...

【react】基础知识点学习
1. 创建项目 npm install -g create-react-app npx create-react-app my-app cd my-app npm startindex.js为入口文件,App.js为根组件。 如何将react应用挂载在页面上? 将App组件渲染到id为root的DOM元素中 2. JSX JSX是|avaScript和XML(HTML)的缩写…...

D4--哈夫曼树和不等式
看文先三连,养成好习惯~看文先三连,养成好习惯~看文先三连,养成好习惯~ 目录 知识点: 堆排序: 优先队列: 定义:(默认大顶堆) 入队: 出队: 取队顶&…...

详解RabbitMQ三种队列类型
RabbitMQ 是一个强大的消息队列系统,它提供了多种队列类型以满足不同的使用需求。本文将探讨三种主要队列类型:经典队列、仲裁队列和流式队列,并讨论它们的区别和选型建议。 经典队列(Classic Queues) 简介ÿ…...

openGauss数据库-头歌实验1-3 创建和管理模式
一、创建和使用模式 (一)任务描述 本关任务:基于 openGauss 学习创建模式的相关知识。 (二)相关知识 为了完成本关任务,你需要掌握:1.openGauss 的常用操作,2.SQL 创建模式相关语…...

森林火灾检测数据集(猫脸码客 第233期)
森林火灾检测数据集 森林火灾是一种具有巨大破坏性的自然灾害,每年在全球范围内造成巨大损失。为了有效应对森林火灾,及早发现和快速响应是至关重要的。传统上,森林火灾的检测主要依赖于人工巡逻和卫星遥感技术。然而,这些方法存…...

LeetCode100之找到字符串中所有字母异位词(438)--Java
1.问题描述 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例1 输入: s "cbaebabacd", p "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 …...