SQL(基础)

news/2024/5/2 2:02:32/文章来源:https://blog.csdn.net/qq_62552630/article/details/130432370

DDL: 数据定义语言 Definition,用来定义数据库对象(数据库、表、字段)CREATE、DROP、ALTER

DML: 数据操作语言 Manipulation,用来对数据库表中的数据进行增删改 INSERT、UPDATE、DELETE

注意:
DDL是改变表的结构
DML是改变表的数据

DQL: 数据查询语言 Query,用来查询数据库中表的记录 SELECT、FROM、WHERE

DCL: 数据控制语言 Control,用来创建数据库用户、控制数据库的控制权限 GRANT、REVOKE

注意:
DQL就是查询数据
DCL改变用户权限


数据库基本操作

1、查询所有数据库
show databases;

2、查询当前数据库
select database();

3、使用数据库
use 数据库名;

4、查询当前数据库所有表
show tables;

5、查询表的结构
desc 表名;

UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集


DDL

1、创建数据库
create database 数据库名;
2、删除数据库
drop database 数据库名;

3、创建表(最后一个字段后面没有逗号)
create table 表名(
字段1 字段1类型,
字段2 字段2类型,
字段3 字段3类型,

字段n 字段n类型
);

4、查询指定表的建表语句
show create table 表名;

5、alter的使用:

添加字段:alter table 表名 add 字段名 类型;

修改数据类型:alter table 表名 modify 字段名 新的数据类型;

修改字段名和字段类型
alter table 表名 change 原来字段名字 新的字段名字 字段类型;

删除字段:alter table 表名 drop 字段名;

修改表名:alter table 表名 rename to 新的表名;

6、删除操作

删除表:drop table 表名;
删除表并且重新创建该表:truncate table 表名;

请添加图片描述


数据类型

1、数值类型

有符号(signed)
无符号(unsigned)

区别: 是否允许出现负数

2、字符串类型

3、日期时间类型


DML

添加数据:insert
修改数据:update
删除数据:delete

添加数据
1、指定的字段
insert into 表名 (字段名1,字段名2,…) values(值1,值2,…);

2、全部的字段
insert into 表名 values(值1,值2,…);

批量的添加数据
insert into 表名 (字段名1,字段名2,…) values(值1,值2,…),(值1,值2,…),(值1,值2,…);
或者
insert into 表名 values(值1,值2,…),(值1,值2,…),(值1,值2,…);

注意
1、字符串和日期类型的数据应该包含在引号里面
2、插入的数据大小应该在字段的规定范围内

更新操作

修改数据

update 表名 set 字段名1 = 值1,字段名2 = 值2,… [where 条件];

注意:
修改语句的条件如果没有那么就会去修改整张表的所有数据 update

删除操作

删除数据
delete from 表名 [where 条件];

注意
删除语句的条件如果没有那么就会去删除整张表的所有数据 delete

delete语句是不可以去删除某一个字段的值的
可以使用update将其设置为null
请添加图片描述


DQL

模板:

SELECT字段列表
FROM表名字段
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后的条件列表
ORDER BY排序字段列表
LIMIT分页参数

1基础查询
1、查询多个字段

select 字段1,字段2,字段3,… from 表名;
select * from 表名;

2、设置别名
select 字段 as 别名 from 表名;
或者
select 字段 别名 from 表名;

3、去除重复记录
select distinct 字段 from 表名;

2条件查询

select 字段列表 from 表名 where 条件列表;

请添加图片描述

3聚合函数

将一数据作为一个整体来进行纵向的计算

select 聚合函数(字段列表) from 表名;

请添加图片描述
注意:
null值是不参与聚合函数的运算的

4分组查询

注意
where和having的区别:
1、where是分组之前进行过滤,不满足where条件不参与分组,having是分组后对结果进行过滤。
2、where不能对聚合函数进行判断,而having可以。

执行顺序
where > 聚合函数 > having

分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

5排序查询

asc 是 升序排序
desc 是 降序排序

注意
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

6分页查询

limit 起始索引,查询记录数;

注意

1、起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数

2、如果查询的是第一页数据,起始索引可以省略

DQL语句的执行顺序

执行顺序:from、where、group by、having、select、order by、limit

请添加图片描述

注意

根据sql的执行顺序可知:group by 和 having 是在select的前面的,那么select 里面起的别名怎么还可以在having里面使用呢?

