当前位置: 首页 > news >正文

SQL常用语句(基础)大全

SQL语句的类型
  • 1.DDL
    • 1.库
    • 2.表
  • 2.DML
    • 1.插入数据 insert inot
    • 2.删除数据 delete / truncate
    • 3.修改数据 update set
  • 3.DQL
    • 1.无条件查询
    • 2.查询 什么开始 到什么结束
    • 3.指定条件查询
      • 1.单个条件 ro in
      • 2.多个条件 and
      • 4.查询不为NULL值 is not null ,为NULL值 is null
      • 5.模糊查询 like
      • 6.去除重复记录查询 distinct
      • 7.排序查询 order by
        • 1.单条件
        • 2.多条件
      • 8.聚合函数
        • 1.计算和 sum
        • 2.计算最大值 max
        • 3.计算最小值 min
        • 4.计算平均值 avg
        • 5.计算个数 count
      • 9.分组查询 group by
      • 10.分页查询
      • 11.内连接查询
      • 12.外连接查询?
      • 13.子查询
  • 4.DCL
    • 1.管理用户
      • 1.添加用户
      • 2.删除用户
      • 3.修改密码
      • 4.查询所有用户
    • 2.权限管理
      • 1.权限管理
      • 2.授予权限
      • 3.撤销权限

1.DDL

DDL是数据定义语言,主要是对数据库和数据表的操作

1.库

--创建库
create database 库名;
--创建库时判断库是否存在,不存在则创建
create database if not exists 库名;
--查看所有数据库
show databases;
--使用指定数据库
use 库名;
--查看当前指定数据库包含的数据表
show tables;
--查看数据库的结构定义信息
show create database 库名;
--删除数据库
drop database 库名;
--修改数据库的字符集为utf8
alter database 库名 character set utf8;

2.表

--创建表
create table 表名(
字段1 类型1,
字段2 类型2,
字段3 类型3,
...........
);
--查看表结构
desc 表名;
--查看创建表的SQL语句
show create table 表名;
--修改表名
alter table 表名 rename to 新的表名;
--添加一个新的字段
alter table 表名 add 字段; 字段类型;
--修改字段名
alter table 表名 rename column 字段名 to 新的字段名;
--修改字段类型(注意类型修改前后数据是否兼容)
alter table 表名 modify column 字段名 新的字段类型;
--删除一个字段
alter table 表名 drop 字段名;
--删除表
drop table 表名;
--删除表时判断表是否存在,若存在则删除
drop table if exists 表名;

2.DML

DML是数据操作语言,主要是对数据表的操作

1.插入数据 insert inot

--有多少个字段,就要写多少个值一一对应的
insert into 表名 values(值1,值2,值3...值n);
--此方法需要写出所有字段,并一一对应插入值
insert into 表名(字段1,字段2...字段n) values(值1,值2...值n);

2.删除数据 delete / truncate

--删除表中所有数据
delete from 表名;
--删除表中指定的数据
delete from 表名 where 字段 = 值;
--删除表中所有数据(先删除整张表,然后创建一张一样的空表,此方法更高效)
truncate table 表名;

3.修改数据 update set

--无限制条件的修改,会修改整张表
update 表名 set 字段 = 值;
--有限制条件的修改,只修改特定数据
update 表名 set 字段 = 值 where 条件(字段 = 值);

3.DQL

DQL是数据查询语言,主要就是select配合其他限制条件的关键字进行查询

1.无条件查询

--查询表中所有数据
select *from 表名;

2.查询 什么开始 到什么结束

--查询users表中年龄在18~30岁之间的记录
--方式1 between..and..
select * from users where age between 18 and 30;
--方式2 &&
select * from users where age>=18 && age<=30;
--方式3 and
select * from users where age>=18 and age<=30;

3.指定条件查询

