sql相关记录

limit关键字

有2种形式,一种是limit后面带一个值,另一种是带2个值。

  1. select prod_name from products limit 5;将返回从第1行开始的前5条数据。

  2. select prod_name from products limit 5,5; 表示返回从行5开始的5行数据。第一个数为开始位置,第二个数为要检索的行数。

offset关键字
1
2
3
4
5
select hire_date from employees

order by hire_date desc -- 倒序

limit 1 offset 2 -- 去掉排名倒数第一第二的时间,取倒数第三

offset:去掉几行元素。上面的意思就是掉排名倒数第一第二的时间,然后limit 表示取第一条记录,取倒数第三

group by关键字

“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

Having和Where的区别
  • where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
  • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
批量插入
1
2
3
INSERT into actor(actor_id, first_name, last_name, last_update)
values(1,'PENELOPE',"GUINESS",'2006-02-15 12:34:33'),
(2,"NICK","WAHLBERG","2006-02-15 12:34:33");
replace函数

本题考查的是replace函数,其中包含三个参数,第一个参数为该字段的名称,第二参数为该字段的需要被修改值,第三个参数为该字段修改后的值。

1
2
3
UPDATE titles_test
set emp_no = REPLACE(emp_no,'10001','10005')
where id=5

UPDATE和REPLACE基本类似,但是它们之间有两点不同。   
首先查重,

  1. 当没有找到匹配记录(不存在重复记录)时:
    UPDATE什么都不做,
    REPLACE会做insert动作。
  2. 当找到匹配记录(存在重复记录)时:
    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中不允许在子查询的同时删除表数据(不能一边查一边把查的表删了)

作者

bd160jbgm

发布于

2021-08-30

更新于

2021-08-30

许可协议