DQL常用查询

1. DQL(Data Query Language:数据库查询语言)知识点概览

DQL(Data Query Language:数据库查询语言):

用来查询数据(记录),不会对数据进行改变,而是让数据库发送结果集给客户端

概览:

这里写图片描述

2.基本语法

这里写图片描述

select 列名1,列名2…….列名n from 表名 where 条件 group by 列名 having 条件 order by 列名;

这个SQL语句包含了DQL部分所有的查询知识点。简单点说,只要记住这句话,查询部分的语法基本就都掌握了。 
下面我们将对各个部分分开进行详细说明。

3.查询方法概览

DQL查询方法概览

创建一个数据库和表格,方便查询演示。代码如下:

这里我是使用SQLyog创建的表格,使用cmd命令窗口也可以直接执行下列语句,后面的所有演示都是使用该软件写的,方便进行说明和注释

#创建数据库queryDemo
CREATE DATABASE queryDemo;


#进入数据库queryDemo
USE queryDemo;


#在queryDemo中创建demoStudent
CREATE TABLE demoStudent(
id INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20),
age INT,
score INT
)


#插入数据
INSERT INTO demoStudent(`name`,age,score) VALUES('张三',18,89);
INSERT INTO demoStudent(`name`,age,score) VALUES('李四',23,77);
INSERT INTO demoStudent(`name`,age,score) VALUES('王五',19,69);
INSERT INTO demoStudent(`name`,age,score) VALUES('赵六',18,89);
INSERT INTO demoStudent(`name`,age,score) VALUES('田七',20,92);
INSERT INTO demoStudent(`name`,age,score) VALUES('小明',22,85);
INSERT INTO demoStudent(`name`,age,score) VALUES('小红',25,97);




#01.基础查询




#查询所有列
SELECT*FROM demoStudent;


#查询指定列
SELECT id,`name` FROM demoStudent;


SELECT `name`,age,score FROM demoStudent;


#02.条件查询
#条件查询  运算符  关键字-- 1.运算符 =、!=、<>、<、<=、>、>=; -- 这些都是普通的数学运算符,就就不做说明了,  <>:表示不等于


SELECT*FROM demoStudent
WHERE id=5;


SELECT*FROM demoStudent
WHERE age!=18;


SELECT*FROM demoStudent
WHERE age<>18;


SELECT*FROM demoStudent
WHERE score>90;


#-- 2.BETWEEN…AND(在...之间 ); IN(set):与set集合交集 ;IS NULL(是否为空 );  IS NOT NULL(是否为非空);  AND( 并且);OR(或);NOT(非)                  




#查询2到4之间的学生
SELECT*FROM demoStudent
WHERE id BETWEEN 2 AND 4;



#in(set):指在数据库中数据与set的交集 获得包含有set中数据的记录(行)
SELECT*FROM demoStudent
WHERE age IN(25,22,30);
SELECT*FROM demoStudent
WHERE age IN('小','张三','哈哈');


# -- 检验null, 所以添加一个新数据


INSERT INTO demoStudent VALUES(8,'小花',20,NULL);


#分数为空的学生
SELECT*FROM demoStudent
WHERE score IS NULL;


#查询分数不为空的学生
SELECT*FROM demoStudent
WHERE score IS NOT NULL;


SELECT*FROM demoStudent
WHERE age=18 AND score>78;


SELECT*FROM demoStudent
WHERE age=22 OR age=25;


SELECT*FROM demoStudent
WHERE NOT age=18;


SELECT*FROM demoStudent
WHERE score>90;


SELECT*FROM demoStudent
WHERE `name`='张三';


#模糊查询


#任意一个字符
SELECT*FROM demoStudent
WHERE age LIKE '2_';


SELECT*FROM demoStudent
WHERE age LIKE '_8';


SELECT*FROM demoStudent
WHERE `name`LIKE '小_';


#%:任意0~n个字符


SELECT*FROM demoStudent
WHERE age LIKE '%8';


SELECT*FROM demoStudent
WHERE `name` LIKE '%小%';


#排序


#排序order by


#升序ASC
SELECT*FROM demoStudent
ORDER BY score ASC;


#降序DESC
SELECT*FROM demoStudent
WHERE score>80 
ORDER BY score DESC;

1.方法概览

这里写图片描述

#排序


#排序order by


#升序ASC
SELECT*FROM demoStudent
ORDER BY score ASC;


#降序DESC
SELECT*FROM demoStudent
WHERE score>80 
ORDER BY score DESC;




#字段控制查询


#字段控制查询 distinct 含义:去除表中id,name,age,score完全一样的学生
SELECT DISTINCT*FROM demoStudent;


#语句含义:去除表格中姓名一样的学生
SELECT DISTINCT `name`FROM demoStudent;


#聚合函数查询


# count(),sum(),avg(),max(),min()


#学生中最高分数
SELECT MAX(score) FROM demoStudent;


#学生中最低分数
SELECT MIN(score) FROM demoStudent;


#学生中平均分数
SELECT AVG(score) FROM demoStudent;


#学生人数


SELECT COUNT(*) FROM demoStudent;


#分组查询


#分组查询 group by   having 语句含义:根据性别分组,并统计每个组有少人




#limit  LIMIT用来限定查询结果的起始行,以及总行数


#.limit  作用:分页 


#从数据表中第4条数据开始显示,每页显示三条数据
SELECT*FROM demoStudent LIMIT 3,5;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值