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/-1select 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