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

【SQL语句】

目录

一、SQL语句类型

1.DDL

2.DML

3.DLL

4.DQL

二、数据库操作

1.查看

2.创建

2.1 默认字符集

2.2 指定字符集

3.进入

4.删除

5.更改

5.1 库名称

5.2 字符集

三、数据表操作

1.数据类型

1.1 数值类型(常见,下同)

1.1.1 TINYINT

1.1.2 SMALLINT

1.1.3 INT

1.1.4 BIGINT

1.1.5 FLOAT(M,D)

1.2 日期时间类型

1.2.1 DATE

1.2.2 TIME

1.2.3 DATETIME

1.2.4 TIMESTAMP

1.3 字符串类型

1.3.1 CHAR

1.3.2 VARCHAR

1.3.3 TEXT

1.4 二进制类型

1.4.1 BINARY

1.4.2 VARBINARY

1.4.3 BLOB

2.查看

2.1 查看表内的数据

2.2 查看表格的属性

3.创建

4.删除

4.1 删除数据表

4.2 删除数据表的数据,保留结构

5.更改

5.1 表

5.1.1 名称

5.1.2 字符集

5.2 列

5.2.1 名称

5.2.2 属性

5.2.3 字符集

5.3 额外添加

四、数据操作

1.增加

2.删除

3.改动

4.查询

5.补充

5.1 单表查询 - 条件查询

5.1.1 条件表达式

5.1.1.1 运算符

5.1.1.2 通配符

5.1.2 查询类型

5.1.2.1 where子句

5.1.2.2 排序查询

5.1.2.3 分组查询

5.1.2.4 去重查询

5.1.2.5 分页查询

5.1.2.6 子查询

5.2 多表查询

5.2.1 内连接查询

5.2.2 外连接查询

5.2.2.1 左外连接查询

5.2.2.2 右外连接查询

6.函数查询

6.1 聚合函数

6.1.1 SUM

6.1.2 AVG

6.1.3 COUNT

6.1.4 MAX

6.1.5 MIN

6.2 字符串函数

6.2.1 CONCAT

6.2.2 LENGTH

6.2.3 UPPER

6.2.4 LOWER

6.2.5 SUBSTR

6.2.6 REPLACE

6.3 日期时间函数

6.4 数学函数


一、SQL语句类型

1.DDL

DDL(Data Definition Language,数据定义语言):用于定义数据库中的各种对象,包括数据库、表、视图、触发器等,常见的 DDL 命令有 CREATE、ALTER、DROP

2.DML

DML(Data Manipulation Language,数据操作语言):用于操作表格中的数据,进行新增、查询、更新、删除等操作,常见的 DML 命令有 SELECT、INSERT、UPDATE、DELETE

3.DLL

DCL(Data Control Language,数据控制语言):用于管理数据库的权限和安全性,包括授权、回收权限等操作,常见的 DCL 命令有 GRANT、REVOKE

4.DQL

DQL(Data Query Language,数据查询语言)是 SQL 的一个子集,主要用于查询数据库中的数据,常见的 DQL 命令包括 SELECT

二、数据库操作

1.查看

show databases;

2.创建

2.1 默认字符集

create database 数据库名称;

:默认是latin1

2.2 指定字符集

create database 数据库名称 character set utf8;
                        即使用uft8格式的字符集

3.进入

use database_name;

4.删除

drop databases database_name;

5.更改

5.1 库名称

进入到数据库的目录中修改数据库的名称

5.2 字符集

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

:数据库和表的删除修改都要主要它们本身是否处于被引用、使用或占用状态。

三、数据表操作

1.数据类型

1.1 数值类型(常见,下同)

1.1.1 TINYINT

1个字节,范围为 -128 到 127(有符号)或 0 到 255(无符号)

可以使用 TINYINT UNSIGNED 来存储年龄(无符号)或温度(有符号)等小数值

1.1.2 SMALLINT

2个字节,范围为 -32,768 到 32,767(有符号)或 0 到 65,535(无符号)

可以使用 SMALLINT 存储商品数量, 或者使用 SMALLINT UNSIGNED 存储区域编号(无符号)

