MySQL数据库的查询

   日期:2020-09-27     浏览:96    评论:0    
核心提示:**查询 select​ 1.查询所有字段​ select * from 表名​ 2.查询某一个字段​ 1.基于表​ select 字段名,字段名 from 表名​ 2.基于表达式​ select 表达式,表达式;​ select 3+5,3*5;​ 3.基于函数​ --查看当前的数据库​ select database(

**查询 select

​ 1.查询所有字段

select * from 表名

​ 2.查询某一个字段

​ 1.基于表

select 字段名,字段名 from 表名

​ 2.基于表达式

​ select 表达式,表达式;

select 3+5,3*5;

​ 3.基于函数

​ --查看当前的数据库

select database();

​ --查看当前时间

select now();

​ --查看当前的用户名

select user();

​ --查看当前数据库的版本

select version();

​ **3.**给字段起别名

select 字段名 [as]别名 from 表名;

​ **4.**给表起别名

select 别名.字段名 from 表名 as 别名;
select a.username from admin as a;

5.数据库.表名:

select username from news.admin;

​ **6.**完整格式

      select 字段名 from 表名

​       [join条件][where条件][group by分组][having字段(二次筛选)][order by字段升序降序][limit限制]

7.where****条件

​ 1.比较:> < = != <> <= >=

select * from admin where id>=2;

​ 2.is[not] null

select * from admin where username is not null;

​ 3.[not]between …and

​ 4.[not]in(值1,值2,值3);

select * from admin where id in(1,2,3);

​ 5.like ‘字符串’ 模糊查询

–查询admin表用户名是 姓张 开头

​ 1._:匹配一个字符

​ 2.%:匹配0个1个或者多个字符

    select * from admin where username like '张_';select * from admin where username like '张%';

​ --查询用户名中第二个字是张的用户

      select * from admin where username like '_张%';

8.[group by分组]

​ 原理:对字段相同的值进行分组,显示分组相同的值得一个结果 一般字段分组的那个字段结合聚合函数使用聚合函数

​ 1.count(字段名):获得每组的个数(count(*))包含null的值

​ 2.avg(字段):获得每组的平均数

​ 3.max(字段):最大值

​ 4.min(字段):最小值

​ 5.sum(字段):求每组的和

9.having 字段:二次过滤

​ 说明:

​ 1.where条件对字段过滤

​ 2.having条件是对一个结果的过滤,一般结合group by使用

1.order by 字段名

​ 升序:asc【默认】

​ 降序:desc

  select * from admin order by id desc;

2.limit [偏移量][长度]:获取前多少条的记录(新闻数量)

​ 说明:

​ 1.偏移量 offset 起始编号从0开始

​ 2.长度:获取的记录数

​ 3.计算偏移量

​ 第一页: 偏移量0 limit 0,5;

​ 第二页: 偏移量5 limit 5,5;

​ 第三页: 偏移量10 limit10,5;

​ 偏移量=(当前页-1)*长度

**3.**多表联合查询

​ 1.格式

​ select 字段名,字段名

​ from 表1

​ 连接类型 表2

​ on 两个表的逻辑关系

​ 连接类型 表2

​ on 两个表的逻辑关系

–管理员表

create table cms_admin(id int unsigned key auto_increment,

​    username varchar(10) not null unique,

​    password char(32) not null,

​    sex tinyint not null default 0,

​    age tinyint not null

);

–创建cms_type

create table cms_type(id int unsigned key auto_increment,

​    tname varchar(10) not null unique

);

–创建cms_news

create table cms_news(id int unsigned key auto_increment,

​    title varchar(30) not null,

​    content text not null,

​    aid int not null,

​    tid int not null,

​    addtime timestamp not null default current_timestamp

);

–1.查询cms_admin,cms_type,cms_news

– 字段:新闻id,发布人是谁,新闻的标题

select n.id,username,title

from cms_admin as a

join cms_news as n

on a.id = n.aid

join cms_type as t

on t.id=n.tid;

–2.查询每个管理员发布的新闻数量

–字段:管理员id,管理员名称,发布新闻的数量

select a.id,username,count(*)

from cms_admin as a

join cms_news as n

on a.id = n.aid

group by n.aid;

–3.每个分类下发布的新闻个数

–字段:分类的id 分类的名称 新闻个数

select t.id,tname,count(*)

from cms_type as t

join cms_news as n

on t.id = n.tid

group by n.tid;

–4.查询cms_news,分类编号是2

– 的 按照addtime降序排序 的前2条记录

select * from cms_news

where tid=2

order by addtime desc

limit 0,2;
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服