1.单个条件 ro in
--查询users表中年龄为18,20,30岁的记录
--方式1 or
select *from users where age=18 or age=20 or age=30;
--方式2 in
select *from users where age in(18,20,30);
2.多个条件 and
--查询users表中年龄为17,性别为男,名字为王冬的记录
select * from users where age=17 and sex='男' and name='王冬'; 
4.查询不为NULL值 is not null ,为NULL值 is null
--查询users表中序号不为空的记录
select * from users where id is not null;
--查询user表中序号为空的记录
select *from users where id is null;
5.模糊查询 like
--查询users表中姓名第一个字为李的记录
select *from users where name like '李%';--查询users表中姓名第二个字为李的记录
select *from users where name like '_李%';--查询users表中姓名含有李字的记录
select *from users where name like '%李%';--查询users表中姓名是两个字的记录
select *from users where name like '__';
6.去除重复记录查询 distinct
--查询users表中所在城市不相同的记录
--select distinct 字段 from 表名;select distinct city from users;
7.排序查询 order by
1.单条件
--查询users表中记录,并以年龄升序排序
select * from users order by age; 默认升序--查询users表中记录,并以年龄降序排序  desc降序
select * from users 
order by age desc;
2.多条件

只有当第一个排序条件值一样,才会执行第二个排序条件

--查询users表中记录,并体育成绩降序,年龄降序
select *from users order by PE desc,age desc;
8.聚合函数
1.计算和 sum
select sum(字段) as sum from 表名;
2.计算最大值 max
select max(字段) as max from 表名;
3.计算最小值 min
select min(字段) as min from 表名;
4.计算平均值 avg
select avg(字段) as avg from 表名;
5.计算个数 count
select count(字段) as count from 表名;
9.分组查询 group by
--查询users表中的记录,按照性别分组,查询男,女的考试成绩平均分select sex,avg(result) from users group by sex;--查询users表中的记录,按照性别分组,分别查询男、女的考试成绩平均分,人数select sex, avg(result),count(id) from users group by sex;--查询users表中的记录, 按照性别分组,分别查询男、女的成绩成绩平均分,人数 要求:分数低于60分的人,不参与分组
select sex, avg(result),count(id) from users where result> 60 group by sex; --查询users表中的记录,按照性别分组,分别查询男、女的考试成绩平均分,人数 要求:分数低于60分的人,不参与分组,分组之后,人数要大于2个人select sex,avg(result),count(id) from users where result > 60 group by sex having count(id)>2;
10.分页查询
--查询users表中的前10行条记录
select * from users limit 10;
--查询users表中第2~11条记录 (从第5条记录开始累加10条记录)
select * from users limit 4,10;
--查询users表中第5~17条记录 (从第5条记录开始累加13条记录)
select * from users limit 4,13;
11.内连接查询

如果查询数据的来源来自多张表,则必须对这些表进行连接查询

--语法1 (隐式内连接)
select 字段1,字段2...
from 表1,表2...
where 过滤条件;--语法2 (显式内连接)
select 字段1,字段2...
from 表1 inner join 表2 ...
on 过滤条件;
12.外连接查询

左外连接:是表1和表2的交集再并上表1的其他数据

右外连接:是表1和表2的交集再并上表2的其他数据

--左外连接
select 字段1,字段2..
from 表1 left (outer) join 表2 on 过滤条件;
--右外连接
select 字段1,字段2..
from 表1 right (outer) join 表2 on 过滤条件;
13.子查询

查询语句中嵌套查询语句

-- 查询最大的年龄,左边条件是什么右边必须返回一样的
select * from user where age=(select max(age) from user);

4.DCL

数据控制语言:用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视

1.管理用户

1.添加用户
create user '用户名'@'主机名' identified by '密码';
2.删除用户
drop user '用户名'@'主机名';
3.修改密码
USE mysql;
UPDATE USER SET PASSWORD=PASSWORD(‘密码’) WHERE User=’用户名’ and Host=’IP’;
FLUSH PRIVILEGES;
--将root的密码改为root
update user set password=password('root') where user='root' and host=’localhost’;
FLUSH PRIVILEGES;
4.查询所有用户
-- 查询用户
-- 1、切换到mysql数据库
USE mysql;
-- 2、查询user表
SELECT *FROM USER;

2.权限管理

