系统学习Linux-MySQL语句(二)

news2024/10/9 0:45:07

一、SQL语句类型

DDLDDL(Data Definition Language,数据定义语言):用于定义数据库中的各种对象,包括数据库、表、视图、触发器等,常见的 DDL 命令有 CREATE、ALTER、DROP
DMLDML(Data Manipulation Language,数据操作语言):用于操作表格中的数据,进行新增、查询、更新、删除等操作,常见的 DML 命令有 SELECT、INSERT、UPDATE、DELETE
DCLDCL(Data Control Language,数据控制语言):用于管理数据库的权限和安全性,包括授权、回收权限等操作,常见的 DCL 命令有 GRANT、REVOKE
DQLDQL(Data Query Language,数据查询语言)是 SQL 的一个子集,主要用于查询数据库中的数据,常见的 DQL 命令包括 SELECT

二、数据库操作

基础命令

查看show databases;
创建默认字符集create database 数据库名称;默认是latin1
指定字符集create database 数据库名称 character set utf8;使用uft8格式的字符集
进入use 数据库名称;
查看当下数据库show tables;
删除drop database 数据库名称;
更改库名称进入到数据库的目录中修改数据库的名称
字符集ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER DATABASE:这是一个用于修改数据库属性的SQL语句。
CHARACTER SET utf8mb4:这部分指定了要将数据库的字符集修改为utf8mb
COLLATE utf8mb4_unicode_ci:修改数据库排序规则为这个,也是常用排序规则。
练习创建2个数据库,一个全写,一个缩写(指定字符集)
删除缩写的,将全写的名称改为缩写的

基础命令演示

进入mysql

mysql -uroot -p123456

mysql服务  登陆用户  登陆密码

show databases;

查看数据库

create database 数据库名称;

创建数据库(默认是latin1)

create database 数据库名称 character set utf8;

创建数据库,使用uft8格式的字符集

Latin1:Latin1是一种单字节编码,它使用8位(1个字节)来表示每个字符。它覆盖了拉丁字母、数字以及一些特殊符号,共计256个字符。

UTF-8:UTF-8是一种变长编码,它可以使用1至4个字节来表示每个字符。它支持Unicode字符集,可以表示几乎所有的国际字符。

use 数据库名称;

进入数据库

show tables;

查看当前数据库

drop database 数据库名称;

删除数据库 

alter database sy character set utf8mb4 collate utf8mb4_unicode_ci;

修改为utf8字符排序规则 


三、数据表操作

数据类型

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 存储音视频等媒体文件

创建数据库

create table 数据表名称(
    第一列 类型属性,
    第二列 类型属性,
    ......
) character set utf8mb4 collate utf8mb4_unicode_ci;

create table class_five(
id int null,
name varchar(40) not null,
xingbie char(20) not null)character set utf8mb4 collate utf8mb4_unicode_ci;

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

create table students(
id int primary key,
name varchar(20) not null,
age int
); 

查看表内的数据

select * from tables_name;

select column1,column2 from tables_name where 条件;

查看表格的属性

describe tables_name;

删除数据表

drop table tables_name;

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

delete from tables_name;

更改表名称

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;


四、数据操作

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

delete from table_name where 条件;

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

 

select * from tables_name;

select column1,column2 from tables_name where 条件;


五、查询数据(查)

单表查询

