SQL专栏——sql语句的基础操作(三)使用DQL查询

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

➢查询数据库数据,如SELECT语句
➢简单的单表查询或多表的复杂查询和嵌套查询
➢数据库语言中最核心、最重要的语句
➢使用频率最高的语言

今天用到的数据库表
在这里插入图片描述

SELECT语法

SELECT [ALL|DISINCT]
{*|table*|[table.field1[as alias1][,table.field2[as alias2]][,...]]}ROM table_n2ame[as table_alias]
	[left|out|inner join table_name2]	#联合查询
	[WHERE ...]	#指定结构需满足的条件
	[GROUP BY ...]	#指定结果按照那几个字段分组
	[HAVING ...]	#过滤分组的记录必须满足的次要条件
	[ORDER BY ...]	#指定查询记录按一个或者多个条件排序
	[LIMIT{[offset,]row_count | row_countOFFSET offset }]; #指定查询的记录从哪条到哪条	

[]括号代表可选的;
{}括号代表必须的;
#MYSQL的注解符,也可以用/该处为注释/

相当于打开表的操作

SELECT * FROM tabl1;

查询指定列(学号,姓名)

SELECT studentno,studentname FROM student;

使用as,为查询结果取一个新名字

SELECT CONCAT('姓名:',studentname) AS 新姓名 FROM student;

查看哪些同学参加了考试(学号)——去除重复项(DISTINCT )

SELECT DISTINCT studentno FROM result;

如果不加DISTINCT ,则默认ALL,即全部查询
select查询中可以使用表达式

SELECT @@auto_increment_increment
SELECT VERSION();
SELECT 100*3-1 AS 计算结果;

学院考试成绩集体提高一分

SELECT studentno,studentresult+1 FROM result;

满足条件的查询(WHERE)

WHERE条件语句

➢用于检索数据表中符合条件的记录
➢搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
➢搜索条件的组成
➢ ➢ 逻辑操作符
➢ ➢ 比较操作符

在这里插入图片描述

IS NUL

SELECT s.studentno,s.studentname,r.studentresult
FROM student s
JOIN restult r
ON s.studentno=r.studentno
WHERE r.studentresult IS NULL;

查询成绩在80到90之间的学生信息AND

SELECT * FROM STHDENT WHERE studentresult>=80 AND studentresult<=90;

IN

SELECT studentname from student where studentresult in(80,90,100)

like迷糊查询
% 代表0到任意字符
_ 代表一个字符

查询姓李的学生姓名

SELECT studentname
from student
where studentresult like '李%';

查询姓李的名字是两个字的学生是学生姓名

SELECT studentname
from student
where studentresult like '李_';

模糊查询 综合应用
查找姓李的学生即对用的成绩

SELECT s.studentno,r.studentresult
form student s
join result r
on (s.studentno=r.studentno)
where s.studentname like '李%'

BETWEEN AND
在这里插入图片描述

GROUP BY 语句

分组

HIVING语句

在分组后进一步过滤

在这里插入图片描述

SELECT s.studentname,g.gradename
FROM student s
join
grade g
on (s.gradeid=g.gradeid);

在这里插入图片描述

SELECT s.gradename,g.gradename,j.subjectname
FROM student s
JOIN
grade g
ON (s.gradeid=g.gradeid)
join subject j
ON (g.gradeid=j.gradeid);

在这里插入图片描述

JOIN语句

引用连接
https://blog.csdn.net/plg17/article/details/78758593
在这里插入图片描述

这里使用scott数据库,首先导入数据库

mysql -uroot -p123QWEasd! <scott.sql

进入MySQL数据库

use scott;
show tables;
select * from emp;

内连接

内连接返回的是两个表中重合的阴影部分
(1)等值连接
查询没有员工的部门

select d.dept,e.ename
from dept d
join emp e
on(d.deptno=e.deptno)
where e.name=null;

(2)非等值连接

select e.ENAME,e.SAL,e.GRADE
from EMP e
join SALGRADE s
on (e.SAL between 1000 and 1200);

左连接
右连接

自连接

https://www.cnblogs.com/weichao1996/articles/8519973.html
本质是把一张表当成两张表来使用
通过自连接可以列出员工对应的领导的表

select e.ename empname,m.ename manger
from emp p
join emp m
on  (e.mgr=m.empno)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值