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表示连接。
标签:name,数据库,常用命令,查询,age,mysql,test,id,select From: https://www.cnblogs.com/sheng12/p/18310602