【MySQL数据库】数据类型和简单的增删改查

目录

数据库

MySQL的常用数据类型 

 1.数值类型:

2.字符串类型 

3.日期类型

MySQL简单的增删改查 

1.插入数据:

 2.查询数据:

3.修改语句:

4.删除语句:


数据库

    平时我们使用的操作系统都把数据存储在文件中,但是文件存储数据有以下几个缺点:1.文件的安全性问题,2.文件不利于数据查询和管理,3.文件不利于存储海量数据,4.文件在程序中控制不方便。为了解决上面这些问题,专家们设计了一种专门用于管理数据的软件--数据库。

  • 数据库(DB) 是长期储存在计算机内、有组织的、可共享的大量数据的集合

  • 数据库管理系统(DBMS) DBMS是一个大型复杂的基础软件系统,位于用户与操作系统之间的一层数据管理软件。

  • 数据库系统(DBS) 数据库系统由数据库、数据库管理系统(及其应用开发工具)、应用程序、数据库管理员四部分构成。

数据库根据是否以二维表存储数据划分为关系型数据库和非关系型数据库。

关系型数据库非关系型数据库
使用SQL不强制要求,一般不基于SQL实现
事务支持支持不支持
复杂操作支持不支持
海量读写操作效率低效率高
基本结构基于表和列,结构固定灵活性较高

 现在比较知名的关系型数据库有甲骨文的Oracle,MySQL,微软的SQL Server等。

MySQL的常用数据类型 

 1.数值类型:

分为整形和浮点型:

数据类型大小说明对应Java类型
BIT[(M)]M指定位数默认为1二进制数,M范围从1到64,存储数值范围从0到2^M-1Boolean,默认M为1.
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节Long
FLOAT(M,D)4字节单精度,M指定长度,D指定小数位数。会发生精度丢失Float
DOUBLE(M,D)8字节Double
DECIMAL(M,D)M/D最大值+2双精度,M指定长度,D表示小数点位数。精确数值BigDecimal
NUMERIC(M,D)M/D最大值+2同DECIMALBigDecimal

数值类型可以指定为无符号,表示不取负数。1字节表示8bit。

2.字符串类型 

数据类型大小说明对应Java类型
VARCHAR(SIZE)0-65535字节可变长度字符串String
TEXT0-65535字节长文本数据String
MEDIUMTEXT0-16777215字节中等长度文本数据String
BLOB0-65535字节二进制形式的长文本数据byte[]

3.日期类型

数据类型大小说明对应Java类型
DATETIME8字节范围从1000到9999年,不会进行时区的检索及转换
java.util.Date
java.sql.Timestamp
TIMESTAMP4字节范围从1970到2038,自动检索当前时区并进行转换
java.util.Date
java.sql.Timestamp

MySQL简单的增删改查 

增删改查即CRUD,新增数据,查询数据,修改数据,删除数据。数据库的增删改查操作将会是我们在今后操作中遇到的最频繁的工作内容,也是最基础最核心的业务,所以我们必须熟练掌握数据库的增删改查相关代码。

下面我来演示一下相关操作:

这是当前我电脑已经存在的数据库。 使用下面代码创建一个student表

-- 创建一张学生表
DROP TABLE IF EXISTS student;
CREATE TABLE student (
   id INT,
   sn INT comment '学号',
   name VARCHAR(20) comment '姓名',
   qq_mail VARCHAR(20) comment 'QQ邮箱'
);

 

1.插入数据:

  注意,MySQL在执行语句时不区分大小写。下面往表中插入数据

INSERT INTO student VALUES (100, 10000, '唐三藏', NULL);
INSERT INTO student VALUES (101, 10001, '孙悟空', '11111');

//插入多行数据
INSERT INTO student (id, sn, name) VALUES
 (102, 20001, '曹孟德'),
 (103, 20002, '孙仲谋');

 2.查询数据:

基本语法:

SELECT
[ DISTINCT ] {* | {column [, column ] ...}
[ FROM table_name ]
[ WHERE ...]
[ ORDER BY column [ ASC | DESC ], ...]
LIMIT ...

2.1全列查询

//通常情况下不建议使用*进行全列查询
//1.查询的列越多,意味着需要传输的数据量越大;
//2. 可能会影响到索引的使用。
SELECT * FROM exam_result;

2.2指定列查询

//指定列的顺序不需要按定义表的顺序来
SELECT id, name, english FROM exam_result;

2.3查询字段可以为表达式

-- 表达式不包含字段
SELECT id, name, 10 FROM exam_result;
-- 表达式包含一个字段
SELECT id, name, english + 10 FROM exam_result;
-- 表达式包含多个字段
SELECT id, name, chinese + math + english FROM exam_result;

2.4为查询结果中的列指定别名,语法格式如下:

SELECT column [AS] alias_name [...] FROM table_name;

2.5使用distinct关键字去重

SELECT math FROM exam_result;
+--------+
| math |
+--------+
|     98 |
|     78 |
|     98 |
|     84 |
|     85 |
|     73 |
|     65 |
+--------+
7 rows in set (0.00 sec)
-- 去重结果
SELECT DISTINCT math FROM exam_result;
+--------+
| math |
+--------+
|     98 |
|     78 |
|     84 |
|     85 |
|     73 |
|     65 |
+--------+
6 rows in set (0.00 sec)

2.6使用order by关键字进行排序,

语法:

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...] 
 ORDER BY column [ASC|DESC], [...];
