0
点赞
收藏
分享

微信扫一扫

常用SQL相关语句

张宏涛心理 2022-05-02 阅读 92
sql数据库

1、查询表内所有数据

SELECT * FROM 表名

2、where 条件约束声明查询

SELECT * FROM 表名 WHERE XXX = 'XXX';

3、and 当两个布尔表达式都为true时,返回true

SELECT * FROM 表名 WHERE XXX = 'XXX' AND xx = 'xx';

4、or 当两个布尔表达式有一个为true时,返回true

SELECT * FROM 表名 WHERE (a > 1 OR b > 1) AND status = 0;

5、模糊查询

查询Key结尾的内容

SELECT * FROM 表明 WHERE a = 1 LIKE '%Key'

查询Key开头的内容

SELECT * FROM 表明 WHERE a = 1 LIKE 'Key%'

查询含有Key的内容

SELECT * FROM 表明 WHERE a = 1 LIKE '%Key%'

6、having使用

having子句可以让我们筛选成组后的各组数据,通常与group by分组一起使用
查询2022年至今,所有学生成绩超过60的科目数量

SELECT name, count(score) FROM 表明 
WHERE date >= '2022-01-01' 
GROUP BY name having count(score) >= 60

(1)where和having的区别

where:
where是一个约束声明,使用where来约束来自数据库的数据;
where是在结果返回之前起作用的;
where中不能使用聚合函数。

having:
having是一个过滤声明;
在查询返回结果集以后,对查询结果进行的过滤操作;
在having中可以使用聚合函数。

where不能使用聚合函数、having中可以使用聚合函数
聚合函数就是例如:SUM, COUNT, MAX, AVG等

where子句在聚合前先筛选记录,也就是说作用在group by 子句和having子句前,而 having子句在聚合后对组记录进行筛选

(2)having能否单独使用

跟数据库有关系,测试了常用的三个数据库,结果是Oracle和postgresql不能,mysql可以

7、内连接查询

INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。

SELECT a.name, b.score FROM1 a INNER JOIN2 b ON a.name = b.name;

8、多表关联查询(等值连接)

查询学生成绩大于60的分数

SELECT a.name,b.score FROM1 AS a,2 AS b 
WHERE a.id = b.id AND b.score > 60;

9、左外连接查询

LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据

SELECT a.name, b.score FROM1 a LEFT JOIN2 b ON a.name = b.name;

10、右外连接查询

RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据

SELECT a.name, b.score FROM1 a RIGHT JOIN2 b ON a.name = b.name;

11、插入

INSERT INTO 表名(字段名) VALUES (值)

INSERT INTO t_student(s_name,s_class,s_birthday,s_grade,s_sex)
VALUES(‘张无忌’,‘j171’,2020-09-22,78,‘女’),
(‘张青峰’,‘j170’,2020-09-23,67,‘女’);

12、删除

DELETE FROM 表名 WHERE 条件是什么

DELETE FROM t_employee 
WHERE pk_id 
NOT IN (SELECT * FROM(SELECT MIN(pk_id) 
FROM t_employee 
GROUP BY e_name,e_dept,e_money) X);

13、更改

UPDATE 表名 SET 设置更改的字段名以及值 WHERE 条件是什么

UPDATE t_student SETs_class=‘j111’,s_grade=92,s_birthday=2020-09-09WHERE s_name=‘张青峰’;
举报

相关推荐

0 条评论