SQL个人总结

本文详细介绍了SQL的基本语法和执行顺序,包括SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY的使用。此外,还讲解了子查询、集合运算、多表查询以及各种查询条件和聚合函数的应用。通过实例展示了如何进行数据过滤、分组统计、交集、差集和合并等操作。同时,探讨了内外连接的概念,并提供了创建、删除数据库和表以及数据的增删改查操作。
摘要由CSDN通过智能技术生成

SQL

select 字段 from 表名 where … group by… having… order by…

SQL的执行顺序:

第一步:执行FROM

第二步:WHERE条件过滤

第三步:GROUP BY分组

第四步:执行SELECT投影列

第五步:HAVING条件过滤

第六步:执行ORDER BY 排序

关键字

查询 select 删除 delete

增加 insert 修改 update

约束

NOT NULL 非空约束

UNIQUE 唯一约束

PRIMARY KEY 主键

FOREIGN KEY 外键

CHECK 检查约束

DEFAULT 默认值

条件查询

条件查询需要用到where语句,where必须放到from语句表的后面
支持如下运算符

运算符说明
=等于
<>或!=不等于
<小于
<=小于等于
>大于
>=大于等于
between and …****.两个值之间
is null为null
and并且
or或者
in包含,相当于多个or
notnot可以取非,主要用在is 或in中
likelike称为模糊查询,支持%或下划线匹配%匹配任意个字符下划线,一个下划线只匹配一个字符

集合运算

交集 INTERSECT

两个集合的交集是由既属于集合A和集合B的所有元素组成的集合

--求出分数大于70的记录和学生序号为5的记录的交集
SELECT * FROM selection WHERE score >70 INTERSECT
SELECT * FROM selection WHERE student_id =5

减集 lEXCEPT

两个集合的差集(A-B)是由属于A,但不属于B的元素组成的集合(顺序很重要)

--求出分数大于70的记录和学生序号为5的记录的减集
SELECT * FROM selection WHERE score >70 EXCEPT
SELECT * FROM selection WHERE student_id =5

合并 union(合并集合)(可以相加) 不允许重复

select * from 表A where age = 18 union select * from 表A where age = 19

分页 limit m,n //m从哪一条开始读 n读取几条

select * from  表A limit 0,5--从0开始,读取5条数据

聚合函数

SUM()总数 AVG()平均数

MAX()最大值 MIN()最小值

COUNT()计数

group by 搭配集合函数永远的神。如需判断条件使用having

WHERE过滤→分组→聚合函数→having过滤

子查询

子查询就是指的在一个完整的查询语句之中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式

select * from 表A where age in(select age from 表B)

主要使用三种操作符:IN、ANY、ALL

any 表示与子查询中的每个元素进行比较

in 表示和子查询中的元素相同比较

all 大于all 就是大于查询中的最大值 小于all就是小于查询中的最小值

多表查询

带有 where 条件 相当于内连接 但不是内连接

表A和表B都有aid

select * from 表A a,表B b where a.aid=b.aid

内连接

-- join on	内连接		inner join 等同于 join
SELECT * FROM1 JOIN2 ON1.字段1 比较运算子 表2.字段1 AND 
ON1.字段2 比较运算子 表2.字段2) OR ON1.字段3 比较运算子 表2.字段3)

外连接

左连接 left join on 右连接 right join on

-- 假设在 city 列上联接 authors 表和 publishers 表。
-- 使用左向外联接 
SELECT a.au_fname, a.au_lname, p.pub_name FROM authors a LEFT OUTER JOIN publishers p ON a.city = p.city
-- 使用右向外联接 
SELECT a.au_fname, a.au_lname, p.pub_name FROM authors a RIGHT OUTER JOIN publishers p ON a.city = p.city

SQL语句

-- 创建数据库如果boot不存在
create database if not exists boot 
-- 展示数据库
show databases
-- 删除数据库
drop database boot
-- 使用数据库
use boot
-- 查看当前数据库
select database()
-- 查看当前数据库版本
select version()
-- 查看其他数据库中的表
show table from mysql
-- 创建数据库表
create table temp(
id 		int 			NOT NULL 		PRIMARY KEY,
name 	varchar(32)		NOT NULL
)
-- 删除数据库表
drop table temp
-- 插入数据
insert into temp values(1, 'zhangsan')
-- 查询数据
select * from temp
-- 去重 DISTINCT
select distinct * from temp
-- 某条件查询表中数据
select * from temp where age>18
-- 修改数据
update temp set name='lisi'
-- 删除表中特定数据
delete from temp where name = 'lisi'
-- 更改显示行的名称(虚拟的)
select id '你说呢' from temp
-- between...and  在什么中间
select * from temp where sal between 1600 and 3000
-- group by 分组	by后跟分组的条件  如需判断条件使用having
select * from temp group by name;
-- having	和where类似
select * from temp group by name having age>18;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不是空弦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值