1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
3. 使用 表达式 别名 排序
-- 查询同学及总分,由高到低
SELECT name, chinese + english + math FROM exam_result 
 ORDER BY chinese + english + math DESC;
SELECT name, chinese + english + math total FROM exam_result 
 ORDER BY total DESC;
4. 可以对多个字段进行排序,排序优先级随书写顺序
-- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
SELECT name, math, english, chinese FROM exam_result 
 ORDER BY math DESC, english, chinese;

2.7使用where关键字进行条件查询

-- 查询英语不及格的同学及英语成绩 ( < 60 )
SELECT name, english FROM exam_result WHERE english<60;

SELECT * FROM exam_result WHERE chinese > 80 or math>70 and english > 70;
SELECT * FROM exam_result WHERE (chinese > 80 or math>70) and english > 70;

SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;

//模糊查询 like
-- % 匹配任意多个(包括 0 个)字符
SELECT name FROM exam_result WHERE name LIKE '孙%';-- 匹配到孙悟空、孙权
-- _ 匹配严格的一个任意字符
SELECT name FROM exam_result WHERE name LIKE '孙_';-- 匹配到孙权

2.8分页查询关键字limit,语法如下:

-- 起始下标为 0
-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

3.修改语句:

语法:

UPDATE table_name SET column = expr [, column = expr ...]
 [WHERE ...] [ORDER BY ...] [LIMIT ...]

案例:

-- 将孙悟空同学的数学成绩变更为 80 分
UPDATE exam_result SET math = 80 WHERE name = '孙悟空';
-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
UPDATE exam_result SET math = 60, chinese = 70 WHERE name = '曹孟德';
-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
UPDATE exam_result SET math = math + 30 ORDER BY chinese + math + english LIMIT
3;
-- 将所有同学的语文成绩更新为原来的 2 倍
UPDATE exam_result SET chinese = chinese * 2;

4.删除语句:

语法:

DELETE FROM  table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

案例:

-- 删除孙悟空同学的考试成绩
DELETE FROM exam_result WHERE name = '孙悟空';
-- 删除整张表数据
-- 准备测试表
DROP TABLE IF EXISTS for_delete;
CREATE TABLE for_delete (
 id INT,
 name VARCHAR(20)
);
-- 插入测试数据
INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C');
-- 删除整表数据
DELETE FROM for_delete;

主页已更新完Java基础内容,数据结构基础,

正在更新算法篇,数据库篇,

未来会更新Java项目,SpringBoot,Redis以及各种Java路线会用到的技术。

求点赞!求收藏!求评论!求关注!

谢谢大家!!!!!!!!!

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

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

相关文章

谷歌关键词优化十招搞定提升你的存在感-华媒舍

在当今的数字化时代&#xff0c;谷歌已成为我们生活中不可或缺的一部分。作为世界上最大的搜索引擎之一&#xff0c;谷歌每天处理着海量的搜索请求。要在谷歌上获得更多的曝光和存在感&#xff0c;关键词优化是必不可少的。本文将向您介绍十招搞定谷歌关键词优化的方法&#xf…

力扣刷题44-46(力扣0062/0152/0198)

62. 不同路径 题目描述&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff0c;机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径&#xff1f; 思路&#xff1a; 其实就是问(0,0)->(m-1,n-1)一共有几条路。 第一个…

web自动化测试系列-selenium的安装和运行(一)

目录 web自动化系列之如何安装selenium 1.web自动化中的三大亮点技术 2.web自动化能解决什么问题 &#xff1f; 3.为什么是selenium ? 4.selenium特点 5.selenium安装 6.下载浏览器及驱动 7.测试代码 web自动化系列之如何安装selenium web自动化 &#xff0c;一个老生…

【No.17】蓝桥杯图论上|最短路问题|Floyd算法|Dijkstra算法|蓝桥公园|蓝桥王国(C++)

图的基本概念 图&#xff1a; 由点(node&#xff0c;或者 vertex)和连接点的边(edge)组成。图是点和边构成的网。 树&#xff1a;特殊的图树&#xff0c;即连通无环图树的结点从根开始&#xff0c;层层扩展子树&#xff0c;是一种层次关系&#xff0c;这种层次关系&#xff0…

【C++】哈希应用之位图

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.位图的概念 2.位…

一道很有意思的题目(考初始化)