1.1.3 INT

 4个字节,范围为 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)

这是最常用的整数类型,它可以被用于许多方面,例如存储订单号或者用户的数量 

1.1.4 BIGINT

8个字节

存储很大的数值,例如资金、人口等

1.1.5 FLOAT(M,D)

单精度浮点数,M是总位数,D是小数位数

可以使用 FLOAT(8,2) 来存储商品的价格

1.2 日期时间类型

1.2.1 DATE

用来存储日期,格式为’YYYY-MM-DD’

可以使用 DATE 存储出生日期或者过期日期等

1.2.2 TIME

用来存储时间,格式为’HH:MM:SS’

可以使用 TIME 存储过去一段时间内花费的小时数,分钟数或秒数等

1.2.3 DATETIME

用来存储日期和时间,格式为’YYYY-MM-DD HH:MM:SS’

可以使用 DATETIME 存储订单时间或者统计报告生成时间等

1.2.4 TIMESTAMP

用来存储日期和时间,通常被用于记录特定事件的时间戳。使用UNIX的日期和时间格式,从1970年1月1日午夜开始计算

可以使用 TIMESTAMP 存储用户上次登录的时间戳

1.3 字符串类型

1.3.1 CHAR

用来存储定长字符串,最大长度为255个字符

可以使用 CHAR(10) 存储用户的性别、婚姻状况等数据

1.3.2 VARCHAR

用来存储可变长度字符串,最大长度为65535个字符

可以使用 VARCHAR(255) 存储用户输入的文本内容、地址等数据

1.3.3 TEXT

用来存储大型字符数据,最大长度为2^16-1个字符

可以使用 TEXT 存储文章、评论等大型文本数据

1.4 二进制类型

1.4.1 BINARY

用来存储固定长度二进制数据,最大长度为255个字节

可以使用 BINARY(16) 存储UUID

1.4.2 VARBINARY

用来存储可变长度二进制数据,最大长度为65535个字节

可以使用 VARBINARY(256) 存储不定长度的二进制数据,例如图片和音频等文件

1.4.3 BLOB

用来存储大型二进制对象数据,最大长度为2^16-1个字节

可以使用 BLOB 存储音视频等媒体文件

2.查看

2.1 查看表内的数据

select * from tables_name;
select column1,column2 from tables_name where 条件;

2.2 查看表格的属性

describe tables_name;

3.创建

create table tables_name(
    第一列 类型属性,
    第二列 类型属性,
    ......
) character set utf8mb4 collate utf8mb4_unicode_ci;

create table tables_name(
    第一列 类型属性,
    第二列 类型属性 character set utf8mb4 collate utf8mb4_unicode_ci,
    ......
);

character set utf8mb4 collate utf8mb4_unicode_ci
            写在列之后,声明列的字符集
            写在表之后,声明表的字符集

创建数据表时,添加约束条件:

  • 创建数据表时添加

CREATE TABLE students (
    id INT PRIMARY KEY,  -- 定义 id 列为主键
    name VARCHAR(20) NOT NULL,
    age INT
);

  • 修改现有的数据表

4.删除

4.1 删除数据表

drop table table_name;

4.2 删除数据表的数据,保留结构

delete from table_name;

5.更改

5.1 表

5.1.1 名称

alter table old_table_name rename to new_table_name;

5.1.2 字符集

alter table my_table convert to character set utf8mb4 collate utf8mb4_unicode_ci;

5.2 列

5.2.1 名称

alter table table_name change old_name new_name 属性;

5.2.2 属性

alter table my_table modify 修改的列  修改的属性;

5.2.3 字符集

alter table  users modify name varchar(50) character set utf8mb4;

5.3 额外添加

alter table table_name add column_ name 属性;

在已经创建好的数据表上额外加入新的列,包含赋予属性。

四、数据操作

1.增加

insert into table_name (column1,column2,column3,...) values(value1,value2,value3,...);)

2.删除

delete from table_name where 条件;

3.改动

update table_name set column1 = value1,column2 = value2,... where 条件;

4.查询

select * from table_name;

