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

Linux系统中的SQL语句

本节主要学习,SQL语句的语句类型,数据库操作,数据表操作,和数据操作等。


文章目录

一、SQL语句类型

DDL

DML

DCL

DQL

二、数据库操作

1.查看

2.创建

默认字符集

指定字符集

3.进入

4.删除

5.更改

库名称

字符集

6.练习

三、数据表操作

1、数据类型

①数值类型

②时间\日期类型

③字符串类型

④二进制类型

2、查看

①查看表内的数据

②查看表格的数据

3、创建

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

4、删除

①删除数据表

②删除数据表数据,但保留表结构

5、更改

①表

②列

6、练习

四、数据操作

1、增

2、删

3、改

4、查

5、查询数据(查)

1、单表查询

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

条件查询

条件表达式

查询类型

2、多表查询

总结


一、SQL语句类型

DDL

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

DML

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

DCL

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

DQL

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

二、数据库操作

1.查看

             show databases;

2.创建

默认字符集

                       create database 数据库名称;默认是latin1

指定字符集

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

3.进入

                       use 数据库名称;

4.删除

                       drop database 数据库名称;

5.更改

库名称

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

字符集

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

6.练习

①创建2个数据库,一个全写,一个缩写(指定字符集)

②删除缩写的,将全写的名称改为缩写的

 退出进入配置文件目录修改数据库名

 进入数据库查看

三、数据表操作

1、数据类型

①数值类型

TINYINT1个字节,范围为 -128 到 127(有符号)或 0 到 255(无符号)可以使用 TINYINT UNSIGNED 来存储年龄(无符号)或温度(有符号)等小数值
SMALLINT2个字节,范围为 -32,768 到 32,767(有符号)或 0 到 65,535(无符号)可以使用 SMALLINT 存储商品数量, 或者使用 SMALLINT UNSIGNED 存储区域编号(无符号)
INT 4个字节,范围为 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)这是最常用的整数类型,它可以被用于许多方面,例如存储订单号或者用户的数量
BIGINT8个字节存储很大的数值,例如资金、人口等
FLOAT(M,D)单精度浮点数,M是总位数,D是小数位数可以使用 FLOAT(8,2) 来存储商品的价格

②时间\日期类型

DATE用来存储日期,格式为’YYYY-MM-DD’可以使用 DATE 存储出生日期或者过期日期等
TIME用来存储时间,格式为’HH:MM:SS’可以使用 TIME 存储过去一段时间内花费的小时数,分钟数或秒数等
DATETIME用来存储日期和时间,格式为’YYYY-MM-DD HH:MM:SS’可以使用 DATETIME 存储订单时间或者统计报告生成时间等
TIMESTAMP用来存储日期和时间,通常被用于记录特定事件的时间戳。使用UNIX的日期和时间格式,从1970年1月1日午夜开始计算可以使用 TIMESTAMP 存储用户上次登录的时间戳

③字符串类型

CHAR用来存储定长字符串,最大长度为255个字符可以使用 CHAR(10) 存储用户的性别、婚姻状况等数据
VARCHAR用来存储可变长度字符串,最大长度为65535个字符可以使用 VARCHAR(255) 存储用户输入的文本内容、地址等数据
TEXT用来存储大型字符数据,最大长度为2^16-1个字符可以使用 TEXT 存储文章、评论等大型文本数据

④二进制类型

BINARY用来存储固定长度二进制数据,最大长度为255个字节可以使用 BINARY(16) 存储UUID
VARBINARY用来存储可变长度二进制数据,最大长度为65535个字节可以使用 VARBINARY(256) 存储不定长度的二进制数据,例如图片和音频等文件
BLOB用来存储大型二进制对象数据,最大长度为2^16-1个字节可以使用 BLOB 存储音视频等媒体文件

2、查看

①查看表内的数据

                                 select * from tables_name;

                                  select column1,column2 from tables_name where 条件;

②查看表格的数据

describe table_name;

3、创建

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

 

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

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

创建数据表时添加

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

4、删除

①删除数据表

drop table tabls_name;

②删除数据表数据,但保留表结构

delete from tables_name;

5、更改

①表

名称

alter table old_table_name rename to new_table_name;

注意事项:如果现在的表正在被其他表或程序应用,那么可能会导致无法正常引用。

字符集

alter table my_table convert to character set utf8mb4 collate utf8mb4_unicode_ci;

②列

名称

           alter table table_name change old_name new_name 属性;

属性

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

字符集

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

6、练习

1、创建一个包含编号,姓名,性别的表并添加内容

1、创建一个 包含姓名,年龄,出生年月并添加内容

四、数据操作

1、增

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

2、删

              delete from table_name where 条件;

3、改

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

4、查

               select * from tables_name;

               select column1,column2 from tables_name where 条件;

5、查询数据(查)

1、单表查询

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

条件查询

条件表达式

1、运算符

等于=

不等于!=或<>

大于>

大于等于>=

小于<

小于等于<=

between    BETWEEN运算符用于表示在一个范围内的值,AND

