软件设计之MySQL(5)

软件设计之MySQL(5)

此篇应在JavaSE之后进行学习:
路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
Navicat可以在软件管家下载
``
使用navicat连接mysql数据库创建数据库、表、转储sql文件,导入sql数据
MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板
资料可以去尚硅谷官网免费领取

学习内容:

  1. 数据处理之增删改
  2. MySQL新特性-计算列
  3. 数据类型之整型
  4. 数据类型之浮点类型
  5. 数据类型之定点数类型
  6. 数据类型之位类型
  7. 数据类型之日期时间类型
  8. 数据类型之文本字符串类型
  9. 数据类型之二进制类型

1、数据处理之增删改

插入数据

方式1:一条一条的添加数据
方式2:将查询结果插入到表中

USE atguigudb;
CREATE TABLE IF NOT EXISTS emp1(
id INT,
`name` VARCHAR(15),
hire_date DATE,
salary DOUBLE(10,2)
);
DESC emp1;
SELECT *
FROM emp1;
#方式1:
#①没有指明添加的字段
INSERT INTO emp1
VALUES (1,'TOM','2000-12-12',3000);#需要按声明字段的先后顺序添加
#②指明要添加的字段(推荐)
INSERT INTO emp1(id,hire_date,salary,`name`)
VALUES(2,'1999-9-9',4000,'Jerry');
#hire_date此时为null
INSERT INTO emp1(id,salary,`name`)
VALUES(3,5000,'Mike');
#③
INSERT INTO emp1(id,NAME,salary)
VALUES
(4,'Lucy',6000),
(5,'Jim',5500);
#方式2
INSERT INTO emp1(id,NAME,salary,hire_date)
#查询字段与添加到的表的字段一一对应
SELECT employee_id,last_name,salary,hire_date 
FROM employees
WHERE department_id IN(70,60)

更新数据

1、可以实现批量修改数据
2、可以同时修改一条数据的多个字段
3、修改数据时,可能存在不成功的情况。存在不满足约束的情况

UPDATE emp1
SET hire_date = CURDATE(),salary = 6000
WHERE id = 5;

删除数据

1、删除数据时,可能存在不成功的情况。存在不满足约束的情况

DELETE from emp1
WHERE id  = 1;

2、MySQL新特性-计算列

什么叫计算列呢?简单来说就是某一列的值是通过别的列计算得来的。例如,a列值为1、b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列,是通过别的列计算得来的。

CREATE TABLE test (
a INT,
b INT,
c INT GENERATED ALWAYS AS (a + b)VIRTUAL
);

3、数据类型之整型

在这里插入图片描述

1、M表示显示宽度,M的取值范围是(0, 255)。该项功能需要配合“ ZEROFILL ”使用,表示用“0”填满宽度,否则指定显示宽度无效。
2、如果设置了显示宽度,那么插入的数据宽度超过显示宽度限制,不会对插入的数据有任何影响,还是按照类型的实际宽度进行保存
3、当使用ZEROFILL时,自动会添加UNSIGNED(表示无符号数)

CREATE TABLE test(
f1 INT,
f2 INT(5),
f3 INT(5) ZEROFILL
)
INSERT INTO test(f3)
VALUES(123),(123456);# 显示分别为00123,123456

4、数据类型之浮点类型

MySQL支持的浮点数类型,分别是 FLOATDOUBLEREAL
REAL默认就是DOUBLE。如果你把 SQL 模式设定为启用REAL_AS_FLOAT 那么MySQL 就认为REAL是 FLOAT
1、FLOAT 和 DOUBLE 这两种数据类型的区别是啥呢?
FLOAT占用字节数少,取值范围小;DOUBLE占用字节数多,取值范围大
2、为什么浮点数类型的无符号数取值范围,只相当于有符号数取值范围的一半,也就是只相当于有符号数取值范围大于等于零的部分呢?(与整型不一样)
MySQL 存储浮点数的格式为: 符号(S)尾数(M) 阶码(E)。因此,无论有没有符号,MySQL 的浮点数都会存储表示符号的部分。因此, 所谓的无符号数取值范围,其实就是有符号数取值范围大于等于零的部分。
注意:浮点数类型有缺陷:不精准
在这里插入图片描述

在这里插入图片描述

数据精度说明

在这里插入图片描述

5、数据类型之定点数类型

1、MySQL中的定点数类型只有 DECIMAL 一种类型
2、定点数在MySQL内部是以字符串的形式进行存储,这就决定了它一定是精准的
在这里插入图片描述

6、数据类型之位类型

1、BIT类型中存储的是二进制值,类似010110
2、BIT类型,如果没有指定(M),默认是1位。这个1位,表示只能存1位的二进制值。这里(长度M)是表示二进制的位数,位数最小值为1,最大值为64。
在这里插入图片描述

7、 数据类型之日期时间类型

在这里插入图片描述

DATE格式

在这里插入图片描述

TIME类型

在这里插入图片描述

DATATIME类型

在这里插入图片描述

8、数据类型之文本字符串类型

1、CHAR是固定长度,VARCHAR是可变长度
如果保存时,数据的实际长度比CHAR类型声明的长度小,则会在 右侧填充空格以达到指定的长度。当MySQL检索CHAR类型的数据时,CHAR类型的字段会去除尾部的空格
VARCHAR(M) 定义时,必须指定长度M,否则报错;varchar(20):指的是20字符,而非20个字节
检索VARCHAR类型的字段数据时,会保留数据尾部的空格。VARCHAR类型的字段所占用的存储空间为字符串实际长度加1个字节
2、ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM类型只允许从成员中选取单个值,不能一次选取多个值
枚举类型添加数据可以忽略大小写允许按照角标的方式获取指定索引位置的枚举值、当ENUM类型的字段没有声明为NOT NULL时,插入NULL也是有效的
3、相比于ENUM,SET可以一次选多个值添加

在这里插入图片描述

9、数据类型之二进制类型

1、BINARYVARBINARY类似于CHAR和VARCHAR,只是它们存储的是二进制字符串
2、BINARY是固定长度,VARBINARY是可变长度
3、BLOB是一个二进制大对象,可以容纳可变数量的数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值