sql相关记录
limit关键字
有2种形式,一种是limit后面带一个值,另一种是带2个值。
select prod_name from products limit 5
;将返回从第1行开始的前5条数据。select prod_name from products limit 5,5
; 表示返回从行5开始的5行数据。第一个数为开始位置,第二个数为要检索的行数。
offset关键字
1 | select hire_date from employees |
offset
:去掉几行元素。上面的意思就是掉排名倒数第一第二的时间,然后limit 表示取第一条记录,取倒数第三
group by关键字
“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
Having和Where的区别
- where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
- having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
批量插入
1 | INSERT into actor(actor_id, first_name, last_name, last_update) |
replace函数
本题考查的是replace函数,其中包含三个参数,第一个参数为该字段的名称,第二参数为该字段的需要被修改值,第三个参数为该字段修改后的值。
1 | UPDATE titles_test |
UPDATE和REPLACE基本类似,但是它们之间有两点不同。
首先查重,
- 当没有找到匹配记录(不存在重复记录)时:
UPDATE什么都不做,
REPLACE会做insert动作。- 当找到匹配记录(存在重复记录)时:
UPDATE可以更新记录的一部分字段。
REPLACE将已存在记录彻底删除(DELETE),再插入新的记录(INSERT)。也就是说,将所有的字段都更新为新记录的字段了
MySQL中ALTER TABLE 语句的用法
- ALTER TABLE 表名 ADD 列名/索引/主键/外键等;
- ALTER TABLE 表名 DROP 列名/索引/主键/外键等;
- ALTER TABLE 表名 ALTER 仅用来改变某列的默认值;
- ALTER TABLE 表名 RENAME 列名/索引名 TO 新的列名/新索引名;
- ALTER TABLE 表名 RENAME TO/AS 新表名;
- ALTER TABLE 表名 MODIFY 列的定义但不改变列名;
- ALTER TABLE 表名 CHANGE 列名和定义都可以改变。
ROUND函数
round(聚合函数,小数位数),可以精确到小数点后多少位
其他
<>、!=、 is not
都是不相等
MySQL中不允许在子查询的同时删除表数据(不能一边查一边把查的表删了)