select column1,column2 from table_name where 条件;

5.补充

5.1 单表查询 - 条件查询

5.1.1 条件表达式

5.1.1.1 运算符

等于=
不等于!=或<>
大于>
大于等于>=
小于<
小于等于<=


between        BETWEEN运算符用于表示在一个范围内的值,AND
in        IN运算符用于比较一个表达式是否与一组表达式中的任意一个相匹配

 

5.1.1.2 通配符

%        %通配符匹配任意数量(包括0个)的字符

_        _通配符匹配一个任意字符

:通常会和like一起使用

5.1.2 查询类型

5.1.2.1 where子句

查询时,指定要返回符合条件的行,后面跟条件

5.1.2.2 排序查询

排序查询是通过SQL查询语句将所查询的结果按照指定的排序方式排列
                            升序(默认):ASC
                            降序:DESC
select * from test order by colume1;
select * from test order by colume1 DESC, colume2 ASC;

5.1.2.3 分组查询

主要用于统计分析,生成对应报表
count(*)函数用于统计出现过的记录总和
group by用于按照特定字段进行分组
select class, count(*) from test group by class;

5.1.2.4 去重查询

用于从结果集中删除重复的行,只返回不同的值
select distinct colume1 from test;
如果查询多个列,则会显示两列的组合,每个组合只会出现一次

5.1.2.5 分页查询

用于在SQL语句中限制返回数据的条数该技术可用于显示诸如Web页面之类的大量数据
limit    表示要返回的记录数
offset    表示查询结果的起始位置或查询结果的偏移量(从0开始计数)
select * from test limit 10 offset 10;

5.1.2.6 子查询

在一个SQL语句中嵌套使用另一个完整的SQL查询语句。子查询通常用作主查询的查询条件或结果过滤条件,以及用于提供主查询需要的一些数据
select * from test where age > (select avg(age) from test);

:全表查询在查询中没有指定任何的限制条件,会返回整张表的所有行

5.2 多表查询

多表查询是指在关系型数据库中,查询多个表的信息并进行关联、筛选和排序等操作的过程或语句。多表查询可以用来解决某些查询需求.

5.2.1 内连接查询

SELECT *
FROM table1
INNER JOIN table2
ON table1.column1 = table2.column2;

内连接查询(INNER JOIN):显示两个表中满足条件的行,并且只显示这两个表中共有的列

5.2.2 外连接查询

5.2.2.1 左外连接查询

SELECT *
FROM table1
LEFT JOIN table2
ON table1.column1 = table2.column2;

左外连接查询(LEFT JOIN):显示左表中所有行和右表中满足条件的行,如果右表没有匹配的行,则显示null值/

5.2.2.2 右外连接查询

SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column1 = table2.column2;

右外连接查询(RIGHT JOIN):与左外连接查询类似,但显示右表中所有行和左表中满足条件的行

6.函数查询

6.1 聚合函数

可以配合where子句,条件匹配使用

6.1.1 SUM

求某一列的值的总和
select sum(colume1) from test;

6.1.2 AVG

求某一列值的平均值
select avg(colume1) from test;
如果某一列中的值包含数值0,该如何计算?

6.1.3 COUNT

用于计算指定列中的行数,不包含非空行
select count(id) from test;

6.1.4 MAX

用于计算指定列中的最大值
MAX函数适用于任何数据类型,无论列中包含的是数字、文本还是其他类型的数据
如果是文本字符串类型,则按照字符串的字典序进行排序
select max(id) from test;

6.1.5 MIN

用于计算指定列中的最小值
MIN函数适用于任何数据类型,无论列中包含的是数字、文本还是其他类型的数据
如果是文本字符串类型,则按照字符串的字典序进行排序
select min(id) from test;

6.2 字符串函数

6.2.1 CONCAT

连接两个或多个字符串,并返回合成后的新字符串
select concat('hello',' ','World');

6.2.2 LENGTH

返回字符串的长度(字符数)
select length('Hello World');

6.2.3 UPPER

将字符串转换为大写字母
select upper(Hello World);

6.2.4 LOWER

将字符串转换为小写字母
select lower(Hello World);

