MySQL数据库(SQL分类)

SQL分类

分类全称解释
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户,控制数据库的访问权限

DDL

数据库操作

-- 查询
--查询所有数据库
show databases;
--查询当前数据库
select database();
--创建数据库
create database [if not exists] 数据库名[defaul charset 字符集] [collate 排序规律];
--删除
drop database [if exists]数据库名;
--使用
use 数据库名; 

注:数据库语言不区分大小写
数据库语言都以分号结尾

表操作

查询表

--查询当前数据库所有表show tables;-- 查询表结构desc 表名;-- 查询指定表的建表语句show create table 表名;

创建表

create table 表名(
字段1 字段1类型[comment 字段1注释]
字段2 字段2类型[comment 字段1注释]
字段3 字段3类型[comment 字段1注释]
.......
) [comment 表注释];

comment 为可选项,作用类似是注释,解释字段或表

 create table user(id int comment '编号',name varchar(50) comment '姓名',age int comment '年龄',gender varchar(50) comment '性别') comment '用户表';

查询表结构
在这里插入图片描述
查询建表语句
在这里插入图片描述

修改表

添加字段
alter table 表名 add 字段名 类型(长度)[comment 注释] [约束];

-- 在emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)
alter table emp add nickname varchar(20) comment "昵称";

修改字段
1.修改数据
alter table 表名 modify 字段名 新数据类型(长度);
2.修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束]
3.修改表名
alter table 表名 rename to 新表名;

--将emp表中的nickname字段修改为username,类型为varchar(30)
alter table emp nickname username varchar(30) comment '昵称';
-- 将emp表的表名修改为employee
alter table emp rename to employee;

在这里插入图片描述
删除表
1.删除表
drop table [if exists] 表名;
2.删除指定表,并重新创建该表
truncate table 表名;
在这里插入图片描述

数据类型概览

分类类型大小有符号范围 (SIGNED)无符号范围 (UNSIGNED)描述
整数类型TINYINT1 字节(-128, 127)(0, 255)小整数值
SMALLINT2 字节(-32,768, 32,767)(0, 65,535)小整数值
MEDIUMINT3 字节(-8,388,608, 8,388,607)(0, 16,777,215)中整数值
INT/INTEGER4 字节(-2,147,483,648, 2,147,483,647)(0, 4,294,967,295)标准整数值
BIGINT8 字节(-2^63, 2^63-1)(0, 2^64-1)大整数值
浮点类型FLOAT4 字节~(-3.4028236E+38, 3.4028236E+38)~ (0, 3.4028236E+38)单精度浮点数
DOUBLE8 字节~(-1.7976931348623157E+308, …308)~ (0, 1.7976931348623157E+308)双精度浮点数
DECIMAL可变大小精确的定点数值精确的定点数值 ,依赖M(精度)D(标度)小数值 (精确度高)

解释:精度指整个小数的长度,标度指小数位数。
举例:age TINYINT UNSIGNED占用字节小且不会出现负数
score DOUBLE(4,1)一位小数,长度为4

以下是表格清晰化后的内容,用中文并使用 Markdown 格式:


字符串/文本类型数据类型概览

分类类型大小描述
字符串类型CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
二进制类型TINYBLOB0-255 bytes不超过 255 个字节的二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65535 bytes二进制形式的长文本数据
TEXT0-65535 bytes长文本数据
MEDIUMBLOB0-16,777,215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16,777,215 bytes中等长度的文本数据
LONGBLOB0-4,294,967,295 bytes二进制形式的超长文本数据
LONGTEXT0-4,294,967,295 bytes超长文本数据

  1. 字符串类型
    CHAR:定长字符串,适合长度固定的文本数据。
    VARCHAR:变长字符串,适合长度可变的文本数据。
    区别:char(10)即使只有一个长度也会占用10个字节;varchar(10)最多占用10个字节,真正占用字节数取决于长度
  2. 二进制类型和文本类型
    BLOB:用于存储二进制数据,例如图片或文件。
    TEXT:用于存储文本数据,按长度分为 TINYTEXTTEXTMEDIUMTEXTLONGTEXT
    数据大小根据具体需求选择合适的类型,超长数据需要使用 LONGBLOBLONGTEXT

以下是日期类型数据清晰化后的表格,用中文并使用 Markdown 格式展示:


