mysql数据库常用命令(补充)

1、查看表的所有内容

select * from 表名;

2、查看指定内容

select name,age from test;

select表示查询,name表示名字,age表示年龄,from是从的意思,test是表名。

翻译过来就是:从test表中查询名字和年龄字段的内容。

在select后面指定要查询的项,可以是一项也可以多项。

在select后面添加distinct去除重复项输出:如select distinct name,age from 表名;

3、预测库存量

select name,stock+100 from test;

stock是库存列,stock+100就是原库存加100。

如果库存有为null的,它是不会相加的,需要把它设为0。

select name,ifnull(stock,0)+100 from 表名;

ifnull(stock,0)的意思是:如果stock为null,就把stock的值设为0。

3、根据条件查询

select * from test where age>20;

where后面就是条件

翻译过来就是:从test表查询所有年龄大于20的内容。

如果条件为null的话,需要用is或is not,不能用<、=、>这些符号

例如:select * from test where age is null;

范围查询

select * from test where age>=20 and age<=50;

翻译过来就是:从test表查询所有年龄大于等于20和小于等于50的内容

也可以用:select * from test where age between 20 and 50;

从test表查询年龄在20到50之间的内容

4、模糊查询

select * from test where name like '苹果%';
%是匹配所有的意思,只要前面俩个字是苹果都会匹配上

翻译过来就是:从test表查询所有名字前俩位是苹果的内容,

查询所有带有苹果的内容:select * from test where name like '%苹果%';

select * from 表名 where name like '_苹果%

_表示占一位的意思,也可以用多个来占多个位

翻译过来就是:从test表查询所有名称第二位是苹,第三位是果的内容。

5、聚合查询

select count(*) from test;

count()查询函数,翻译过来就是:从test表查询所有函数,也就是有多少条信息。

min()最小,max()最大,sun()总数,AVG()平均数。

例如说从test表查询最小年龄的值:select min(age) from test;

6、排序查询asc desc

升序查询

select * from test order by age asc;

从test表查询年龄的所有字段并按升序从小到大排列

降序查询

select * from test order by age desc;

从test表查询年龄的所有字段并按降序从大到小排列

order by是查询字段的意思,asc是升序的意思,desc是降序的意思

7、分组查询

select brand,sun(prcice) from test group by brand;

brand是品牌,sun(prcice)计算总金额,group by分组输出。

意思就是:从test表查询品牌和金额的总字段内容并分组输出。

8、分页查询

公式:select * from 表名 LIMIT (页码-1)*每页数量,每页数量

如果一页有五条数据,页码数量从1开始,也就是(1-1)*每页数量5,每页数量5;第一页得出0,5。

第二页是(2-1)*每页数量5,每页数量5;第二页得出5,5。以此类推

还有个简单的方法从0开始算,第一页是0到4,第二页是5到9。

或者是页码数加每页数量得出下一页的页码数,如0+5得5,5+5得10。

select * from test limit 0,5;第一页

select * from test limit 5,5;第二页

9、多对多表查询

用一个中间表把其它的表链接起来,通过这个中间表可以把数据联通。

如学生、课程,学生可以选择多个课程,但同时课程也可以被多个学生去选择

课程表跟学生表之间就需要用到中间表来专门把它们连接起来。

学生表

create table student (

id int PRIMARY key auto_increment,//把整数类型id设为主键并且自增

name varchar(20)//字符串类型名字

)ENGINE=innodb;

id int 声明id为整数,PRIMARY key 设为主键,auto_increment自增

name varchar(20) 声明name为字符串类型

ENGINE=innodb 设置存储引擎,没有可能会报错

课程表

create table course (

id int PRIMARY key auto_increment,

name varchar(20)

)ENGINE=innodb;

中间表

create table stu_cre (

id int PRIMARY key auto_increment,

sid int,

cid int,

constraint ss foreign key (sid) references student(id),

constraint sc foreign key (cid) references course(id),

)ENGINE=innodb;

constraint设置外链接,命名为ss随便起一个,foreign key (sid)本表键,references student(id)学生表键。

我这里没有插入数据,可以自己添加数据,如果表里面有数据,通过查询语句

select * from 中间表名;

查看中间表就可以看到俩个表的关联数据了

10、内连接

用于查询俩个表或多个表有交集、相关联的数据

语法:select 列名 from 表名1 inner join 表名2 on 关联条件;

select * from 用户表 inner join 订单表 on 用户.id=订单.sid;

从用户表查询所有与订单表相关联的数据,用户.id和s订单sid要有关联。

用户表是要查询的主表,inner join表示连接。

posted @   肥肥生威  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示