这题很有意思&#xff0c;需要你对初始化够了解才能解出来 &#xff0c;现在我们来看一下吧。 这题通过分析得出考的是初始化。关于初始化有以下知识点 &#xff08;取自继承与多态&#xff08;继承部分&#xff09;这文章中&#xff09; 所以根据上方那段知识点可知&#xf…

【linux网络(一)】初识网络, 理解四层网络模型

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux网络 1. 前言2. 初识网络…

【Java程序设计】【C00361】基于Springboot的考勤管理系统(有论文)

基于Springboot的考勤管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 &#x1f345;文末点击卡片获取源码&#x1f345; 开发环境 运行环境&#xff1a;推荐jdk1.8&#xff1b; 开发工具&#xff1a;eclipse以及idea&…

RWTH-PHOENIX Weather数据集模型说明和下载

RWTH-PHOENIX Weather 2014 T数据集说明: 德国公共电视台PHOENIX在三年内(2009 年至 2011 年) 录制了配有手语翻译的每日新闻和天气预报节目,并使用注释符号转录了 386 个版本的天气预报。 此外,我们使用自动语音识别和手动清理来转录原始德语语音。因此,该语料库允许训练…

电脑控制面板在哪?5招教你快速打开!

“我在执行一个任务时要进入电脑的控制面板中查看&#xff0c;但是我不知道电脑的控制面板在哪&#xff0c;谁能帮帮我呀&#xff1f;” 电脑控制面板是一个系统文件夹&#xff0c;它提供了各种对计算机系统进行设置和管理的工具。控制面板允许用户查看并操作基本的系统设置&am…

SAP ABAP-BOPF基础训练-01简介与架构

1. 介绍-Introduction ① BOPF是什么&#xff1f;BOPF(the Business Object Processing Framework)&#xff1a;业务对象处理框架 提供了一种增量和模块化的方法&#xff0c;以符合企业面向服务体系结构(eSOA)的方式实现业务对象&#xff1b; 部分平台基础层&#xff0c;软件组…

【笔记】深入理解JVM机制

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 JVM 运⾏流程图 JVM 中内存区域划分 方法区 / 元数据区 堆 栈 程序计数器 本地方法栈 内存区域总结 JVM 中类加载过程 …

python网络爬虫实战教学——requests的使用(2)

文章目录 专栏导读1、POST请求2、响应3、Cookie设置 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》&#xff0c;本专栏针对大学生、初级数据分析工程…

【c++】类和对象(二)this指针

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本节内容来到类和对象第二篇&#xff0c;本篇文章会带领大家了解this指针 目录 1.this指针1.1this指针的引出1.2this指针的特性1.3思考题1.4C语言和C实现Stack的对…

Qt|多线程串口通信

前篇:Qt|串口通信之同步数据收一包发一包数据 文章目录 创建工程添加串口通信类添加线程类主函数运行结果需求:串口下方的一些耗时操作并不想阻塞主进程的推进; 环境:windows10+VS2017+Qt5.14.2; 写在最前: 串口不支持跨线程操作,需要写信号槽形式传递;选择COM口下发指…

Allegro之轻松绕等长

如大家所见&#xff0c;这个世界通信的速率越来越快&#xff0c;生活的节奏也在飞驰&#xff0c;如果工作还是慢条斯理&#xff0c;你将是下一个淘汰的人。 高速PCB设计避免不了的要绕等长&#xff0c;然而有时候一个单板需要绕等长的总线很多&#xff0c;一个一个的绕下去&…

独立游戏《星尘异变》UE5 C++程序开发日志3——UEC++特供的数据类型

本篇日志将介绍FString&#xff0c;FText、FName的用法和相互转换&#xff0c;以及容器TMap&#xff0c;TArray的增删查改 一、字符串相关数据类型&#xff1a;FString、FText、FName FString是最接近std::string的类型&#xff0c;字符串本身可以看做一个存储char型的动态数…

数据容器-dict以及总结-Python

师从黑马程序员 字典的定义 同样使用{},不过存储的元素是以个个的&#xff1a;键值对&#xff0c;如下语法&#xff1a; #定义字典 my_dict1{"王力宏":99,"周杰伦":88,"林俊杰":77} #定义空字典 my_dict2{} my_dict3dict() print(f"字典1…

HarborCDN技术分析

一、介绍 简要介绍 ​​Harbor​​ 是由VMware公司开源的企业级的Docker Registry管理项目&#xff0c;它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor 的所有组件都在 Dcoker 中部署&#xff0c;所以 Harbor 可使用 Docker C…

直击GDC 2024 (二):网易智企首次揭秘篮球游戏AI智能体!

近几日&#xff0c;世界级游戏开发者盛会 GDC&#xff08;Game Developers Conference&#xff09;2024 正在美国举行。全球游戏行业的精英都汇聚于旧金山&#xff0c;共同探索前沿的游戏开发技术、洞察行业最新趋势&#xff0c;并互相交流对未来发展的深刻见解。 &#xff08;…