分类类型大小范围格式描述
日期类型DATE3 字节1000-01-01 至 9999-12-31YYYY-MM-DD日期值
时间类型TIME3 字节-838:59:59 至 838:59:59HH:MM:SS时间值(时分秒)
年份类型YEAR1 字节1901 至 2155YYYY年份值
日期时间类型DATETIME8 字节1000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
时间戳类型TIMESTAMP4 字节1970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS记录联合日期和时间的值,用于标记时间

解释

  1. DATE 类型:

    • 存储纯日期值(例如:生日、节假日)。
    • 格式为 YYYY-MM-DD
  2. TIME 类型:

    • 用于表示时间值(时、分、秒),支持负值,适用于持续时间表示。
  3. YEAR 类型:

    • 用于存储年份值,适合年份相关数据(如生产年份)。
  4. DATETIME 类型:

    • 组合日期和时间的值,精确到秒,适用于完整的日期时间记录。
  5. TIMESTAMP 类型:

    • 表示自 1970 年以来的时间点,用于记录操作时间,受时区影响。

示例:
在这里插入图片描述

create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '姓名',gender char(1) comment '性别',age tinyint unsigned comment '年龄',sno char(18) comment '身份证号',time date comment '入职时间'
) comment '员工表';   

输入后形成的表结构:
在这里插入图片描述

DML

添加数据

  1. 给指定字段添加数据
    insert into 表名 (字段1,字段2,....) values(值1,值2,....);
  2. 给全部字段添加数据
    insert into 表名 values(值1,值2,值3,....);
  3. 批量添加数据
    inset into 表名 (字段名1,字段名2,....) values (值1,值2,值3,...) (值1,值2,值3,....);
    insert into 表名 values(值1,值2,值3,....),(值1,值2,值3,....);
-- 给指定字段添加数据
insert into employee(id,workno,name,gender,age,sno,time) values (1,'1','hong','女',19,123456789123456789,'2024-12-16');
-- 查询所有数据
SELECT * from employee;
-- 给全部字段添加数据
insert into employee values (2,'2','kang','男',20,123456789456789123,'2025-05-06');
-- 批量添加数据
insert into employee values (3,'3','tong','女',20,123456789456723123,'2025-05-06'),(4,'4','miaomiao','女',20,145456789456789123,'2024-05-06');

在这里插入图片描述

修改数据

update 表名 set 字段名1 = 值1,字段2 = 值2,....[where 条件]
注:where条件为可选项,但是如果不加默认为修改所有数据

 -- 修改id为1的数据,将name改为'rora'update employee set name = 'rora' where id = 1;-- 修改id为4的数据,将age改为23update employee set age = 23 where id = 4;-- 修改所有数据,将日期改为2020-06-16update employee set time = '2020-06-16';

在这里插入图片描述

删除数据

delete from 表名 [where 条件];
注:
1.delete语句的条件为可选项,如果没有,会删除表中的所有数据
2.delete语句不能删除某一个字段的值(可以使用update)

-- 删除gender为女的数据
delete from employee where gender = "女";

在这里插入图片描述

DQL