6.2.5 SUBSTR

返回指定字符串中的一部分,可以使用起始位置和长度指定要返回的子字符串
select substr('Hello World',7,5);

6.2.6 REPLACE

将指定字符串中的一部分替换为新字符串,并返回新的字符串
select replace('Hello World','Hello','Hi');

6.3 日期时间函数

6.4 数学函数

相关文章:

【SQL语句】

目录 一、SQL语句类型 1.DDL 2.DML 3.DLL 4.DQL 二、数据库操作 1.查看 2.创建 2.1 默认字符集 2.2 指定字符集 3.进入 4.删除 5.更改 5.1 库名称 5.2 字符集 三、数据表操作 1.数据类型 1.1 数值类型&#xff08;常见&#xff0c;下同&#xff09; 1.1.1 T…...

自动驾驶和机器人学习和总结专栏汇总

汇总如下&#xff1a; 一. 器件选型心得&#xff08;系统设计&#xff09;--1_goldqiu的博客-CSDN博客 一. 器件选型心得&#xff08;系统设计&#xff09;--2_goldqiu的博客-CSDN博客 二. 多传感器时间同步方案&#xff08;时序闭环&#xff09;--1 三. 多传感器标定方案&…...

【C++初阶】C++基础(下)——引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr

目录 1. 引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 1.5 传值、传引用效率比较 1.6 引用和指针的区别 2. 内联函数 2.1 概念 2.2 特性 3.auto关键字&#xff08;C11&#xff09; 3.1 类型别名思考 3.2 auto简介 3.3 auto的使用细则 3.4 auto不能推…...

OSI 7层模型 TCPIP四层模型

》Ref&#xff1a; 1. 这个写的嘎嘎好&#xff0c;解释了为啥4层7层5层&#xff0c;还有数据包封装的问题:数据包在网络中的传输过程详解_数据包传输_张孟浩_jay的博客-CSDN博客 2. HTTP协议 与 TCP协议 的区别&#xff0c;作为web程序员必须要懂 - 知乎 (zhihu.com) 3. 数据…...

iOS-持久化

目的 1.快速展示&#xff0c;提升体验 已经加载过的数据&#xff0c;用户下次查看时&#xff0c;不需要再次从网络&#xff08;磁盘&#xff09;加载&#xff0c;直接展示给用户 2.节省用户流量&#xff08;节省服务器资源&#xff09; 对于较大的资源数据进行缓存&#xf…...

PC音频框架学习

1.整体链路 下行播放&#xff1a; App下发音源→CPU Audio Engine 信号处理→DSP数字信号处理→Codec DAC→PA→SPK 上行录音&#xff1a; MIC拾音→集成运放→Codec ADC→DSP数字信号处理→CPU Audio Engine 信号处理→App 2.硬件 CPU PCH DSP(可选) Codec PA SPKbox MIC…...

机器学习:提取问题答案

模型BERT 任务&#xff1a;提取问题和答案 问题的起始位置和结束位置。 数据集 数据集 DRCDODSQA 先分词&#xff0c;然后tokenize 文章长度是不同的&#xff0c;bert的token的长度有限制&#xff0c;一般是512&#xff0c; self-attention的计算量是 O ( n 2 ) O(n^2) O(n…...

【Ansible】

目录 一、Ansible简介二、ansible 环境安装部署1、管理端安装 ansible 三、ansible 命令行模块&#xff08;重点&#xff09;1&#xff0e;command 模块2&#xff0e;shell 模块3、cron 模块4&#xff0e;user 模块5&#xff0e;group 模块6&#xff0e;copy 模块&#xff08;重…...

分布式版本控制系统git详解

git 是目前世界上最先进的分布式版本控制系统 补充说明 git命令 很多人都知道&#xff0c;Linus在1991年创建了开源的Linux&#xff0c;从此&#xff0c;Linux系统不断发展&#xff0c;已经成为最大的服务器系统软件了。 Linus虽然创建了Linux&#xff0c;但Linux的壮大是靠…...

如何使用Python进行数据挖掘?

