【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 数学函数

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

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

相关文章

ChatGPT长文本对话输入方法

ChatGPT PROMPTs Splitter 是一个开源工具&#xff0c;旨在帮助你将大量上下文数据分成更小的块发送到 ChatGPT 的提示&#xff0c;并根据如何处理所有块接收到 ChatGPT&#xff08;或其他具有字符限制的语言模型&#xff09;的方法。 推荐&#xff1a;用 NSDT设计器 快速搭建可…

【QT】Day3

1. 完成闹钟的实现&#xff1a; widgt.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QTimerEvent> //定时器事件处理函数 #include <QTime> //时间类 #include <QTextToSpeech> //文本转语音类头…

Jmap-JVM(十六)

上篇文章说了ZGC是jdk11加入的&#xff0c;他是未来jvm垃圾收集器的奠定者&#xff0c;满足TB级别内存处理&#xff0c;STW时间保持在10ms以下。 Jmap 我们可以先通过jmap -histo 进程ip 来查看&#xff0c;但是这样看不太清晰&#xff0c;我们可以用这行命令生成一个文件&…

机器学习:GPT3

GPT3 模型过于巨大 GPT3是T5参数量的10倍&#xff01; 训练GPT3的代价是$12百万美元 Zero-shot Ability GPT3的思想是不是能拿掉Fine-tune 只需要给定few-shot或者zero-shot就能干相应的任务了。 few-shot learning&#xff08;no gradient descent&#xff09;&#…

9.python设计模式【外观模式】

内容&#xff1a;为子系统中的一组接口提供一个一致的界面&#xff0c;外观模式定义了一个高层接口&#xff0c;这个接口使得这一个子系统更加容易使用。 角色&#xff1a; 外观&#xff08;facade&#xff09;子类系统&#xff08;subsystem classes&#xff09; UML图 举…

容器化安装环境EFK搭建

容器化安装环境 Docker中安装并启动ElasticSearch 前置配置 第一步&#xff1a;在宿主机上执行echo “net.ipv4.ip_forward1” >>/usr/lib/sysctl.d/00-system.conf 2.第二步&#xff1a;重启network和docker服务 [rootlocalhost /]# systemctl restart network &&…

使用低代码开发,需要注意哪些?

低代码平台的历史相对较短&#xff0c;大约始于 2000 年初&#xff0c;源于快速应用程序开发工具。随着低代码平台和工具的日益普及和优势&#xff0c;它不断发展以满足各种领域和角色的需求。 本文将研究各种低代码和无代码应用程序开发方法、业务用例、挑战和未来预测等。 一…

论文浅尝 | 预训练Transformer用于跨领域知识图谱补全

笔记整理&#xff1a;汪俊杰&#xff0c;浙江大学硕士&#xff0c;研究方向为知识图谱 链接&#xff1a;https://arxiv.org/pdf/2303.15682.pdf 动机 传统的直推式(tranductive)或者归纳式(inductive)的知识图谱补全(KGC)模型都关注于域内(in-domain)数据&#xff0c;而比较少关…

UEditor 百度富文本编辑器使用 遇到问题

小小吐槽 碰到前后不分离项目&#xff0c;富文本使用的UEdtior UEditor 点击上传图片转base64 在ueditor.all.js文件中找到这个 callback()函数 这里使用根据图片的url转成base64 UEditore 粘贴图片转base64 UEditor回显图片&#xff08;base64&#xff09; 把ueditor.all…

Java面向对象编程实战详解(图书管理系统示例)

文章目录 面向编程概念图书管理系统示例需求分析设计阶段编码实现创建目录结构Book类的编码BookList类的编码User类的编码AdminUser类的编码NormalUser类的编码启动类的编写具体的操作实现IOperation接口新增图书的实现借阅图书的实现删除图书的实现显示图书的实现查找图书的实…

使用C#基于ComPDFKit SDK快速构建PDF阅读器

在当今世界&#xff0c;Windows 应用程序对我们的工作至关重要。随着处理 PDF 文档的需求不断增加&#xff0c;将 ComPDFKit PDF 查看和编辑功能集成到您的 Windows 应用程序或系统中&#xff0c;可以极大地为您的用户带来美妙的体验。 在本博客中&#xff0c;我们将首先探索集…

《向量数据库指南》:向量数据库Pinecone如何集成Elasticsearch

目录 上传嵌入模型 上传数据集 创建嵌入 将Elasticsearch索引移动到Pinecone 概要 是一个强大的开源搜索引擎和分析平台,广泛用作基于关键字的文本搜索的文档存储。 Pinecone是一个广泛用于生产应用程序的向量数据库,例如语义搜索、推荐系统和威胁检测,需要在数亿甚…

【笔记】PyTorch DDP 与 Ring-AllReduce

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 文内若有错误&#xff0c;欢迎指出&#xff01; 今天我想跟大家分享的是一篇虽然有点老&#xff0c;但是很经典的文章&#xff0c;这是一个在分布式训练中会用到的一项技术&#xff0c; 实际上叫ringallreduce。 …

使用EM算法完成聚类任务

EM算法&#xff08;Expectation-Maximization Algorithm&#xff09;是一种基于迭代优化的聚类算法&#xff0c;用于在无监督的情况下将数据集分成几个不同的组或簇。EM算法是一种迭代算法&#xff0c;包含两个主要步骤&#xff1a;期望步骤&#xff08;E-step&#xff09;和最…

动态规划 丑数(三指针 谁先创造谁先功德++)

无语这是medium题目吗 先放暴力解法 反正超时 无法ac本题 2, 3, 5 这前 3 个丑数一定要乘以其它的丑数&#xff0c; 所得的结果才是新的丑数 合并过程中重复解的处理 nums2, nums3, nums5 中是存在重复的解的&#xff0c; 例如 nums2[2] 32, nums3[1] 23 都计算出了 6 这个结…

TCP网络通信编程之netstat

【netstat指令】 【说明】 &#xff08;1&#xff09;Listening 表示某个端口在监听 &#xff08;2&#xff09;如果有一个外部程序&#xff08;客户端&#xff09;连接到该端口&#xff0c;就会显示一条连接信息 &#xff08;3&#xff09;指令netstat -anb 可以参看是那个…

flutter开发实战-旋转loading指示器

flutter开发实战-旋转loading指示器。 一、交织动画 有些时候我们可能会需要一些复杂的动画&#xff0c;这些动画可能由一个动画序列或重叠的动画组成。一个动画组合在不同阶段包含了多种动画&#xff0c;要实现这种效果&#xff0c;需要使用交织动画&#xff08;Stagger Anim…

Android 测试

工程目录图 1- Espresso 2- uiautomator Espresso 文档UI Automator文档ui-automator 英文文档 请点击下面工程名称&#xff0c;跳转到代码的仓库页面&#xff0c;将工程 下载下来 Demo Code 里有详细的注释 代码&#xff1a;testespresso 参考文献 Android 利用 espre…

如何高效维护电脑

电脑维护技巧&#xff1a;让你的电脑始终高效稳定 电脑维护技巧&#xff1a;让你的电脑始终高效稳定引言方向一&#xff1a;介绍你的电脑方向二&#xff1a;介绍一下你的日常维护措施方向三&#xff1a;给出一些你觉得有用的维护技巧方向四&#xff1a;其他你想补充的方向五&am…

python_day17_多线程

threading模块 import timedef sing():while True:print("唱歌~~~~~~~~~~~~")time.sleep(1)def dance():while True:print("跳舞############")time.sleep(1) if __name__ __main__:sing()dance()此时为单线程 import threading import timedef sing(…