MySQL——增删改查操作

发布于:2025-08-07 ⋅ 阅读:(13) ⋅ 点赞:(0)

一.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


网站公告

今日签到

点亮在社区的每一天
去签到