使用Python进行数据挖掘需要掌握以下几个关键步骤&#xff1a; 数据收集&#xff1a;首先&#xff0c;你需要获取你要进行数据挖掘的数据。可以从公共数据集、API、数据库等各种来源收集数据。 数据清洗&#xff1a;清洗数据是一个重要的步骤&#xff0c;它包括去除重复数据、…...

若依-前台无法正常启动,npm run dev失败

问题场景&#xff1a; 使用若依Vue前端分离版-基于SpringBoot的权限管理系统进行实战。 问题描述与解决 拉取若依项目后&#xff0c;根据官方开发文档&#xff08;项目readme文档&#xff09;进行依赖下载安装后&#xff0c;启动失败。 出现以下几个问题&#xff1a; 运行n…...

Spring之IoC源码分析及设计思想(一)——BeanFactory

关于Spring的IOC Spring 是一个开源的 Java 平台&#xff0c;它提供了一种简化应用程序开发的框架。它是一个分层的框架&#xff0c;包括两个主要的内核&#xff1a;控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;。IOC 允许应用程序将组件之…...

⛳ 面向对象面试题

面向对象面试题目录 ⛳ 面向对象面试题&#x1f69c; 一&#xff0c;成员变量&#xff0c;局部变量&#xff0c;类变量存储在内存的什么地方&#xff1f;&#x1f43e; 1.1&#xff0c;类变量&#xff08;静态成员变量&#xff09;&#x1f4dd; 1.2&#xff0c;成员变量⭐ 1.3…...

Java中使用Gson操作json数据

Java中使用Gson操作json数据 引入依赖 <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.9.0</version></dependency>Gson工具类 package cn.test.util;import com.google.gso…...

Verilog语法学习——LV10_使用函数实现数据大小端转换

LV10_使用函数实现数据大小端转换 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 描述 在数字芯片设计中&#xff0c;经常把实现特定功能的模块编写成函数&…...

Leetcode-每日一题【剑指 Offer II 009. 乘积小于 K 的子数组】

题目 给定一个正整数数组 nums和整数 k &#xff0c;请找出该数组内乘积小于 k 的连续的子数组的个数。 示例 1: 输入: nums [10,5,2,6], k 100输出: 8解释: 8 个乘积小于 100 的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。 需要注意的是 [10,5,2]…...

html/javascript-表格的创建和使用

html中表格的创建和使用 一 摘要二 使用html table标签创建表格&#xff08;在html文件中&#xff09;三 使用javascript创建表格&#xff08;在js文件中&#xff09;四 表格属性的设置&#xff1a;4.1. 右边框的设置&#xff1a;4.2. 只给表格单元格加右边框4.3. 动态设置右边…...

[点微]同城原生微信小程序 小程序原生版 1.0.7(tom_xiaofenlei)

注意!!!这是点微后出的原生版小程序!!! 依赖点微同城分类主插件、点微同城小程序后端插件!!! 【以下为模块路径】 同城首页 pages/index/index 个人中心 pages/index/my 好店首页 pages/module/tcshop 商城首页 pages/module/tcmall 抢购首页 pages/module/tcqianggou…...

JDBC Some Templates

JDBCTemplate 是Spring对JDBC的封装&#xff0c;使用JDBCTemplate方便实现对数据的操作。 <!-- orm:Object relationship mapping m对象 关系 映射-->引入依赖 <!-- 基于Maven依赖的传递性&#xff0c;导入spring-content依赖即可导入当前所需的所有…...

dubbo启动指定ip不使用docker虚拟网络ip

java -D 配置系统属性 # 启动时加参数 -DDUBBO_IP_TO_REGISTRY 192.168.1.1 该ip为dubbo所在服务器的公网ip即可。 java -jar myDubboRpc-api.jar -DDUBBO_IP_TO_REGISTRY 192.168.1.1 # xjar启动 nohup ./xjar java -DDUBBO_IP_TO_REGISTRY11.22.33.44 -XX:UseG1GC -jar …...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

JavaScript 标签加载

目录 JavaScript 标签加载script 标签的 async 和 defer 属性&#xff0c;分别代表什么&#xff0c;有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...