当前位置:网站首页>MySQL增删改查基础
MySQL增删改查基础
2022-08-04 22:58:00 【最后一只三脚兽】
数值类型
| 数据类型 | 大小 | 说明 | 对应java类型 |
|---|---|---|---|
| BIT[ (M) ] | M指定位数,默认为1 | 二进制数,M范围从1到64,存储数值范围从0到2^M-1 | 常用Boolean对应BIT,此时 默认是1位,即只能存0和1 |
| TINYINT | 1字节 | Byte | |
| SMALLINT | 2字节 | Short | |
| INT | 4字节 | Integer | |
| BIGINT | 8字节 | 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 |
| TEXT | 0-65,535字节 | 长文本数据 | String |
| MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
| BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[] |
日期类型
| 数据类型 | 大 小 | 说明 | 对应java类型 |
|---|---|---|---|
| DATETIME | 8 字 节 | 范围从1000到9999年,不会进行时区的 检索及转换。 | java.util.Date、 java.sql.Timestamp |
| TIMESTAMP | 4 字 节 | 范围从1970到2038年,自动检索当前时 区并进行转换。 | java.util.Date、 java.sql.Timestamp |
![[(img-P3FUnIuQ-1659573999693)(C:\Users\yang\AppData\Roaming\Typora\typora-user-images\image-20220802151045515.png)]](/img/39/244536e288d77c1fe75176db7e7d51.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)]](/img/80/5a4b7ae26fb114e132816c9b17775d.png)
增加数据
insert into 表名 values(值,值...)-- 值必须和表内类型一一对应
insert into 表名 (列名) values(值)-- 指定列插入
insert into 表名 values(值,值...),(值,值...)...-- 插入多组数据,一次插入多条比分开操作效率高

show variables like '%char%';-- 显示使用的字符集
-- 在创建数据库时增加character set utf8即可更改数据库的字符集
彻底更改字符集方法;
- 在 服务 中找到mysql的配置文件
- 找到配置文件后在 [mysql] 下加上default-character-set=utf8
- 在[mysqld]下加上character-set-server=utf8
- 重启服务器注意,服务器需要在 服务 中重启,不能只重启客户端
- 注意,这次操作只会对后面创建的库起作用
查询数据
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 条件;
边栏推荐
- 2022七夕程序员必备的表白黑科技(七夕限定款)
- Will we still need browsers in the future?(feat. Maple words Maple language)
- The Record of Reminding myself
- 【2020】【论文笔记】超表面:多功能和可编程——
- truffle
- 使用代理对象执行实现类目标方法异常
- 【无标题】
- 地面高度检测/平面提取与检测(Fast Plane Extraction in Organized Point Clouds Using Agglomerative Hierarchical Clu)
- 学生管理系统架构设计
- Shell expect real cases
猜你喜欢
![[Cultivation of internal skills of string functions] strncpy + strncat + strncmp (2)](/img/9f/9221c081cfa86caccbbd02916a6208.png)
[Cultivation of internal skills of string functions] strncpy + strncat + strncmp (2)

地面高度检测/平面提取与检测(Fast Plane Extraction in Organized Point Clouds Using Agglomerative Hierarchical Clu)

【3D建模制作技巧分享】Maya模型如何导入zbrush

生产者消费者问题

ffplay视频播放原理分析

未来我们还需要浏览器吗?(feat. 枫言枫语)

【2020】【论文笔记】超表面:多功能和可编程——

3D建模师为了让甲方爸爸过稿,还可以这么做,就是在赚血汗钱啊

Latex快速插入作者ORCID

To Offer | 03. Repeat Numbers in the array
随机推荐
MySQL的JSON 数据类型2
未来我们还需要浏览器吗?(feat. 枫言枫语)
重新配置chrome中ffmpeg插件
2022/8/3
功耗控制之DVFS介绍
PID控制器改进笔记之七:改进PID控制器之防超调设定
truffle
赶紧进来!!!教你C语言实现扫雷小游戏(文章最后有源码!!!)
panic: reflect: reflect.Value.SetString using value obtained using unexported field
Controller层代码这么写,简洁又优雅!
Redisson
If you can't get your heart, use "distributed lock" to lock your people
【云原生 · Kubernetes】Kubernetes运维
论文解读(PPNP)《Predict then Propagate: Graph Neural Networks meet Personalized PageRank》
直接插入排序
MySQL的JSON 数据类型1
【3D建模制作技巧分享】ZBrush模型制作流程:地精
typeScript-部分应用函数
VC bmp文件总结
Pytest learning - fixtures