SQL基础

表与表间的关系

数据库表与表之间的关系:一对一、一对多、多对多
一对一:一个表里可以插入另一个表的一个唯一键(不一定是id)
多对一:多表里设置少表里的唯一键
多对多:新建一个关系表,存放两个表中的唯一键(id,以保证查询时不发生重复)

常用查询语句

基本查询:

select * from student;

select:查询的关键字,表示一个要执行的查询
‘*’ :代表所有列 (替换方式就是直接写列名,在进行多表查询的时候列名前要加表名,列名与列名之 间用逗号分隔)
from :代表从哪种表里查询
select 也可用于计算,例:
在这里插入图片描述
条件查询:

 select *from student where id=1;

where:关键字后为查询条件
查询时如果查询的条件为数值类型时不需要带引号,varchar等字符串类型需要带引号
其他条件查询的关键词:and(与) 、or(或)、not(非)

where .... and ...
where .... or ....
where not ...

去重查询:

select DISTINCT sex from student ;

模糊查询:通过 like 实现
通配符:%(任意多个字符)、_(下划线,单个字符)

select * from student where name llike '%王%';

排序查询:
按照年龄从低到高进行排序:
select * from student ORDER BY age;
如果要反过来,按照年龄从高到底排序,我们可以加上DESC表示“倒序”
select *from student ORDER BY age DESC;
如果想按照年龄降序,并且按照学号升序
select *from student ORDER BY age DESC,sno;
默认的排序规则是ASC:“升序”,即从小到大。ASC可以省略,即ORDER BY score ASC和ORDER BY score效果一样。
分页查询:
把结果集分页,每页3条记录。要获取第1页的记录,可以使用LIMIT 3 OFFSET 0:
聚合查询:
使用SQL内置的COUNT()函数查询:
在这里插入图片描述

分组查询:
分组查询的原理:先对数据进行分组,在对分组后的数据进行汇总,分组查询通常用于配合聚合函数,达到分类汇总统计信息的目的。而分类汇总的本质实际上就是先将数组进行分组,分组后相同类别的信息会聚在一起,然后通过需求进行计算。
在这里插入图片描述

多表查询:
SELECT查询不但可以从一张表查询数据,还可以从多张表同时查询数据。查询多张表的语法是:

SELECT * FROM <1> <2>

连接查询:
关键词:join 、inner join、left join、 right join
应用示例:

//左连接
select student.name,class.class_name from student
left join class on student.class_num = class.class_num;
//右连接
select student.name,class.class_name from student
right join class on student.class_num = class.class_num;

示意图:
在这里插入图片描述
嵌套查询:
一般在子查询中,程序先运行在嵌套在最内层的语句,再运行外层。因此在写子查询语句时,可以先测试下内层的子查询语句是否输出了想要的内容,再一层层往外测试,增加子查询正确率。否则多层的嵌套使语句可读性很低。
嵌套查询最终产生的是一个新的表
在这里插入图片描述

综合应用

例1:查询出年龄超过21岁,并且选择 语文 的同学名字
图解分析:
在这里插入图片描述
SQL语句

SELECT t3.name FROM
   (select t2.sno,student.name,student.age FROM student right JOIN 
        (select t1.sno FROM
	          (select relationship.sno,relationship.cno,scoure.gradeName 
               FROM relationship 
               INNER JOIN scoure on relationship.cno = scoure.cno) t1
	     WHERE t1.gradeName = '语文') t2
   on student.sno = t2.sno) t3
where age > 21;

例2:查询出软件工程班年龄最大,所选择的课程名称及该同学的姓名。

SELECT
	t3.NAME,
	scoure.gradeName 
FROM
	(
SELECT
	t2.NAME,
	relationship.cno 
FROM
	(
SELECT
	t1.sno,
	t1.NAME,
	t1.age 
FROM
	(
SELECT
	student.sno,
	student.NAME,
	student.age,
	class.class_name 
FROM
	student
	INNER JOIN class ON student.class_num = class.class_num 
	) t1 
WHERE
	t1.class_name = '软件工程' 
ORDER BY
	age DESC 
	LIMIT 1 OFFSET 0 
	) t2
	INNER JOIN relationship ON t2.sno = relationship.sno 
	) t3
	INNER JOIN scoure ON t3.cno = scoure.cno;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL基础教程 mobi》是一本关于SQL数据库语言的基础教程。SQL(Structured Query Language)是一种用于管理关系数据库系统的标准语言。通过学习这本教程,读者可以了解SQL的基本语法、数据查询和管理、数据操作和控制等方面的知识。 该教程的内容结构清晰,适合初学者入门。首先介绍了SQL的概念、起源和发展,让读者对SQL有一个全面的了解。接着,教程详细介绍了SQL的基本语法,包括数据库的创建与删除、表的创建与修改、数据的插入与更新、数据的查询等。通过具体的例子和实践操作,读者可以快速上手SQL语言。 教程还讲解了SQL中的数据查询与过滤,包括使用SELECT语句查询特定数据、使用WHERE子句进行条件过滤、使用ORDER BY子句进行排序、使用LIMIT子句限制返回结果数量等。读者可以学习到如何根据需求选择合适的查询方式,进行高效的数据提取。 此外,教程还介绍了SQL中数据的更新与删除操作,包括使用UPDATE语句修改数据、使用DELETE语句删除数据、使用ALTER TABLE语句修改表结构等。读者可以学习到如何对数据库中的数据进行修改和删除,保证数据的完整性和一致性。 总之,《SQL基础教程 mobi》是一本适合初学者入门的SQL教程,通过学习该教程,读者可以掌握SQL语言的基本知识和技能,能够进行数据库的基本操作和管理。无论是对于想要学习数据库技术的人,还是对于需要使用SQL语言进行数据管理的人来说,都是一本很好的参考书籍。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值