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改为23
 update employee set age = 23 where id = 4;
   -- 修改所有数据,将日期改为2020-06-16
 update 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;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Swift 趣味开发:查找拼音首字母全部相同的 4 字成语(上)

概述 Swift 语言是一门现代化、安全、强大且还算性感的语言。在去年 WWDC 24 中苹果正式推出了秃头码农们期待许久的 Swift 6.0,它进一步完善了 Swift 语言的语法和语义,并再接再厉——强化了现代化并发模型的安全性和灵活性。 这里我们不妨用 Swift 来…

C++ STL之容器介绍(vector、list、set、map)

1 STL基本概念 C有两大思想,面向对象和泛型编程。泛型编程指编写代码时不必指定具体的数据类型,而是使用模板来代替实际类型,这样编写的函数或类可以在之后应用于各种数据类型。而STL就是C泛型编程的一个杰出例子。STL(Standard …

VUE3 + Ant Design Vue4 开发笔记

异常记录 [Vue warn]: Extraneous non-props attributes (options) were passed to component but could not be automatically inherited because component renders fragment or text root nodes 定位原因解决方法 错误的中文释义:[Vue 警告]:传递给…

QT跨平台应用程序开发框架(2)—— 初识QT

目录 一,创建helloworld 1.1 通过图形化 1.2 通过代码 1.3 通过编辑框 1.4 使用按钮 二,对象树 2.1 关于对象树 2.2 演示释放流程 三,乱码问题 3.1 为什么会有乱码问题 3.2 解决乱码问题 四,认识Qt坐标系 五&#xf…

【搭建JavaEE】(3)前后端交互,请求响应机制,JDBC数据库连接

前后端交互 Apache Tomat B/S目前主流。 tomat包含2部分: apache容器 再认识servlet 抽象出的开发模式 项目创建配置 maven javaeetomcat 忽略一些不用的文件 webapp文件夹 HiServlet 这里面出现了webinfo,这个别删因为这个呢,是这这个这…

美摄科技PC端视频编辑解决方案,为企业打造专属的高效创作平台

在当今这个信息爆炸的时代,视频已成为不可或缺的重要内容形式,美摄科技推出了PC端视频编辑解决方案的私有化部署服务,旨在为企业提供一款量身定制的高效创作平台。 一、全面功能,满足企业多样化需求 美摄科技的PC端视频编辑解决…

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里,视觉内容无处不在,而创建和编辑这些内容的能力已经成为许多行业的核心技能…

STM32-笔记41-RTC(实时时钟)

一、什么是RTC? 实时时钟的缩写是RTC(Real_Time Clock)。RTC 是集成电路,通常称为时钟芯片。 实时时钟是一个独立的定时器。 RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设…

51c自动驾驶~合集46

我自己的原文哦~ https://blog.51cto.com/whaosoft/13050104 #世界模型会是L3自动驾驶的唯一解吗 三维空间占有率(3D Occupancy)预测的目的是预测三维空间中的每个体素是否被占有,如果被占有,则对应的体素将被标记。3D Semant…

mybatis-spring @MapperScan走读分析

接上一篇文章:https://blog.csdn.net/qq_26437925/article/details/145100531, 本文注解分析mybatis-spring中的MapperScan注解,则将容易许多。 目录 MapperScan注解定义ConfigurationClassPostProcessor扫描注册beanDefinitionorg.mybatis.s…

Apache PAIMON 学习

参考:Apache PAIMON:实时数据湖技术框架及其实践 数据湖不仅仅是一个存储不同类数据的技术手段,更是提高数据分析效率、支持数据驱动决策、加速AI发展的基础设施。 新一代实时数据湖技术,Apache PAIMON兼容Apache Flink、Spark等…

SQL面试题1:连续登陆问题

引言 场景介绍: 许多互联网平台为了提高用户的参与度和忠诚度,会推出各种连续登录奖励机制。例如,游戏平台会给连续登录的玩家发放游戏道具、金币等奖励;学习类 APP 会为连续登录学习的用户提供积分,积分可兑换课程或…

电商系统,核心通用架构案例设计方案浅析

文章目录 一、用户系统案例设计1、用户信息的存储方案2、用户注册确保唯一3、用户数据合并方案4、用户敏感信息加密存储5、数据传输安全性6、多用户数据隔离性7、防止恶意注册8、用户好友关系存储方案9、用户登录token方案10、会员优先处理设计 二、网关系统设计1、网关的功能2…

【EI 会议征稿】第四届材料工程与应用力学国际学术会议(ICMEAAE 2025)

2025 4th International Conference on Materials Engineering and Applied Mechanics 重要信息 大会官网:www.icmeaae.com 大会时间:2025年3月7-9日 大会地点:中国西安 截稿时间:2025年1月24日23:59 接受/拒稿通知&#xf…

SQL面试题2:留存率问题

引言 场景介绍: 在互联网产品运营中,用户注册量和留存率是衡量产品吸引力和用户粘性的关键指标,直接影响产品的可持续发展和商业价值。通过分析这些数据,企业可以了解用户行为,优化产品策略,提升用户体验…

【Rust自学】11.7. 按测试的名称运行测试

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.7.1. 按名称运行测试的子集 如果想要选择运行的测试,就将测试的名称(一个或多个)作为cargo test的…

深入浅出 Android AES 加密解密:从理论到实战

深入浅出 Android AES 加密解密:从理论到实战 在现代移动应用中,数据安全是不可忽视的一环。无论是用户隐私保护,还是敏感信息的存储与传输,加密技术都扮演着重要角色。本文将以 AES(Advanced Encryption Standard&am…

jupyter notebook练手项目:线性回归——学习时间与成绩的关系

线性回归——学习时间与学习成绩的关系 第1步:导入工具库 pandas——数据分析库,提供了数据结构(如DataFrame和Series)和数据操作方法,方便对数据集进行读取、清洗、转换等操作。 matplotlib——绘图库,p…

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

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

单细胞组学大模型(8)--- scGenePT,scGPT和GenePT的结合,实验数据和文本数据的交融模型

–https://doi.org/10.1101/2024.10.23.619972 研究团队和单位 Theofanis Karaletsos–Head Of AI - Science at Chan Zuckerberg Initiative (Chan Zuckerberg Initiative是扎克伯格和他妻子Chan成立的科研&教育机构) 研究简介 研究背景&…