MySQL之增删改查,常用函数

本文详细介绍了MySQL的增删改查操作,重点讲解了SQL查询的底层执行原理和各种查询分类,包括基础查询、过滤、排序、分组、连表、子查询和分页。此外,还探讨了如何避免笛卡尔集,以及左外连接的工作方式,并提供了相关案例。最后,概述了常用的字符、数字和日期函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库

目录

数据库

1、增加,删除,修改

2、查询

1、SQL底层执行原理

2、查询分类介绍

避免笛卡尔集

①基础查询

②过滤

③排序

④分组查询

⑤等值连表查询

⑥左外连接

⑦子查询

⑧分页查询

3、常用函数

1、字符函数

2、数字函数

3、日期函数


前言:增加,修改,删除都是固定的SQL语句,重点在于查询!!!

1、增加,删除,修改

#增  语法:insert into 表名(列字段) values(?,?,?...)
#补充:
#什么时候需要声明表名后面的列字段?需要添加的数据字段<表的总字段  未添加的字段需要验证约束是否成立
#id如果是自增长,不用声明
#案列:添加一条学生数据到学生表,如果学生表有非空约束的班级cid字段,下面语句添加失败!!!
insert into tb_student(sname,sage,ssex) values('张三',17,'男')

#删  语法:delete from table where 条件
#案例:删除学生表中id为3的学生
delete from tb_table where id=3

#改  语法:update table set 字段=?,字段=? where 条件
#案列:将学生表中id为4的学生的姓名改为李四,年龄改为18
update tb_table set sname='李四',sage=18 where id=4

2、查询

1、SQL底层执行原理

首先是测试底层执行原理的两张表!tb_number,tb_word

①执行select nname,wname from tb_word w,tb_number n查出来的数据  

 ②执行select nname,wname from tb_number n,tb_word w查出来的数据

 由①②可以推断出这个SQL语句执行时底层的原理

这是全连接的一个执行原理!!!左/右外连接原理和这不一样!

2、查询分类介绍

避免笛卡尔集

笛卡尔集会在下面条件下产生,笛卡尔集是在查询中需要避免的。

– 省略连接条件
– 连接条件无效
– 所有表中的所有行互相连接
• 为了避免笛卡尔集, 可以在 WHERE 加入有 效的连接条件。

按照上述SQL底层执行原理看,如果两张表分别有100条数据,不避免笛卡尔集会查询出

100*100=10000条数据,再进行数据获取,是非常影响速度的!!!

①基础查询

/*
语法:
select 查询列表 from 表名;

类似于:System.out.println(打印东西);

特点:
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格
*/
#3.查询表中的所有字段
#方式一:
SELECT
  `employee_id`,
  `first_name`,
  `last_name`,
  `phone_number`,
  `last_name`,
  `job_id`,
  `phone_number`,
  `job_id`,
  `salary`,
  `commission_pct`,
  `manager_id`,
  `department_id`,
  `hiredate`
FROM
  t_mysql_employees ;
#方式二:  
SELECT * FROM t_mysql_employees;

#区别:
#方式一查询效率快

#4.查询常量值
SELECT 100;
SELECT 'john';

#5.查询表达式
SELECT 100%98;

#6.查询函数
SELECT VERSION();

#7.起别名
/*
①便于理解
②如果要查询的字段有重名的情况,使用别名可以区分开来

*/
#方式一:使用as
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM t_mysql_employees;

#方式二:使用空格
SELECT last_name 姓,first_name 名 FROM t_mysql_employees;

#8.去重
#案例:查询员工表中涉及到的所有的部门编号
SELECT DISTINCT department_id FROM t_mysql_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小张同学_java

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

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

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

打赏作者

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

抵扣说明:

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

余额充值