in    IN运算符用于比较一个表达式是否与一组表达式中的任意一个相匹配

2、通配符

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

查询类型

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

2排序查询    排序查询是通过SQL查询语句将所查询的结果按照指定的排序方式排列

        升序(默认)            ASC

         降序            DESC

    select * from test order by colume1;

    select * from test order by colume1 DESC, colume2 ASC;

3分组查询    主要用于统计分析,生成对应报表

                        count(*)函数用于统计出现过的记录总和

                        group by用于按照特定字段进行分组

                        select class, count(*) from test group by class;

4去重查询    用于从结果集中删除重复的行,只返回不同的值

    select distinct colume1 from test;

    如果查询多个列,则会显示两列的组合,每个组合只会出现一次

5分页查询    用于在SQL语句中限制返回数据的条数该技术可用于显示诸如Web页面之类的大量数据

    limit    表示要返回的记录数

    offset    表示查询结果的起始位置或查询结果的偏移量

    select * from test limit 10 offset 10;

6子查询    在一个SQL语句中嵌套使用另一个完整的SQL查询语句。子查询通常用作主查询的查询条件或结果过滤条件,以及用于提供主查询需要的一些数据

    select * from test where age > (select avg(age) from test);

7函数查询

①聚合函数—可以配合where子句,条件匹配使用

SUM    求某一列的值的总和

    select sum(colume1) from test;

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

COUNT    用于计算指定列中的行数,不包含非空行

   select count(id) from test;

MAX    用于计算指定列中的最大值

    MAX函数适用于任何数据类型,无论列中包含的是数字、文本还是其他类型的数据

    如果是文本字符串类型,则按照字符串的字典序进行排序

    select max(id) from test;

MIN    用于计算指定列中的最小值

    MIN函数适用于任何数据类型,无论列中包含的是数字、文本还是其他类型的数据

    如果是文本字符串类型,则按照字符串的字典序进行排序

    select min(id) from test;

②字符串函数—了解

CONCAT    连接两个或多个字符串,并返回合成后的新字符串

    select concat('hello',' ','World');

LENGTH    返回字符串的长度(字符数)

    select length('Hello World');

UPPER    将字符串转换为大写字母

    select upper(Hello World);

LOWER    将字符串转换为小写字母

    select lower(Hello World);

SUBSTR    返回指定字符串中的一部分,可以使用起始位置和长度指定要返回的子字符串

    select substr('Hello World',7,5);

REPLACE

    将指定字符串中的一部分替换为新字符串,并返回新的字符串

    select replace('Hello World','Hello','Hi');

③日期时间函数—了解

④数学函数—了解

2、多表查询

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

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

例题:将数据表students和courses关联

 

 

外连接查询

左外连接查询

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

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

右外连接查询

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

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


 

相关文章:

Linux系统中的SQL语句

本节主要学习&#xff0c;SQL语句的语句类型&#xff0c;数据库操作&#xff0c;数据表操作&#xff0c;和数据操作等。 文章目录 一、SQL语句类型 DDL DML DCL DQL 二、数据库操作 1.查看 2.创建 默认字符集 指定字符集 3.进入 4.删除 5.更改 库名称 字符集 6…...

力扣27 26 283 844 977 移除数组

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并原地修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的…...

【沐风老师】3DMAX自动材质插件使用方法教程

3DMAX自动材质插件使用方法教程 3DMAX自动材质工具用于在将纹理加载到3dsax中时快速创建简单的材质&#xff0c;并具有一些很酷的材质功能。 这个插件可以根据真正制造商的纹理&#xff08;通常比例为2:1&#xff09;快速创建简单的木材材质&#xff0c;并根据板材的长度自动对…...

让你 React 组件水平暴增的 5 个技巧

目录 透传 className、style 通过 forwardRef 暴露一些方法 useCallback、useMemo 用 Context 来跨组件传递值 React.Children、React.cloneElement 总结 最近看了一些 Ant Design 的组件源码&#xff0c;学到一些很实用的技巧&#xff0c;这篇文章来分享一下。 首先&am…...

阿里云部署 ChatGLM2-6B 与 langchain+ChatGLM

1.ChatGLM2-6B 部署 更新系统 apt-get update 安装git apt-get install git-lfs git init git lfs install 克隆 ChatGLM2-6B 源码 git clone https://github.com/THUDM/ChatGLM2-6B.git 克隆 chatglm2-6b 模型 #进入目录 cd ChatGLM2-6B #创建目录 mkdir model #进入目录 cd m…...

F12开发者工具的简单应用

目录 elements 元素 1、元素的定位和修改 2、UI自动化应用 console 控制台 sources 源代码 network 网络 1、定位问题 2、接口测试 3、弱网测试 performance 性能 memory 存储 application 应用 recorder 记录器 界面展示如下&#xff08;设置中可以切换中英文&am…...

【 Python 全栈开发 - 人工智能篇 - 45 】决策树与随机森林