数据查询语言,用来查询数据库中表的记录
关键字:select
语法
select : 字段列表
from:表名列表
where:条件列表
group by:分组字段列表
having:分组后条件列表
order by:排序字段列表
limit:分页参数
基本查询
条件查询WHERE
聚合查询count,max,min,avg,sum
分组查询group by
排列查询order by
** 分页查询**(limit

1.查询多个字段
select 字段1,字段2,字段3...from 表名;
select * from 表名;
2.设置别名
select 字段1[as 别名],字段2[as 别名2]...from 表名;
3.取出重复记录
select distinct 字段列表 from 表名;

重新创建emp表,并输入信息:

CREATE TABLE emp (id INT COMMENT '编号',workno VARCHAR(10) COMMENT '工号',name VARCHAR(10) COMMENT '姓名',gender CHAR(1) COMMENT '性别',age TINYINT UNSIGNED COMMENT '年龄',idcard CHAR(18) COMMENT '身份证号',workaddress VARCHAR(50) COMMENT '工作地址',entrydate DATE COMMENT '入职时间'
) COMMENT '员工表';

输入信息后:
在这里插入图片描述

 -- 查询指定字段 name,workno,age,返回
select name,workno,age from emp;
-- 查询所有字段
select * from emp;
select id,workno,name,gender,age,idcard,workaddress,entrydate from emp;
-- 查询所有员工工作地址,起别名
select workaddress as '工作地址' from emp;
-- 查询员工地址,去重
select distinct workaddress from emp;

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

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

相关文章

202309 青少年软件编程等级考试C/C++ 二级真题答案及解析(电子学会)

第 1 题 数组指定部分逆序重放 将一个数组中的前k项按逆序重新存放。例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。 时间限制:1000 内存限制:65536 输入 输入为两行: 第一行两个整数,以空格分隔,分别为数组元素的个数n(1<n<100)以及指定的k(1<=k<= n…

网管平台(进阶篇):路由器的管理实践

在当今数字化时代&#xff0c;路由器作为网络连接的核心设备&#xff0c;其管理对于确保网络的稳定、高效和安全至关重要。本文旨在深入探讨路由器管理的重要性、基本设置步骤、高级功能配置以及日常维护&#xff0c;帮助读者构建一个高效且安全的网络环境。 一、路由器管理的…

word-break控制的几种容器换行行为详解

word-break 属性在控制换行行为时需要根据语言判断&#xff0c;对于中文 一个字符就是一个单词&#xff0c;字符换行不影响阅读理解&#xff0c;而对于英文来说&#xff0c;多个连续的字符才会是一个单词&#xff0c;例如中文的 早 英文为 morning。 morning7个字符才算一个单词…

国内源快速在线安装qt5.15以上版本。(10min安装好)(图文教程)

参考文章&#xff1a;Qt6安装教程——国内源-CSDN博客 1、在国内源上下载qt在线安装工具 NJU Mirror 2、 将下载好的在线安装工具&#xff0c;放到C盘根目录&#xff0c; 2.1 打开windows Powershell&#xff08;WinX&#xff09;&#xff0c;下边那个最好。 输入两条指令&a…

环境搭建——Mysql、Redis、Rocket MQ部署

前言 在搭建分布式系统时&#xff0c;MySQL、Redis 和 RocketMQ 是常用的基础服务。每个服务各自的功能不同&#xff0c;但它们在数据存储、缓存、消息队列等方面不可或缺。如果你是初学者&#xff0c;别担心&#xff0c;本文会一步步详细教你如何在服务器上通过 Docker 部署这…

Kafka——两种集群搭建详解 k8s

1、简介 Kafka是一个能够支持高并发以及流式消息处理的消息中间件&#xff0c;并且Kafka天生就是支持集群的&#xff0c;今天就主要来介绍一下如何搭建Kafka集群。 Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式&#xff08;即无Zookeeper&#xff09;模式这两种模式搭…

【SQL】进阶知识 -- 删除表的几种方法(包含表内单个字段的删除方法)

大家好&#xff01;欢迎来到本篇SQL进阶博客。如果你已经掌握了基础的SQL操作&#xff0c;接下来就让我们一起探索删除表的几种方法。删除表可能听起来有点危险&#xff0c;事实也是如此&#xff0c;所以在我们实际开发过程中&#xff0c;大多数时候我们都有数据的使用权限&…

MYSQL5.7 全文检索中文无返回数据

在MySQL 5.7.6之前&#xff0c;全文索引只支持英文全文索引&#xff0c;不支持中文全文索引&#xff0c;需要利用分词器把中文段落预处理拆分成单词&#xff0c;然后存入数据库。 从MySQL 5.7.6开始&#xff0c;MySQL内置了ngram全文解析器&#xff0c;用来支持中文、日文、韩文…

JVM虚拟机的组成 笼统理解 六大部分 类加载子系统 运行时数据区 执行引擎 本地接口 垃圾回收器 线程工具

目录 JVM虚拟机的组成&#xff1a;概述 JVM虚拟机的组成&#xff1a;详细解析 1. 类加载子系统 2. 运行时数据区 3. 执行引擎 4. 本地接口 5. 垃圾回收器 6. 线程管理与调试工具 概述 JVM&#xff08;Java Virtual Machine&#xff09;是一个虚拟计算机&#xff0c;执行…

2025 年 UI 大屏设计新风向

在科技日新月异的 2025 年&#xff0c;UI 大屏设计领域正经历着深刻的变革。随着技术的不断进步和用户需求的日益多样化&#xff0c;新的设计风向逐渐显现。了解并掌握这些趋势&#xff0c;对于设计师打造出更具吸引力和实用性的 UI 大屏作品至关重要。 一、沉浸式体验设计 如…

虚拟拨号技术(GOIP|VOIP)【基于IP的语音传输转换给不法分子的境外来电披上一层外衣】: Voice over Internet Protocol

文章目录 引言I 虚拟拨号技术(GOIP|VOIP)原理特性:隐蔽性和欺骗性II “GOIP”设备原理主要功能III 基于IP的语音传输 “VOIP” (Voice over Internet Protocol)IV “断卡行动”“断卡行动”目的电信运营商为打击电诈的工作V 知识扩展虚拟号保护隐私虚拟运营商被用于拨打骚扰…

ETL 数据抽取

ETL ETL 数据抽取 ETL&#xff08;Extract, Transform, Load&#xff09;是数据集成和处理的重要过程&#xff0c;其中数据抽取&#xff08;Extract&#xff09;是第一步&#xff0c;负责从各种数据源中提取数据。以下是ETL数据抽取的详细说明和常用工具&#xff1a; 1. 数据…

算法-查找数组对角线上最大的质数

力扣题目&#xff1a;2614. 对角线上的质数 - 力扣&#xff08;LeetCode&#xff09; 给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数&#xff0c;返回 0 。 注意&#xff1a; 如果某个整数大于…

mysql 与Redis 数据强一致方案

前言mysql与Redis能实现数据的强一致?分布式实现数据的强一致的方案是什么?mysql 与 Redis 能强一致吗?Redis 的事务不适合实现强一致那怎么办?(mysql 与Redis 有强一致方案吗?) 前言 mysql与Redis一般不会使用强一致性因为不仅设计复杂并且性能差(典型的吃力不讨好类型)…

48_Lua错误处理

在编写Lua应用时,都可能会遇到不可预见的错误,而错误处理是确保程序稳定性和健壮性的关键环节。有效的错误处理不仅能防止程序崩溃,还能提供有用的反馈信息给开发者或最终用户,从而提高应用程序的质量。本文将详细介绍Lua中的错误处理机制。 1.错误类型 Lua中的错误类型主…

代理模式和适配器模式有什么区别

代理模式&#xff08;Proxy Pattern&#xff09;和适配器模式&#xff08;Adapter Pattern&#xff09;都是结构型设计模式&#xff0c;它们有不同的应用场景和目标&#xff0c;虽然在某些方面看起来相似&#xff0c;但它们的意图和实现方式有显著的区别。 1. 代理模式&#x…

js:正则表达式

目录 正则表达式的语法 定义 检测 检索 元字符 边界符 量词 字符类 表单判断案例 修饰符 过滤敏感词 正则表达式是一种用于匹配和操作文本的强大工具&#xff0c;它是由一系列字符和特殊字符组成的模式&#xff0c;用于描述要匹配的文本字符组合模式 正则表达式是一…

Go oom分析(二)——导出dump离线分析

在 Go 程序中导出内存或 CPU 的 dump 文件&#xff08;通常通过 pprof 工具生成&#xff09;并进行分析&#xff0c;以下是详细步骤&#xff1a; 1. 在程序中开启 pprof 在你的 Go 程序中引入 net/http/pprof&#xff0c;开启 pprof 服务&#xff1a; import (_ "net/h…

Excel数据叠加生成新DataFrame:操作指南与案例

目录 一、准备工作 二、读取Excel文件 三、数据叠加 四、处理重复数据&#xff08;可选&#xff09; 五、保存新DataFrame到Excel文件 六、案例演示 七、注意事项 八、总结 在日常数据处理工作中&#xff0c;我们经常需要将不同Excel文档中的数据整合到一个新的DataFra…

Git文件夹提交错了,怎么撤销?

最近提交了一些不应该提交的文件夹到git中,现在需要移除它们,现在简单记录一下操作日志: 情况一 文件夹已经被添加到 Git&#xff0c;但未提交 如果文件夹已经被 git add 添加到暂存区中&#xff0c;但尚未提交&#xff0c;你可以使用以下命令将其从暂存区中移除: git rm -r …