Insert 语句可以向数据库中插入数据,可以是一条数据,也可以是多条数据,它有以下语法形式:

下面给出一个插入语法的示例:
INSERT INTO t_dept(deptno,dname,loc) VALUES(50,'司法部','济南');
INSERT INTO t_dept(deptno,dname,loc) VALUES(60,'后勤部','济南'),(70,'安保部','湖北');
MYSQL的INSERT语句还有一种方言语法

例如:
INSERT INTO t_dept SET deptno='80',dname='财务部',loc = '十堰';
IGNORE关键字会让INSERT只插入数据库不存在的记录

例如:
INSERT IGNORE INTO t_dept(deptno,dname,loc) VALUES(60,'后勤部','济南'),(90,'HR部','湖北');
INSERT语句中可以包含子查询语句,代表把子查询的内容写入到数据表
把人数超过5人的部门记录拷贝到新的部门表
例如:
INSERT INTO t_dept_new( deptno, dname, loc )
(
SELECT
d.deptno,
d.dname,
d.loc
FROM
t_dept d
INNER JOIN ( SELECT deptno FROM t_emp e GROUP BY deptno HAVING COUNT(*)> 5 ) temp ON d.deptno = temp.deptno
)
UPDATE语句用于修改表的记录

把每个员工的编号和上司的编号+1,用ORDER BY子句完成
UPDATE IGNORE t_emp
SET empno =empno+1,
mgr =mgr+1
ORDER BY empno DESC
把月收入前三名的员工底薪减100元,用LIMIT子句完成
UPDATE t_emp
SET sal =sal-100
ORDER BY SAL DESC
LIMIT 3
把10部门中,工龄超过20年的员工,底薪增加200元
UPDATE t_emp
SET SAL =sal +1000
where deptno ='10'
AND DATEDIFF(NOW(),hiredate)/365 >20
把ALLEN调往RESEARCH部门,职务调整为ANALYST
#把ALLEN调往RESEARCH部门,职务调整为ANALYST
UPDATE t_emp E inner join t_dept t
SET E.deptno = t.deptno,JOB ='SALESMAN'
WHERE t.dname ='RESEARCH' AND E.ename='ALLEN'
mysql函数是指数据库将复杂一点的功能封装在函数中,供使用者使用。


#绝对值
SELECT ABS(-100);
#四舍五入
SELECT ROUND(9.87);
#向下取整
SELECT FLOOR(9.87);
#向上取整
SELECT CEIL(9.987);
#幂函数
SELECT POWER(2,3);
#对数函数
SELECT LOG(2,2);
#对数函数
SELECT LN(2);
#开平方
SELECT SQRT(9);
#圆周率
SELECT PI();
#三角函数等
SELECT SIN(X);
#角度转弧度
SELECT RADIANS(30);
#弧度转角度
SELECT DEGREES(1);



DATE_FORMAT()函数用于格式化日期,返回用户想要的日期格式



#利用日期函数,查询明年你的生日是星期几?
SELECT DATE_FORMAT("2023-07-14","%W");
#利用日期函数,查询1981年上半年入职的员工有多少人?
SELECT COUNT(*)
FROM t_emp
WHERE DATE_FORMAT(hiredate,"%Y")='1981'
AND DATE_FORMAT(hiredate,"%m")<='6'
MySQL数据库里面,两个日期不能直接加减,日期也不能与数字加减
DATE_ADD()函数可以实现日期的偏移计算,而且时间单位很灵活

select DATE_ADD(NOW(),INTERVAL 10 YEAR);
select DATE_ADD(NOW(),INTERVAL 10 MONTH);
select DATE_ADD(NOW(),INTERVAL 10 DAY);
select DATE_ADD(NOW(),INTERVAL -10 YEAR);
select DATE_ADD(NOW(),INTERVAL -10 MONTH);
;
select DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),"%Y/%m/%d")
DATEDIFF()函数用来计算两个日期之间相差的天数




# 中秋节公司发放礼品,SALES部门发放礼品A,其余部门发放礼品B,打印每名员工获得的礼品
SELECT E.empno,E.ename,E.empno,t.dname,IF(t.dname ='SALES',"礼品A","礼品B") AS gift
FROM t_emp E INNER JOIN t_dept T
ON E.deptno =t.deptno

#公司年庆决定组织员工集体旅游,每个部门旅游目的地是不同的。SALES部门去P1地点,ACCOUNTING部门去P2地点,RESEARCH部门去P3地点,查询每名员工的旅行地点
SELECT ename,
CASE D.dname
WHEN "SALES" THEN
"P1"
WHEN "ACCOUNTING" THEN
"P2"
WHEN "RESEARCH" THEN
"P3"
ELSE
"P4"
END AS PLACE
FROM t_emp E INNER JOIN t_dept D
ON E.deptno =D.deptno;