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()里面进行判断

相关推荐
递归不收敛38 分钟前
吴恩达机器学习课程(PyTorch适配)学习笔记:2.4 激活函数与多类别处理
pytorch·学习·机器学习
加油201941 分钟前
如何快速学习一个网络协议?
网络·网络协议·学习·方法论
A9better1 小时前
嵌入式开发学习日志36——stm32之USART串口通信前述
stm32·单片机·嵌入式硬件·学习
不太可爱的叶某人2 小时前
【学习笔记】kafka权威指南——第6章 可靠的数据传递
笔记·学习·kafka
程序新视界2 小时前
MySQL中,IS NULL和IS NOT NULL不会走索引?错!
数据库·mysql·dba
简色3 小时前
题库批量(文件)导入的全链路优化实践
java·数据库·mysql·mybatis·java-rabbitmq
研猛男3 小时前
0、FreeRTOS编码和命名规则
笔记·stm32·freertos
CS Beginner4 小时前
【Linux】Mysql的基本文件组成和配置
linux·运维·mysql
2301_790994994 小时前
仿神秘海域/美末环境交互的程序化动画学习
学习·microsoft·交互
能不能别报错4 小时前
K8s学习笔记(十六) 探针(Probe)
笔记·学习·kubernetes