Mysql学习笔记--基础

一,SQL最重要的增删改命令格式

1,insert into 表名(不写这个括号里面的内容就默认所有字段都要添加) values() 插入单条数据

2,insert into 表名 (里面是列名) values(根据列名依次对应)()插入多条数据

删除

3,drop table 表名 删除表 删除数据库drop database 数据库名;

4,delete from 表名 where 条件 删除表中的数据一行的内容

5,alter table 表名 drop 字段名/约束 删除字段/约束

改,更新

6,rename 表名 to 新表名 更改表名 /alter table 旧表名 rename to 新表名

9,alter table 表名 change 旧字段名 新字段名 字段类型 约束

7,alter table 表名 modify 字段名 值 类型 约束

10,alter table 表名 add 字段名 类型 往表中添加字段

8,update 表名 set 字段=新值,字段2=新值 where条件 更改表数据

二,查询的基础知识

1,简单查询(快捷输入selw)

select 字段名 from 表名 where 条件

查询时可以对字段进行处理

select cid+1 from mytable where cname='家电';

distinct 对查询的字段名进行去重处理

select distinct cname from mytable ;

2,模糊查询(_表示占一位,%匹配任意多个字符)

select * from user where cname like '_字%'

③非空查询 is null或is not null

select *

from mytable

where desc is null;

3,排序查询asc升序,desc降序

select *

from mytable

order by(cid) desc ;

同时对多个字段进行排序,当第一个排好了之后才对第二个进行排序

select * from mytable

order by cid desc ,cname desc;

4,聚合查询

count()统计指定列不为null的记录行数 select count(distinct cname) from mytable; 去重查询

sum()求指定列数值的总和

avg()求平均价格

max() ,min()最大,最小select max(cid),min(cid) from mytable;

5,分组查询(相同的可以分成一组)(where后面不能跟聚合函数)

分组的字段可以有多个,根据多个查询后,having可以进行条件判断

select *

from mytable

group by sex,desc having sex='男';

6,分页查询(limit m,n;参数意思,索引值从0开始,查询5条数据)

select * from mytable limit 0,5;

表示从第0条数据开始1,每页查询5条数据

7,多表查询

内连接 select 字段,字段 from 表a inner/left/right join 表b on a.字段 = b.字段

select * from mytable inner join student s on mytable.cid = s.cid

内连接,左连接,右连接

基本区别:

8,外键约束

constraint foreign 从表(从表字段名) references 主表(主表主键)

例如:向表中添加主键约束

创建表后,使用alter table关键字添加主键 alter table 表名 add primary key(字段名);

删除主键约束 使用alter table关键字删除主键 alter table 表名 drop primary key;

例如:向表中添加外键约束

alter table 表名 add foreign 从表(从表字段名) reference 主表(主表主键字段)

注意:

当从表插入数据时,如果连接字段主表没有,则会报错(插入数据时,需要根据主键字段名来插入对应的值)

当删除主表主键字段时需要先删除从表中对的该字段,不然会报错。

9,case when 语法

case

when 条件判断 then条件成立,返回的值

when 条件判断 then条件成立,返回的值

else 返回的值

end as 别名

复制代码
# 根据判断条件创建新的字段,拥有几个when就会分成多消耗类
select product_name,product_id,
case
    when units_in_stock>100 then '高'
when units_in_stock between 50 and 100 then '中'
    when  units_in_stock between 10 and 50 then  '低'
    else '无法判断'
END  AS nun
from  products
order by nun desc;

2,case when之后根据起的别名进行分组,更方便

3,case when和count(),将case when放入coutn()里面进行判断

相关推荐
陈天伟教授35 分钟前
基于学习的人工智能(4)机器学习基本框架
人工智能·学习·机器学习
7***37451 小时前
DeepSeek在文本分类中的多标签学习
学习·分类·数据挖掘
jiushun_suanli1 小时前
量子纠缠:颠覆认知的宇宙密码
经验分享·学习·量子计算
charlie1145141912 小时前
勇闯前后端Week2:后端基础——Flask API速览
笔记·后端·python·学习·flask·教程
深蓝海拓2 小时前
OpenCV学习笔记之:调整ORB算法的参数以适应不同的图像
笔记·opencv·学习
q***69772 小时前
Y20030018基于Java+Springboot+mysql+jsp+layui的家政服务系统的设计与实现 源代码 文档
java·spring boot·mysql
d111111111d2 小时前
STM32外设--SPI读取W25Q64(学习笔记)硬件SPI
笔记·stm32·单片机·嵌入式硬件·学习
摇滚侠2 小时前
2025最新 SpringCloud 教程,Nacos-配置中心-数据隔离-动态切换环境,笔记18
java·笔记·spring cloud
q***56382 小时前
Springboot3学习(5、Druid使用及配置)
android·学习
TracyCoder1232 小时前
微服务概念理解学习笔记
学习·微服务·架构