MYSQL介绍——数据库的增删改及常用函数

数据操作语言——INSERT语句

Insert 语句可以向数据库中插入数据,可以是一条数据,也可以是多条数据,它有以下语法形式:
在这里插入图片描述
下面给出一个插入语法的示例:

INSERT INTO t_dept(deptno,dname,loc) VALUES(50,'司法部','济南');

INSERT INTO t_dept(deptno,dname,loc) VALUES(60,'后勤部','济南'),(70,'安保部','湖北');

INSERT语句方言

MYSQL的INSERT语句还有一种方言语法
在这里插入图片描述
例如:

INSERT INTO t_dept SET deptno='80',dname='财务部',loc = '十堰';

IGNORE语法:

IGNORE关键字会让INSERT只插入数据库不存在的记录
在这里插入图片描述
例如:


INSERT IGNORE INTO t_dept(deptno,dname,loc) VALUES(60,'后勤部','济南'),(90,'HR部','湖北');

INSERT中的子查询

 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 语句

 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函数

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);

获取系统时间函数

  • NOW()函数能获得系统日期和时间,格式yyyy-MM-dd hh:mm:ss
  • 在这里插入图片描述
  • CURDATE()函数能获得当前系统日期,格式yyyy-MM-dd
    在这里插入图片描述
  • CURTIME()函数能获得当前系统时间,格式hh:mm:ss
    在这里插入图片描述

日期格式化函数

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()函数用来计算两个日期之间相差的天数
在这里插入图片描述

字符函数

在这里插入图片描述
在这里插入图片描述

SQL语句中可以利用条件函数来实现编程语言里的条件判断在这里插入图片描述


# 中秋节公司发放礼品,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;

猜你喜欢

转载自blog.csdn.net/HBUT_WANGWEI/article/details/127096035