全表查询(需要查询条件

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

条件表达式(通常跟在where子句之后使用)

运算符等于=
不等于!=或<>
大于>
大于等于>=
小于<
小于等于<=
betweenBETWEEN运算符用于表示在一个范围内的值,AND
inIN运算符用于比较一个表达式是否与一组表达式中的任意一个相匹配
通配符%%通配符匹配任意数量(包括0个)的字符通常会和like一起使用
__通配符匹配一个任意字符

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

排序查询排序查询是通过SQL查询语句将所查询的结果按照指定的排序方式排列升序(默认)ASC
降序DESC
select * from test order by colume1;
select * from test order by colume1 DESC, colume2 ASC;
分组查询主要用于统计分析,生成对应报表
count(*)函数用于统计出现过的记录总和
group by用于按照特定字段进行分组
select class, count(*) from test group by class;
去重查询用于从结果集中删除重复的行,只返回不同的值
select distinct colume1 from test;
如果查询多个列,则会显示两列的组合,每个组合只会出现一次
分页查询用于在SQL语句中限制返回数据的条数该技术可用于显示诸如Web页面之类的大量数据
limit    表示要返回的记录数

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

(在SQL中,行编号是从0开始的,而不是从1开始的。)

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

单表函数查询

聚合函数

可以配合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');
日期时间函数(了解)数学函数(了解)

多表查询

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

内连接查询
 
内连接查询(INNER JOIN):显示两个表中满足条件的行,并且只显示这两个表中共有的列
SELECT *
FROM table1
INNER JOIN table2
ON table1.column1 = table2.column2;
外连接查询左外连接查询左外连接查询(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;

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

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

相关文章

YOLOv1论文细节总结(confidence)

总结几个细节点&#xff1a; 1、置信度计算&#xff1a; 训练时&#xff1a; 测试时置信度&#xff0c;这里网络输出仍然是 以上是各大博文讲解时列出的也是论文中提到的公式&#xff0c;但其实最清楚的是下面这段文字讲出的&#xff1a; 说白了&#xff1a; 网络输出三个…

深圳国际新能源及智能网联汽车全产业博览会今年10月举办

7月25日&#xff0c;深圳市工业和信息化局与励展博览集团共同在深圳举办Automotive World China 2023深圳国际新能源及智能网联汽车全产业博览会&#xff08;简称“AWC 2023”&#xff09;全球推介启动大会&#xff0c;该博览会将于2023年10月11日-13日在深圳国际会展中心盛大举…

K8S初级入门系列之十-控制器(StatefulSet)

一、前言 在前面的系列K8S初级入门系列之六-控制器(RC/RS/Deployment)&#xff0c;K8S初级入门系列之七-控制器(Job/CronJob/Daemonset)我们已经介绍了多种控制器&#xff0c;今天我们将介绍最后一种控制器--StatefulSet&#xff0c;顾名思义&#xff0c;即有状态Set&#xff0…

我的第一个flutter项目(Android Webview)

前言&#xff1a;flutter开发环境搭建Flutter的开发环境搭建-图解_☆七年的博客-CSDN博客 第一个flutter简单项目&#xff0c;内容是一个主界面&#xff0c;其中&#xff1a; 1.内容点击数字自增 2.跳转一个空页&#xff0c; 3.跳转一个WebView界面 其中涉及添加主键&#xf…

选择合适明星代言:确保品牌传播与销售成功的关键一步

在当今激烈的市场竞争中&#xff0c;企业需要不断探索新的营销策略来吸引消费者的关注和忠诚度。其中一种被广泛采用的方法是邀请明星代言产品或品牌。判断想请的明星与自己的产品是否相合适是十分重要的步骤&#xff0c;这关系到代言活动的成功与否。以下是一些方法可以帮助你…

DuckDB全面挑战SQLite

概要 当我们想要在具有嵌入式数据库的本地环境中工作时&#xff0c;我们倾向于默认使用 SQLite。虽然大多数情况下这都很好&#xff0c;但这就像骑自行车去 100 公里之外&#xff1a;可能不是最好的选择。 这篇文章中将讨论以下要点&#xff1a; • DuckDB 简介&#xff1a;它…

企业邮箱默认发信账户用途说明及设置方法

有的时候&#xff0c;企业有多个子公司&#xff0c;或者对内和对外需要用不同的邮箱地址&#xff0c;或者发给不同的人需要用不同的邮箱地址&#xff0c;这个时候企业或用户一般会设置别名邮箱用来区分。 那么问题来了&#xff0c;这么多邮箱账号&#xff0c;我发信的时候默认…

大模型的淘金时代,HPE给出了一份智能经济“奇点”攻略

进入2023年&#xff0c;ChatGPT引发了一个新的AI时代——大模型时代。陆奇说&#xff1a;“我已经跟不上大模型时代的狂飙速度了&#xff01;”大模型引发了AI产业整体升级换代&#xff0c;各种大模型层出不穷&#xff0c;科技公司纷纷入局&#xff0c;AI创业公司再次雨后春笋般…

【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)

探究Redis服务启动的过程机制的技术原理和流程分析的指南&#xff08;持久化功能分析&#xff09; Redis提供的持久化机制Redis持久化如何工作Redis持久化的故障分析持久化频率操作分析数据库多久调用一次write&#xff0c;将数据写入内核缓冲区&#xff1f;内核多久将系统缓冲…

算法空间复杂度详解

如果您觉得文章不错&#xff0c;期待你的一键三连哦&#xff0c;你的鼓励是我创作的动力之源&#xff0c;让我们一起加油&#xff0c;一起奔跑&#xff0c;让我们顶峰相见&#xff01;&#xff01;&#xff01; 前言 避免在处理大规模问题时出现效率低下&#xff0c;耗费较多…

STM32 Flash学习(一)

STM32 FLASH简介 不同型号的STM32&#xff0c;其Flash容量也不同。 MiniSTM32开发板选择的STM32F103RCT6的FLASH容量为256K字节&#xff0c;属于大容量产品。 STM32的闪存模块由&#xff1a;主存储器、信息块和闪存存储器接口寄存器等3部分组成。 主存储器&#xff0c;该部分…

服务器被爬虫恶意攻击怎么办?

在有预算的情况可以采购第三方服务防火墙&#xff0c;没钱就使用开源的WAF进行防护。 # WAF防火墙的基本防护原理 WAF&#xff08;Web 应用防火墙&#xff09;可以使用多种技术来防止恶意爬虫攻击&#xff0c;例如&#xff1a; 1. 黑名单&#xff1a;WAF 可以使用黑名单技术来…

会点C++还需要再学Python吗?

提到的C、数据结构与算法、操作系统、计算机网络和数据库技术等确实是计算机科学中非常重要的基础知识领域&#xff0c;对于软件开发和计算机工程师来说&#xff0c;它们是必备的核心知识。掌握这些知识对于开发高性能、可靠和安全的应用程序非常重要。Python作为一种脚本语言&…

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建

Java版知识付费-轻松拥有知识付费平台 多种直播形式&#xff0c;全面满足直播场景需求 公开课、小班课、独立直播间等类型&#xff0c;满足讲师个性化直播场景需求&#xff1b;低延迟、双向视频&#xff0c;亲密互动&#xff0c;无论是互动、答疑&#xff0c;还是打赏、带货、…

【C++初阶】介绍stack_queue及OJ题

介绍stack_queue及OJ题 前言一、简单了解1、stack2、queue 二、OJ题&#xff08;前三个栈&#xff0c;第四、五个队列&#xff09;1、最小栈&#xff08;1&#xff09;题目描述&#xff08;2&#xff09;解题思路&#xff08;3&#xff09;解题代码 2、栈的压入、弹出序列&…

【C#】并行编程实战:异步流

本来这章该讲的是 ASP .NET Core 中的 IIS 和 Kestrel &#xff0c;但是我看了下这个是给服务器用的。而我只是个 Unity 客户端程序&#xff0c;对于服务器的了解趋近于零。 鉴于我对服务器知识和需求的匮乏&#xff0c;这里就不讲原书&#xff08;大部分&#xff09;内容了。本…

基于RPA的自动化流程治理方案探索及应用实践

编者荐语&#xff1a; 随着企业数字化转型进程加快&#xff0c;信息系统大量上线&#xff0c;但流程运营管理问题逐渐显现出来。为提升企业流程运营能力&#xff0c;亚信科技联合某省运营商推出智能化流程治理运营模式&#xff0c;尝试基于RPA&#xff08;机器人流程自动化&am…

IRIS搭建docker

之前把web实现了docker&#xff0c;开发或测试环境可能需要开发自己搭数据库&#xff0c;为了方便使用&#xff0c;把数据库也做一个docker。 由于原生的CentOS我还有改yum仓库&#xff0c;所以这次从之前lis搞的改好yum的镜像开始&#xff08;从改好yum的lisnew的镜像创建lis…

SaaS到底是什么,如何做?这份笔记讲明白了

阅读本篇文章&#xff0c;您将可以了解&#xff1a;1、什么是SaaS&#xff1b;2、SaaS的商业模式&#xff1b;3、SaaS的技术架构&#xff1b;4、国内比较好的SaaS平台。 一、什么是SaaS SaaS即软件即服务&#xff08;Software as a Service&#xff09;&#xff0c;是一种通过…

【数据结构】AVL树/红黑树

目录 1.AVL树&#xff08;高度平衡二叉搜索树&#xff09; 10.1.基本概念 10.2.实现 10.2.1.AVL树节点的定义 10.2.2.AVL树的插入 10.2.3.AVL树的旋转 1.新节点插入较高左子树的左侧---左左&#xff1a;右单旋 2.新节点插入较高右子树的右侧---右右&#xff1a;左单旋 3.新节点…