文章目录 一、概念与原理1.1 决策树1.1.1 概念1.1.2 原理特征选择分割方法 1.1.3 优点与缺点1.1.4 Python常用决策树算法 1.2 随机森林1.2.1 概念1.2.2 原理1.2.3 优点与缺点1.2.4 Python常用随机森林算法 1.3 决策树与随机森林的比较1.3.1 相同之处1.3.2 不同之处 二、决策树算…...

SpringBoot集成kafka全面实战

本文是SpringBootKafka的实战讲解&#xff0c;如果对kafka的架构原理还不了解的读者&#xff0c;建议先看一下《大白话kafka架构原理》、《秒懂kafka HA&#xff08;高可用&#xff09;》两篇文章。 一、生产者实践 普通生产者 带回调的生产者 自定义分区器 kafka事务提交…...

新建Git仓库,将本地文件上传至仓库

1、新建仓库&#xff0c;勾选初始化仓库 2、复制仓库链接 3、打开本地文件目录 右键选择 Git Bash Here 打开命令窗口 4、依次按照下面的步骤&#xff08;*如果报错&#xff0c;看原目录下是否存在 .git 需要删除&#xff09; // 生成git文件 git init // 把文件加入暂存区 g…...

算法练习——力扣随笔【LeetCode】【C++】

文章目录 LeetCode 练习随笔力扣上的题目和 OJ题目相比不同之处&#xff1f;定义问题排序问题统计问题其他 LeetCode 练习随笔 做题环境 C 中等题很值&#xff0c;收获挺多的 不会的题看题解&#xff0c;一道题卡1 h &#xff0c;多来几道&#xff0c;时间上耗不起。 力扣上的题…...

web服务器(Tomcat)

目录 一、web服务器 1. 常见web服务器 2. web服务器简介 二、 Apache Tomcat服务器 1. Tomcat服务器简介 2. Tomcat服务器基本使用 3. 启动tomcat常见问题 &#xff08;1&#xff09;启动tomcat控制台乱码 &#xff08;2&#xff09;启动tomcat闪退问题 &#xff08;…...

测试方案、功能测试报告、性能测试报告

测试方案内容概要&#xff1a; 项目内容介绍&#xff0c;测试计划安排&#xff08;人员时间&#xff09;&#xff0c;测试环境&#xff08;系统配置&#xff09;需求功能点&#xff08;内容介绍&#xff0c;测试安排&#xff09;&#xff0c;重点难点场景&#xff0c;系统集成…...

【代码随想录day21】二叉搜索树的最近公共祖先

题目 思路 解题的关键是知道自顶向低递归遍历&#xff0c;第一次遇到root在p和q的区间中时&#xff0c;则root就是p和q的最近公共祖先节点。 递归法 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val x # …...

ssm文章发布管理系统java小说作品发表jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 ssm文章发布管理系统 系统有2权限&#xff1a;前台账…...

AXI协议之AXILite开发设计(二)

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 二、AXI-Lite关键代码分析 1、时钟与…...

Qgis二次开发-QgsMapTool地图交互工具详解

1.简介 QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如&#xff0c;地图平移和缩放功能被实现为地图工具。 QgsMapTool是抽象基类&#xff0c;以下是类的继承关系&#xff1a; 2.常用接口 virtual void canvasDoubleClickEvent (QgsMapMouseEvent *e)重写鼠标…...

MySQL基础(四)数据库备份

目录 前言 一、概述 1.数据备份的重要性 2.造成数据丢失的原因 二、备份类型 &#xff08;一&#xff09;、物理与逻辑角度 1.物理备份 2.逻辑备份 &#xff08;二&#xff09;、数据库备份策略角度 1.完整备份 2.增量备份 三、常见的备份方法 四、备份&#xff08…...

子类化QThread来实现多线程,moveToThread函数的作用

子类化QThread来实现多线程&#xff0c; QThread只有run函数是在新线程里的&#xff0c;其他所有函数都在QThread生成的线程里。正确启动线程的方法是调用QThread::start()来启动。 一、步骤 子类化 QThread&#xff1b;重写run&#xff0c;将耗时的事件放到此函数执行&#…...

经典面试题(力扣,接雨水)

接雨水 方法一思路测试代码复杂度测试结果 方法二思路测试代码复杂度测试结果 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1]…...

2023年深圳杯数学建模C题无人机协同避障航迹规划

2023年深圳杯数学建模 C题 无人机协同避障航迹规划 原题再现&#xff1a; 平面上A、B两个无人机站分别位于半径为500 m的障碍圆两边直径的延长线上&#xff0c;A站距离圆心1 km&#xff0c;B站距离圆心3.5 km。两架无人机分别从A、B两站同时出发&#xff0c;以恒定速率10 m/s…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...

大模型真的像人一样“思考”和“理解”吗?​

Yann LeCun 新研究的核心探讨&#xff1a;大语言模型&#xff08;LLM&#xff09;的“理解”和“思考”方式与人类认知的根本差异。 核心问题&#xff1a;大模型真的像人一样“思考”和“理解”吗&#xff1f; 人类的思考方式&#xff1a; 你的大脑是个超级整理师。面对海量信…...