--年龄小于45,并根据工作地址分组,获取员工数量大于等于3的工作地址select workaddress, count(*) address_count from employee where age < 45 group by workaddress having address_count >= 3;

DCL

用来 管理数据库用户 以及 控制数据库的访问权限

管理用户

1、查询用户

user mysql;
select * from user;

2、创建用户

create user '用户名'@'主机名' identified by '密码';

3、修改用户密码

alter user ‘用户名’@‘主机名’ identified with mysql_native_password by ‘新密码’;

4、删除用户

drop user '用户名'@'主机名';

注意

创建用户test,能在任意主机访问

create user ‘test’@‘%’ identified by ‘123456’;

也就是说:主机名可以使用 % 通配

权限控制
1、查询权限

show grants for '用户名'@'主机名';

2、授予权限

grant 权限列表(all) on 数据库名.表名 to '用户名'@'主机名';

3、撤销权限
revoke 权限列表(all) on 数据库名.表名 from ‘用户名’@‘主机名’;

注意
1、多个权限用逗号分隔
2、授权时,数据库名和表名可以用 * 进行通配,代表所有
请添加图片描述
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_294354.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

享受简单上传体验:将Maven仓库迁移到GitHub

前言&#xff1a;我为什么放弃了Maven Central 之前我写过一篇《Android手把手&#xff0c;发布开源组件至 MavenCentral仓库》&#xff0c;文中详细介绍了如何发布组件到Maven Central中供所有开发者共用。但是最近使用下来&#xff0c;发现Sonatype JIRA 的Maven Center上传…

EMC VPLEX VS2 FRU故障备件更换基本流程

本文是针对VPLEX VS2 备件更换流程的详细操作方法&#xff0c;其实VS6也是类似的。 首先要说明一点&#xff0c;EMC VPLEX的任何硬件故障更换都不是直接插拔来完成的&#xff0c;一定要执行脚本要完成更换&#xff0c;本文就是描述如何启动这个脚本和常见的一些问题&#xff0…

一以贯之:从城市网络到“城市一张网”

《论语里仁》中子曰&#xff1a;“参乎&#xff0c;吾道一以贯之”。 孔子所说的“一以贯之”&#xff0c;逐渐成为了中国文化与哲学的重要组成部分&#xff0c;指明事物发展往往需要以标准化、集约化、融合化作为目标。这种智慧在数字化发展中格外重要。从云计算、大数据技术模…

C++——入门基础知识

0.关注博主有更多知识 C知识合集 目录 1.命名空间 1.1命名空间的定义 1.2命名空间的使用 1.3命名空间定义的补充 2.输入与输出 3.缺省参数 3.1全缺省参数 3.2半缺省参数 3.3缺省参数的补充 4.函数重载 4.1C为什么支持函数重载&#xff1f; &#xff15;.引用 5.…

Clion开发STM32之串口封装(HAL库)

前提 在开发STM32过程中&#xff0c;芯片提供的串口引脚一般是不会发生变化的&#xff0c;所以为了方便移植&#xff0c;借助HAL提供的注册回调函数自定义&#xff0c;这边重新进行简要的封装此工程开发是以Clion为开发的IDE,用keil只需将对应的文件进行移植即可.文章末尾附带…

Java——Java面向对象

该系列博文会告诉你如何从入门到进阶&#xff0c;一步步地学习Java基础知识&#xff0c;并上手进行实战&#xff0c;接着了解每个Java知识点背后的实现原理&#xff0c;更完整地了解整个Java技术体系&#xff0c;形成自己的知识框架。 概述&#xff1a; Java是面向对象的程序…

XR技术在手术中的应用调研

虚拟现实、增强现实、混合现实等概念和技术是最近几年发展起来的&#xff0c;相信你对去年大火的元宇宙深有感触&#xff0c;元宇宙属于虚拟现实的技术范畴&#xff0c;头号玩家电影也让虚拟现实走进大众的视野中。早在2015年&#xff0c;笔者参加一次展会时就有接触&#xff0…

py_rabbitmq

安装 服务端 https://www.jianshu.com/p/2fb6d5ac17b9 客户端 pip install pika文档 https://rabbitmq.com/tutorials/tutorial-one-python.html 简单示例 生产者 import pika import rabbitmq_study.settings as settingscredentials pika.PlainCredentials(settings…

手记系列之四 ----- 关于使用MySql的一些经验

