MySQL增删改查基础

数值类型

数据类型大小说明对应java类型
BIT[ (M) ]M指定位数,默认为1二进制数,M范围从1到64,存储数值范围从0到2^M-1常用Boolean对应BIT,此时 默认是1位,即只能存0和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和DECIMAL一样BigDecimal

DOUBLE之类的浮点数使用的都是IEEE标准,因此计算会有误差,python,c++等都是用的IEEE标准

DECIMAL也是表示小数,但用的是类似字符串的变长存储,误差较小,但是效率降低并且需要更多的存储空间

数值类型可以指定为无符号(unsigned),表示不取负数。

但是不推荐使用!

字符串类型

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

日期类型

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

[(img-P3FUnIuQ-1659573999693)(C:\Users\yang\AppData\Roaming\Typora\typora-user-images\image-20220802151045515.png)]

创建表

create table 表名(列名 类型.类名 类型...);
-- 注意sql中名字在前,变量名在后,与java不同

在类型后可以加上 comment 'XXX’注释,但该注释只能在列中使用,一般用–+空格注释

show tables;-- 查看当前数据库中有哪些表
desc 表名;-- 查看指定的表结构
drop table 表名;-- 删除表

在这里插入图片描述

表内的增删改查

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hPDJOS2t-1659573999695)(C:\Users\yang\AppData\Roaming\Typora\typora-user-images\image-20220730162658701.png)]

增加数据
insert into 表名 values(,...)-- 值必须和表内类型一一对应
insert into 表名 (列名) values()-- 指定列插入
insert into 表名 values(,...),(,...)...-- 插入多组数据,一次插入多条比分开操作效率高

在这里插入图片描述

show variables like '%char%';-- 显示使用的字符集
-- 在创建数据库时增加character set utf8即可更改数据库的字符集

彻底更改字符集方法;

  1. 在 服务 中找到mysql的配置文件
  2. 找到配置文件后在 [mysql] 下加上default-character-set=utf8
  3. 在[mysqld]下加上character-set-server=utf8
  4. 重启服务器注意,服务器需要在 服务 中重启,不能只重启客户端
  5. 注意,这次操作只会对后面创建的库起作用
查询数据
select * from 表名;-- 查询表中所有数据

select * 是一个比较危险的操作

在这里插入图片描述

select 列名,列名... from 表名;-- 查询表中指定列数据
select 表达式 from 表名;-- 查询指定列运算后的结果
-- 注意 查询时SQL会使用最适合的类型来确保结果的有效性,因此不用害怕如DECIMAL有效数字超过的问题
select 表达式 as 别名 from 表名;-- 查询指定列运算后的结果并起别名
select distinct 列名  from 表名;-- 查询指定列去重后输出结果
select 列名  from 表名 order by 列名;-- 查询指定列排序输出
select 列名  from 表名 order by 列名 desc;-- 查询指定列排序降序输出
select 列名  from 表名 order by 列名,列名... desc;-- 多个列进行排序,前面的优先级高
条件查询

条件运算符

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, …)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字 符

null与其他值进行算数运算结果仍旧为null

逻辑运算符

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

注意where先于select执行

分页查询

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;
修改数据
update 表名 set 列名 = 修改的值,列名 = 修改的值... where 条件;
删除数据
delete from 表名 where 条件;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最后一只三脚兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值