MySQL——增删改查操作

一.CRUD简介

CRUD就是对数据库中的内容进行增删改查操作。

1.Create (创建) 2.Retrieve(读取)

3.Update(更新) 4.Delete(删除)

二.数据库操作

1.创建数据库:

复制代码
create database 数据库名;

2.删除数据库

复制代码
drop database 数据库名;

3.修改数据库

复制代码
alter database 数据库名 charset 字符集名;

4.查询数据库

复制代码
show databases;  //查询所有数据库
show create database 数据库名;  查看指定数据库信息

三.表操作

1.创建表

复制代码
create table 表名(列名和类型);
例:
create table student(id int,name varchar(20),age int);

2.删除表

复制代码
drop table 表名;

3.修改表

复制代码
alter table 表名 add column (列名和类型); //插入新的列
alter table 表名 drop column 列名;  //删除某列
alter table 表名 change 原列名 新列名 新列名类型;  //对列进行更改

4.查询表信息

复制代码
show tables;  //查看所有表
desc 表名;  //查看表结构

四.数据操作

1.插入数据

复制代码
  //全列插入
insert into 表名 values(数据名和数据类型);
例:
insert into student values(1,'张三',17),(2,'李四',18),(3,'王五',19);

  //指定列插入
insert into 表明 (列名) values (要插入的数据);
例:
insert into student (id,name) values (4,'赵六');

2.删除数据

复制代码
delete from 表名 where 条件;
例:
delete from student where name = '赵六';

delete from 表名;  //清除整表内容(表仍存在)

3.修改数据

复制代码
update 表名 set 修改内容 where 条件;
例:
update student set id=99,name = '孙七';

4.查询数据

复制代码
select*from 表名; //查询此表所有数据

select 列名 表名; //查询此表指定列

select 列明 as 别名 from 表名; //指定列的别名查询

select*from 表名 where 条件; //条件查询

select distinct 列名 from 表名; //去重查询

select*from 表名 order by 列名 desc; //降序查询

select*from 表名 order by 列名; //升序查询

五.模糊查询

复制代码
select*from 表名 where name like '张%'; //查询所有name为张*的数据

select*from 表名 where name like '%张'; //查询所有name为*张的数据

六.分组查询

复制代码
select*from 表名 order by 列名 limit 数据数(数量); //从0开始,筛选数据数


select*from 表名 order by 列名 limit 页开始数,数据数;  //从页开始数开始,筛选数据

select*from 表名 order by 列名 limit 页开始数 offset 数据数; //从页开始数开始,筛选数据

七.聚合函数

复制代码
count(列名):
返回查询到的数据的数量

sum(列名):
返回查询到的数据的总和,不是数字没有意义

avg(列名):
返回查询到的数据的平均值,不是数字没有意义

max(列名):
返回查询到的数据的最⼤值,不是数字没有意义

min(列名):
返回查询到的数据的最⼩值,不是数字没有意义

例:

查询下表的 age的和,查询下表的 age 的平均数

复制代码
select sum(age) from student;
复制代码
select avg(age) from student;

八.分组查询以及having 子句

复制代码
select 列名/聚合函数 from 表名 group by 分组依据;

select 列名/聚合函数 from 表名 group by 分组依据 having 分组后查询条件;

例:

查询下表护士人数

复制代码
select count(id)as'护士' from student group by profession having profession= '护士';

使⽤ group by 对结果进⾏分组处理之后,对分组的结果进⾏过滤时,不能使⽤where,应使用having ⼦句

语句执行顺序:where - group by - having - order by

九.日期函数

复制代码
select curdate(); //查询当前日期

select time(); //查询当前时间

select now(); //查询当前日期和时间

select date( curdate()/curtime() ); //提取日期部分

select datediff(日期1,日期2); //查询两日期时间差

select adddate(日期,interval 增加日期); //在日期上增加天数
例:
select adddate('2024-08-27',interval 30 day);

select adddate(日期,interval 减去日期); //在日期上减去天数

十.字符串处理函数

复制代码
select char_length(字符串); //返回字符串长度
select length(字符串) //返回字符串的字节数

concat(字符串1,字符串2); //返回拼接后的字符串

select lcase(字符串); //返回字符串的小写
select ucase(字符串); //返回字符串的大写

select replace(字符串1,字符串2,字符串3); //将字符串1中的字符串2部分替换为字符串3
select strcmp(字符串1,字符串2); //比较字符串1和字符串2   返回 0/1/-1

select left(字符串,n); //返回字符串的最左边的n个字符
select right(字符串,n); //返回字符串的最右边的n个字符

select ltrim(字符串); //删除字符串前面的空格
select rtrim(字符串); //删除字符串后面的空格
select trim(字符串); //删除字符串前面和后面的空格

select instr(字符串,substring); //返回 substring 第一次出现的索引

注:以上不一定是所有的字符串处理函数的操作

十一.数字函数

复制代码
select abs(num); //返回num的绝对值

select ceit(num); //返回不小于num的最小整数
select floor(num); //返回不大于num的最小整数

select rand([N]); //返回一个随机浮点数 范围[0.0,1.0]
select round(num); //返回 num 四舍五入后的值
select round(num,N); //返回 num 四舍五入到小数点后 N 位的值

注:以上不是所有数字函数的操作

十二.其他函数

复制代码
version(); //获取当前数据库版本

database(); //查看当前正在使用的数据库

user(); //显示当前用户

ifnull(val1,val2); //如果 val1 为 null,返回 val2,否则返回 val1
相关推荐
你的人类朋友23 分钟前
❤️‍🔥为了省内存选择sqlite,代价是什么
数据库·后端·sqlite
还是鼠鼠25 分钟前
tlias智能学习辅助系统--SpringAOP-进阶-通知顺序
java·后端·mysql·spring·mybatis·springboot
飞翔的佩奇33 分钟前
基于SpringBoot+MyBatis+MySQL+VUE实现的名城小区物业管理系统(附源码+数据库+毕业论文+开题报告+部署教程+配套软件)
数据库·vue.js·spring boot·mysql·毕业设计·mybatis·小区物业管理系统
小白不想白a1 小时前
【MySQL】MySQL的安全风险与安装安全风险
linux·数据库·mysql·安全
折翼的恶魔1 小时前
SQL148 返回产品名称和每一项产品的总订单数
数据库
技术不支持1 小时前
Qt Creator 11.0.3 语法高亮bug问题
java·服务器·数据库·qt·bug
charlee441 小时前
PandasAI连接LLM对MySQL数据库进行数据分析
mysql·数据分析·nlp·pandasai·deepseek
葵野寺4 小时前
【MySQL】MySQL索引—B树/B+树
数据库·b树·mysql·b+树
程序新视界4 小时前
MySQL中COUNT(\*)、COUNT(1)和COUNT(column),到底用哪个?
mysql