当前位置: 首页 > news >正文

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;

相关文章:

  • 线性单功能PEG试剂甲氧基-聚乙二醇-丙烯酰胺,mPEG-Acrylamide,mPEG-ACA
  • 洛谷P3694
  • b站pink老师Echarts数据可视化笔记
  • 计算机三级数据库运行维护与优化(四)、合理使用索引、数据库存储结构和存取方法优化、完全规范化、索引的使用原则、、网络优化、监控内容、物化视图
  • HDMI/DVI____串行发送器
  • 深度操作系统 15.2——怀揣梦想,笃定前行
  • SAP PI PO 接口配置主体传播 RSXMB_CONFIG_PP_NEW
  • Python编程基础:函数的使用
  • 19.请介绍一下重绘和回流
  • Flink / Scala - AllWindowFunction 与 KeyedProcessFunction 处理 TopK 问题
  • C++20之Concpet(概念部分,之二)
  • 【Spirng】@Component和@Configuration和@Bean的区别
  • 跟着江南一点雨学习springmvc(3)
  • 安卓手机使用Tasker实现应用级功能,屏幕翻译v9,翻译复制贴图
  • 一篇文章吃透 CSS3 属性: transition过渡 与 transform动画
  • 【391天】每日项目总结系列128(2018.03.03)
  • AWS实战 - 利用IAM对S3做访问控制
  • CentOS7简单部署NFS
  • DataBase in Android
  • Fundebug计费标准解释:事件数是如何定义的?
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • passportjs 源码分析
  • supervisor 永不挂掉的进程 安装以及使用
  • Theano - 导数
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue 配置sass、scss全局变量
  • 马上搞懂 GeoJSON
  • 如何学习JavaEE,项目又该如何做?
  • 深度学习入门:10门免费线上课程推荐
  • 手写双向链表LinkedList的几个常用功能
  • 思考 CSS 架构
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 异步
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​520就是要宠粉,你的心头书我买单
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #etcd#安装时出错
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (八)c52学习之旅-中断实验
  • (编译到47%失败)to be deleted
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (算法)Travel Information Center
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)Linq学习笔记
  • (转)LINQ之路
  • .cn根服务器被攻击之后
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 使用 XPath 来读写 XML 文件