Python第十三课MySQL日期函数与字符串函数

本文详细介绍了SQL中的日期函数和字符串函数,包括NOW、SYSDATE、DATE_FORMAT、TIME_FORMAT、STR_TO_DATE等日期操作函数,以及INSERT、LEFT、RIGHT、LTRIM、RTRIM、STRCMP、CONCAT、SUBSTRING、UPPER、LOWER等字符串处理函数。此外还涵盖了多表查询及表关系等内容。
摘要由CSDN通过智能技术生成

一、日期函数
日期函数与字符串函数

  1. now()现在时间 NOW()在执行开始的时候 值就获取到了
  2. sysdate()执行到时的时间
    eg:select now(),sleep(3),sysdate() 后者比前者慢3s
  3. 日期转换:
 select DATE_FORMAT('2021-01-27 10:21:59','%Y-%m-%d- %H%i%s')    2021-01-27102159
 SELECT TIME_FORMAT('10:21:59','%H%i%s')						 102159
  1. 字符串转日期:
select STR_TO_DATE('08/08/2008','%m/%d/%Y')						20008-08-08
  1. 日期转天数:
select TO_DAYS('2021-01-27')					0000-01-01到今天的天数
select TIME_TO_SEC('01:00:05')					时间转秒
SELECT SEC_TO_TIME(3605)						秒转时间
  1. 时间和日期的拼凑函数:
select MAKEDATE(2021,200)						2021-07-19
select MAKETIME(10,34,23)						103423
  1. 为日期增加(减少)一个时间间隔:
SELECT DATE_ADD(SYSDATE(),   INTERVAL(时间间隔)   1(间隔个数) 	week)     
SELECT DATE_SUB(SYSDATE(),   INTERVAL 	1 	week)

8.时间,日期的相减函数:

SELECT DATEDIFF('2021-01-27','1999-08-12')  			返回天数
SELECT TIMEDIFF('10:40:10','10:30:50')  				返回时间
  1. Last__day(hiredata) 返回当前月的最后一天
    二、字符串函数
    9.INSERT 替换的方式插入
INSERT (str,pos,len,newstr)
eg:将smyh001替换为smyh002
select insert(‘smyh001’,53,‘002’)

解释:返回字符串str,从原str的pos位置开始,用字符串newstr来替换,替换的长度为len。
如果pos超过字符串长度,则返回值为原始字符串。假如len的长度超过后面字符串的长度,则从位置pos开始替换到字符串的结尾即可。
四个参数中若任何一个参数为的值为null,则整个函数的返回值为NULL。
9. LEFT/RIGHT:字符串截取

左截取:LEFT(str,len)  select LEFT(ename,1) from salary_emp
右截取:RIGHT(str,len) select RIGHT(ename,1) from salary_emp
  1. LTRIM/RTRIM/TRIM 去空格(左/右/自定义):
去掉左边的空格:LTRIM(str)
去掉右边的空格:RTRIM(str)
自定义去空格:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
			大括号和中括号里面的参数为可选项,如果全部都加上的话,默认为参数both,
			解释:将原字符串str去掉空格返回。只去开头(leading)的空格,只去结尾(trailng)的空格,或者同时去掉(both)开头和结尾的空格都行。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH

在这里插入图片描述
11. STRCMP:判断字符串是否相等

STRCMP(expr1,expr2)
select ename,job, STRCMP(ename,job) from salary_emp
解释:判断两个字符串是否相等。若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1;其它情况返回1。功能和比较器类似。
注:字符串的大小是按照ANSI编码来比较的。
  1. CONCAT:字符串拼接
CONCAT(str1,str2,...)
select CONCAT(empno,ename) from salary_emp
解释:返回结果为连将str1、str2···拼接之后产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。括号里可能有一个或多个参数。

在这里插入图片描述
13. SUBSTRING:字符串截取

SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)

在这里插入图片描述
14. UPPER/LOWWER:大小写

select UPPER(ename) from salary_emp
select LOWWER(ename) from salary_emp
  1. 填充PAD
select LPAD(ename,10,'*') from salary_emp   左填充
select RPAD(ename,10,'*') from salary_emp	右填充
  1. 重复REPEAT
select REPEAT(ename,2) from salary_emp    重复两次
  1. 代替REPLACE
select REPLACE(ename,'强','花') from salary_emp  把所有的‘强’替换成‘花’

三、多表查询
多表查询
18. 嵌套查询

select * from salary_dept where deptno = (select deptno_id from salary_emp where ename='刘某') 
把后者确定的值传入前者需要的条件
  1. 笛卡尔积
select * from salary_emp ,salary_dept where salary_emp.deptno_id = salary_dept.deptno
  1. 左外连接
select * from salary_emp e LEFT JOIN salary_dept d on e.deptno_id = d.deptno
  1. 右外链接
select * from salary_emp e RIGHT JOIN salary_dept d on e.deptno_id = d.deptno
  1. 内连接
select * from salary_emp e INNER  JOIN salary_dept d on e.deptno_id = d.deptno

四、表关系
23. 一对多的关系 主表–从表 1:多 反过来:1:1 外键
24. 一对一:人员 身份证信息 表1–>表2 1:1 反过来:1:1
25. 多对多:表1–>表2 1:多 反过来:1:多 中间表 (两个外键,一个联合主键)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值