1.权限管理
show grants for '用户名'@'主机名';
2.授予权限
--语法
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';--授予faker用户所有权限,在任意数据库任意表上
grant all on *.* to 'faker'@'localhost';
3.撤销权限
--语法
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
--撤销faker用户对tests数据库中city数据表的权限
revoke update on tests.city from 'faker'@'localhost';

相关文章:

SQL常用语句(基础)大全

SQL语句的类型 1.DDL 1.库2.表 2.DML 1.插入数据 insert inot2.删除数据 delete / truncate3.修改数据 update set 3.DQL 1.无条件查询2.查询 什么开始 到什么结束3.指定条件查询 1.单个条件 ro in2.多个条件 and4.查询不为NULL值 is not null ,为NULL值 is null5.模糊查询 li…...

计算和可视化相对湿度结果

了解如何确定 CFD 模型中的相对湿度。 了解相对湿度 大气是干燥空气和水蒸气的混合物&#xff0c;每一种的压力之和等于蒸气压。相对湿度是指空气中的水分量与空气在特定温度下可以容纳的最大水分量之比。它通常以百分比表示。它的范围从 0&#xff08;干燥空气&#xff09;到…...

uniapp-vue3(下)

关联链接&#xff1a;uniapp-vue3&#xff08;上&#xff09; 文章目录 七、咸虾米壁纸项目实战7.1.咸虾米壁纸项目概述7.2.项目初始化公共目录和设计稿尺寸测量工具7.3.banner海报swiper轮播器7.4.使用swiper的纵向轮播做公告区域7.5.每日推荐滑动scroll-view布局7.6.组件具名…...

一起学习Firtran: Fortran中的流程控制与操作符

流程控制语句 在计算机编程中&#xff0c;控制程序流程是算法设计中的一个核心概念&#xff0c;它使得程序能够根据特定条件执行不同的操作或重复执行某段代码。这显著增强了计算机算法相对于简单数学公式的功能和灵活性。 if语句 在单个 if 语句中只有当测试表达式&#xff0…...

Sonic:开源Go语言开发的高性能博客平台

Sonic&#xff1a;一个用Go语言开发的高性能博客平台 简介 Sonic&#xff0c;一个以其速度如声速般快速而命名的博客平台&#xff0c;是一个用Go语言开发的高性能博客系统。正如其名字所暗示的&#xff0c;Sonic旨在提供一个简单而强大的博客解决方案。这个项目受到了Halo项目…...

SpringBoot教程(十四) SpringBoot之集成Redis

SpringBoot教程&#xff08;十四&#xff09; | SpringBoot之集成Redis 一、Redis集成简介二、集成步骤 2.1 添加依赖2.2 添加配置2.3 项目中使用之简单使用 &#xff08;举例讲解&#xff09;2.4 项目中使用之工具类封装 &#xff08;正式用这个&#xff09;2.5 序列化 &…...

RSI和CCI指标组合:如何评估需求供应区?昂首资本实战指南

在市场分析中&#xff0c;分笔成交点数量提供了一个有价值的视角&#xff0c;帮助我们识别需求和供应区。通过这些数据&#xff0c;我们可以假设供需区域的参数与主要振荡器中的区域参数类似。以RSI和CCI为例&#xff0c;这些指标不仅能够反映市场的超买和超卖情况&#xff0c;…...

PTPVT 插值说明

文章目录 PTPVT 插值说明 PTPVT 插值说明PVT Hermite插值PVT 三次多项式插值PT 插值Sin轨迹测试结果PVT Hermite插值结果PVT 三次多项式插值结果PT 插值结果 用户轨迹测试结果PVT Hermite插值结果PT 插值结果 PTPVT 插值说明 PT模式&#xff1a; 位置-时间路径插值算法。 PVT模…...

Spring MVC和servlet

1.Spring MVC是Spring框架的一个扩展 2.Spring MVC工作流程 1、用户发送请求至前端控制器DispatcherServlet。 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)&#xff0c;生成处理器对象及…...

java下载文件流,不生成中间文件。