前言 本篇文章主要介绍的关于本人在使用MySql记录笔记的一些使用方法和经验&#xff0c;温馨提示&#xff0c;本文有点长&#xff0c;约1.5w字&#xff0c;几十张图片&#xff0c;建议收藏查看。 一、MySql安装 下载地址:https://dev.mysql.com/downloads/ 在安装MySql之前&a…

闪电加密和隐藏加密文件夹忘记密码怎么办?

闪电加密和隐藏加密是文件夹加密超级大师的两种文件夹加密类型&#xff0c;它们都拥有超快的加密算法&#xff0c;可以瞬间加密超大文件夹。那么这两种文件夹加密类型忘记密码该怎么办呢&#xff1f;下面我们一起来了解一下吧。 闪电加密和隐藏加密文件夹找回密码 首先&#x…

【计算机图形学】课堂习题汇总

在直线的光栅化算法中&#xff0c;如果不考虑最大位移方向则可能得到怎样的直线&#xff1f; A&#xff1a;斜率为1的线 B&#xff1a;总是垂直的 C&#xff1a;离散的点&#xff0c;无法构成直线 D&#xff1a;总是水平的 在直线的改进的Bresenham算法中&#xff0c;每当误…

【五一创作】使用Scala二次开发Spark3.3.0实现对MySQL的upsert操作

使用Scala二次开发Spark实现对MySQL的upsert操作 背景 在我们的数仓升级项目中&#xff0c;遇到了这样的场景&#xff1a;古人开发的任务是使用DataStage运算后&#xff0c;按照主键【或者多个字段拼接的唯一键】来做insert then update&#xff0c;顾名思义&#xff0c;也就…

【C++】vector OJ练习

文章目录 1. 只出现一次的数字思路讲解AC代码 2. 杨辉三角思路讲解AC代码 3. 只出现一次的数字 III思路讲解AC代码 4. 只出现一次的数字 II思路讲解AC代码 5. 删除有序数组中的重复项思路讲解AC代码 6. 数组中出现次数超过一半的数字思路讲解AC代码 这篇文章我们来做几道vector…

服装店铺装修有哪些窍门?做好这3点,顾客主动上门

现在街边有各种各样的服装店&#xff0c;有的服装店客流不断&#xff0c;有的服装店却很冷清&#xff0c;导致这种现象的原因有很多&#xff0c;比较重要的一点就是你的服装店铺装修没做好。 你的服装店铺装修足够吸引人吗&#xff1f; 什么样的服装店铺装修才能吸引顾客&#…

【VM服务管家】VM4.0平台SDK_2.5 全局工具类

目录 2.5.1 全局相机&#xff1a;全局相机设置参数的方法2.5.2 全局相机&#xff1a;获取全局相机列表的方法2.5.3 全局通信&#xff1a;通信管理中设备开启状态管理2.5.4 全局通信&#xff1a;接收和发送数据的方法2.5.5 全局变量获取和设置全局变量的方法 2.5.1 全局相机&…

最新发布!面向开发者的 ChatGPT Prompt Engineering 免费教程,吴恩达与OpenAI合作打造!...

就在几小时之前&#xff0c;吴恩达在Twitter上宣布了与OpenAI合作的最新免费教程&#xff1a;《ChatGPT Prompt Engineering for Developers》 我们可以通过下面的链接&#xff0c;直达官网网站&#xff1a; https://www.deeplearning.ai/short-courses/chatgpt-prompt-enginee…

JavaScript用map实现Hashmap

&#x1f4dd;个人主页&#xff1a;爱吃炫迈 &#x1f48c;系列专栏&#xff1a;数据结构与算法 &#x1f9d1;‍&#x1f4bb;座右铭&#xff1a;道阻且长&#xff0c;行则将至&#x1f497; 文章目录 正如我们已经看到的&#xff0c;Map 对象是一个键值对。最初&#xff0c;M…

[ICLR 2023] Token Merging: Your ViT But Faster

Contents IntroductionToken MergingExperimentsImage ExperimentsDesign choicesModel SweepComparison to Other WorksVisualizations Video ExperimentsAudio Experiments References Introduction 作者提出了一种 token 合并方法 Token Merging (ToMe)&#xff0c;能够在不…

( 字符串) 647. 回文子串 ——【Leetcode每日一题】

❓647. 回文子串 难度&#xff1a;中等 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&#xff0c;即使…

( 栈和队列) 20. 有效的括号 ——【Leetcode每日一题】

❓20. 有效的括号 难度&#xff1a;简单 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;]的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合…