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

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 !['用户名'@'主机名'](https://i-blog.csdnimg.cn/direct/088a27d5647747e19a55bad74b265df8.png)
; 

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后在为属性赋值后&#xff0c;初始化Bean之前执行。 PreDestroy注解标注的方法可以在Bean销毁之前执行。 2. 依赖…...

《云计算网络技术与应用》实训8-1:OpenvSwitch简单配置练习

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

【架构艺术】服务架构稳定性的基础保障

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

Python中使用pip换源的详细指南

在Python开发过程中&#xff0c;我们经常需要安装各种第三方库。pip是Python的包管理工具&#xff0c;用于安装和管理Python库。然而&#xff0c;由于网络原因&#xff0c;有时访问默认的Python包索引&#xff08;PyPI&#xff09;可能会比较慢。这时&#xff0c;我们可以通过更…...

一站打包国际智慧教育自主学练软件资源

&#x1f451;&#x1f31f;一站打包国际智慧教育自主学练软件与资源平台&#xff0c;欧美学校正在使用&#xff0c;不出国就可以学&#x1f452;&#x1f388; &#x1f49b; 多元学练&#xff1a;我们正在使用的自主学练软件是美国学校一线教师使用的&#xff0c;涵盖了英语…...

用股票API获取高频行情数据来实现数据分析和量化

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

C++ | Leetcode C++题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; 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&#xff1a;确保你已经在计算机上安装了 Android SDK&#xff08;或单独的 ADB&#xff09;。并将其添加到系统环境变量中&#xff0c;以便你可以在命令行中运行 adb。 USB调试&#xff1a;确保 Android 设备已启用 USB 调试模式。这可以在设备的“设置” -…...

【随笔】对于开发者而言,你对什么事情感到失落?亦或者你上一次感到有成就感是什么时候?你遇到过怎样格局的老板?

这是博主的一篇随笔文章&#xff0c;一起和大家聊聊工作上的一些事和一些感受&#xff0c;我觉得我们这个群体&#xff0c;同样有很多优秀的、幽默的人。只不过有些表达和沟通并不是我们擅长的&#xff0c;包括博主也是&#xff0c;这是我们的劣势和缺点。没关系&#xff0c;这…...

【LeetCode】两数之和返回两数下标、数组形式整数相加

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO 1.两数之和返回两数下标 题目&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输…...

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 应用程序

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

【论文复现】VALL-E:语音合成的新里程

&#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐、摄影的一位博主。 &#x1f4d7;本文收录于论文复现系列&#xff0c;大家有兴趣的可以看一看。 &#x1f4d8;相关专栏C语言初阶、…...

java项目之微服务在线教育系统设计与实现(springcloud)

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

P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法

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

Vue2——单页应用程序路由的使用

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

变分法(Calculus of Variations)

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

包括 Nginx、Gateway、Nacos、Dubbo、Sentinel、RocketMQ 和 Seata 的调用链路描述:

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

【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#语法的主要内容&#xff0c;接近20万字。 所有鸡汤的味道都等于马尿&#xff01; 如果你相信任何所谓的鸡汤文章&#xff0c;智商堪忧。 计算机语言没有”好不好“之说&#xff0c;骗子才会告诉你哪个语言好&#xff0c;学好任何一本基础语言&#xff08;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为入口文件&#xff0c;App.js为根组件。 如何将react应用挂载在页面上&#xff1f; 将App组件渲染到id为root的DOM元素中 2. JSX JSX是|avaScript和XML(HTML)的缩写…...

D4--哈夫曼树和不等式

看文先三连&#xff0c;养成好习惯~看文先三连&#xff0c;养成好习惯~看文先三连&#xff0c;养成好习惯~ 目录 知识点&#xff1a; 堆排序&#xff1a; 优先队列&#xff1a; 定义&#xff1a;&#xff08;默认大顶堆&#xff09; 入队: 出队&#xff1a; 取队顶&…...

详解RabbitMQ三种队列类型

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

openGauss数据库-头歌实验1-3 创建和管理模式

一、创建和使用模式 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;基于 openGauss 学习创建模式的相关知识。 &#xff08;二&#xff09;相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.openGauss 的常用操作&#xff0c;2.SQL 创建模式相关语…...

森林火灾检测数据集(猫脸码客 第233期)

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

LeetCode100之找到字符串中所有字母异位词(438)--Java

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