java下载文件流&#xff0c;不生成中间文件。 代码设计&#xff1a;代码实现 代码设计&#xff1a; 从前端获取的数据经过后端加工后&#xff0c;生成文件流&#xff0c;并返回前端&#xff0c;&#xff08;不生成中间文件&#xff0c;注意内存&#xff0c;记得关闭流&#xf…...

计算机专业考研 408 学科学习方法

计算机专业考研 408 学科涵盖数据结构、计算机组成原理、操作系统和计算机网络四门核心课程&#xff0c;内容多且难度大。但只要掌握科学的学习方法&#xff0c;便能化繁为简&#xff0c;稳步提升。以下为大家详细介绍 408 学科的学习方法。 一、基础夯实阶段&#xff1a;全面…...

mapper文件的解释

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.ruoyi.system.mapper.Jianai…...

常见协议的高危软件漏洞信息

HTTP 协议 协议 | 软件 | 漏洞编号 | 漏洞描述 Apache Log4j CVE-2021-45105 | Apache Log4j拒绝服务攻击漏洞 XWiki Platform CVE-2023-26477 | XWiki Platform存在安全漏洞&#xff0c;该漏洞源于可以通过URL请求参数结合其他参数注入任意脚本宏 Microsoft Windows CVE-20…...

Mediatek Android13 ROM定制

目录 1、系统签名 2、默认关闭WIFI 3、默认关闭Bluetooth 4、默认关闭NFC 5、移除物理键盘支持 6、禁止 ANR、崩溃等的对话框显示 7、修改默认壁纸 8、取消USB PTP MTP MIDI等支持 9、设置Screen Lock默认为None 10、设置Data&time自动 11、设置特定时区 12、设…...

RedisInsight:企业级 Redis 管理与分析工具

1 介绍 RedisInsight 是一款专为企业级用户设计的 Redis 管理与分析工具,旨在简化 Redis 数据库的管理和优化操作。通过直观的图形化界面和强大的功能集,RedisInsight 提供了全面的监控、诊断、性能优化以及数据管理能力,帮助企业和开发团队更高效地管理和运维 Redis 实例。…...

c# 快捷键模块

文章目录 命名空间和类类成员静态成员 静态方法GenerateHotkeyIdWndProcGetWindowHandleAndSourceRegisterUnregister 静态方法&#xff08;外部调用&#xff09;RegisterHotKey 和 UnRegisterHotKey 委托HotKeyCallbackHandler 枚举HotkeyModifiers 应用示例 using System; us…...

【笔记】增值税计算笔记

增值税计算笔记 设 进价为 α \alpha α元 出价为 α τ \alpha\tau ατ元 增值税率为 r r r ∵ { 进 项 税 α 1 r r 销 项 税 α τ 1 r r 增 值 税 销 项 税 − 进 项 税 ∴ 增 值 税 α ( τ − 1 ) r 1 r \because \left\{ \begin{aligned}进项税 &\frac{…...

请解释 JavaScript 中的闭包,以及它的优缺点和常见使用场景?

闭包&#xff08;Closure&#xff09;是什么&#xff1f; 闭包是JavaScript中的一个重要概念&#xff0c;指的是一个函数能够记住并访问它的词法作用域&#xff0c;即使这个函数在其词法作用域之外执行。 换句话说&#xff0c;闭包使得函数可以“记住”它被创建时的环境。 闭…...

SpringBoot 集成 Caffeine 实现本地缓存

目录 1、Caffeine 简介 1.1、Caffeine 简介1.2、对比 Guava cache 的性能主要优化项1.3、常见的缓存淘汰算法1.4、SpringBoot 集成 Caffeine 两种方式 2、SpringBoot 集成 Caffeine 方式一 2.1、缓存加载策略 2.1.1、手动加载2.1.2、自动加载【Loading Cache】2.1.3、异步加载…...

druid连接池参数配置

最近发现生产环境经常有数据库连接超时的问题&#xff0c;排查发现是druid连接池参数设置不合理导致 总结问题如下&#xff1a; 为了防止僵尸连接&#xff0c;k8s ipvs做了连接超时限制&#xff0c;如果TCP连接闲置超过900s(15分钟)&#xff0c;客户端再尝试通过这个连接去发起…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...