一、数据库
主要学习前三类。
二、DML
表的创建:直接利用图形化界面操作。方便快捷且主流使用。且DDL操作比较简单,此处略过。
2.1 插入
2.2 更新
如果没有where条件,则会更新整张表。
2.3 删除
如果使用DELETE语句,会将整行记录删除,而不是仅清空某一个字段的值。因此,确实在需要清空某一个字段的值而不删除整行记录的情况下,应该使用UPDATE语句来实现。
三、DQL
首先要记住这幅图!
3.1 基本语法
3.2 条件查询
这里注意in的用法:in语句的作用是用于判断一个字段的值是否在指定的值列表中,如果字段的值等于值列表中任何一个值,则返回该行数据。
如:
SELECT *
FROM users
WHERE id IN (1, 2, 3);
3.3 分组查询
重要讨论:分组查询之后,select之后返回的字段主要包括两类,一类是分组字段,一类是聚合函数,并且where之后不能使用聚合函数。
问题:select gender,count(*) from tb_emp group by gender
;为什么不可以写作select * from tb_emp group by gender
?
回答:在SQL中,使用GROUP BY语句对结果进行分组时,需要指定要分组的列,并且在SELECT语句中必须指定要查询的列和使用聚合函数对数据进行处理。在这种情况下,我们需要使用COUNT(*)函数对每个不同gender值进行计数,并返回结果。因此,我们无法使用SELECT *语句,而应明确指定要显示的列和进行相应的数据处理。
同时注意having的用法:
having:在having之后写分组之后的过滤条件。
3.4 排序查询
例如下面代码,其中DESC是降序,ASC是升序。
SELECT name, age, salary
FROM employees
ORDER BY age DESC, salary ASC;
3.5 分页查询
起始索引默认为0。
例子:假设每页显示10条记录。
下面查询将返回表users中的name和age字段,并按照age字段的值降序排列结果,并且返回起始位置为10,查询行数为10,即返回第二页的数据。
SELECT name, age
FROM users
ORDER BY age DESC
LIMIT 10, 10;