❣博主主页: 33的博客❣
▶️文章专栏分类:MySQL◀️
🚚我的代码仓库: 33的代码仓库🚚
🫵🫵🫵关注我带你了解更多数据库知识
目录
1.前言
2.数据库操作
2.1创建数据库
create database 数据库名字;
数据库创建的时候不能重复那么就可以修改为:
create database if not exists 数据库名字;
如果我们需要在数据库中保存中文,那么就就可以指定字符集
create database if not exists 数据库名字 charset utf8mb4(utf8不能添加emoji表情);
2.2查看数据库
show databases;
2.3选中数据库
use 数据库名;
2.4删除数据库
drop database 数据库名;
危险操作!!!
3.数据表操作
3.1创建表
create table 表名(列名 类型,列名 类型,列名 类型...);
create table student(id int,name varchar(20));
sql中常用的数据类型
数据类型 | 大小 |
---|---|
int | 4字节 |
long | 8字节 |
double(M,D) | 8字节,m表示小数长度,d小数点后的位数 |
decimal | M/D最大值+2,双精度 |
varchar | 0-65535字节可变字符串长度 |
datetime | 8字节时间戳 |
3.2查看所有表
show tables;
3.3查看表结构
desc 表名;
desc student;
3.4删除表
drop table 表名;
4.CRUD
4.1新增
insert into 表名 values(值,值,....);
insert into student values(111,"李华");
//插入指定列
insert into 表名(列名,列名...)values(值,值,....);
insert into student(id) values (222);
//一次插入多行
insert into 表名 values(值,值,....),(值,值,....)....
那么如果有要插入datetime类型该如何插入呢?
insert into date values(年月日 时分秒);
insert into date values('2024-05-20 12:00:00');
当然格式不固定也可以用/来表示
4.2查询
4.2.1全列查询
select*from 表名;
select*from student;
4.2.2指定列查询
select 列名,列名...from 表名;
select id from student;
4.2.3查询字段为表达式
select 列名...,列名表达式 (as 别名) from 表名;
select id,name, chinese+english+math as 总分 from exam_result;
为了方便演示,我重新创建了一个表
注意
查询的时候对表的修改并不会影响数据库实际数据。
4.2.4去重查询
在查询的时候进行去重:
select distinct 列名 from 表名;
select distinct math from 表名;
4.2.5排序查询
在查询的时候进行排序:
select 列名 from 表名 order by 列名asc/desc;
select name,english from exam_result order by english desc;(默认升序)
order by还可以针对多个列进行排序
select 列名 from 表名 order by 列名1,列名2...asc/desc;
select * from exam_result order by english,math desc;(默认升序);(如果英语成绩相同,就按照数学成绩排序)
4.2.6 条件查询
select 列名 from 表名 where 条件;
select * from 表名 where id=1;(查询id为1的学生的所有信息)
条件中常见的一些运算符:
例1:查询英语不及格的同学及英语成绩。
select name,english from exam_result where english<60;
例2:查询总分在200分以下的同学
select name,english+math+chinese as 总分 from exam_result where english+math+chinese<200;
注意不能通过别名比较:
select name,english+math+chinese as 总分 from exam_result where 总分<200;
select条件查询执行的顺序:
1.遍历表中的每一个记录
2.把当前记录的值代入条件,根据条件筛选
3.如果条件成立就保留数据,继续进入表达式计算
4.如果有order by会在所有的行都被获取到以后(表达式也算完了)再针对所有的结果排序。
例3:查询语文成绩>80且英语成绩>80
select name,english,chinese from exam_result where chinese>80 and english>80;
例4:查询语文成绩>80或英语成绩>80
select name,english,chinese from exam_result where chinese>80 or english>80;
例4:查询语文成绩在[80,90]分之间的
例5:查询数学成绩是58或者59或者99或者98的同学数学成绩
select name,math from exam_result where math in(58,59,99,98);
例6:查询以孙开头的成绩学生成立
select * from exam_result where name like '唐%';
4.2.7分页查询
select 列名 from 表名 limit 几条记录 offset 从哪儿开始;
select * from exam_result limit 3 offset 1;
4.3修改
update 表名 set 列名=值,列名=值... where 条件;
update exam_result set chinese=99 where id=2;
4.4删除
delete from 表名 where 条件
select * from exam_result where name=孙悟空
5.总结
本篇文章主要介绍了一些数据库的基本只是,包括数据库的创建,表的创建,表的增删改查的操作,在日常生活中进行查询和删除操作要慎重。
下期预告:Spring Boot