首页 > 数据库 >MYSQL-->函数与约束条件

MYSQL-->函数与约束条件

时间:2022-08-20 11:33:15浏览次数:54  
标签:约束条件 返回 -- 外键 约束 value MYSQL 返回值 子表

函数

用法

函数最常用的地方就是查询语句处

select 函数(字段) from 表名;
select 字段列表 from 表名 group by 分组字段 having 函数(字段);

字符串函数(字符串要用引号包裹!)

Concat

Concat(s1,s2,....,sn);

用途:将多个字符串拼接成一个

Lower和Upper

Lower(x)
Upper(x)

用途:Lower将x字符串全部转化为小写,Upper将字符串全部转化为大写

Lpad和Rpad

Lpad(str,n,pad)
Rpad(str,n,pad)

用途:Lpad是左填充,Rpad是右填充,将str字符串左/右边填充pad字符串知道他们之为n
原本字符串+填充字符串=n时停止

Trim

trim(x)

用途:将字符串x的首尾处空格去掉

Substring

substring(str,star_index,len)

用途:从star_index处截取字符串str,截取len个字符(下标从1开始)

日期函数(日期要用引号包裹!)

获取当前时间

Curdate()			->返回日期,年-月-日
Curtime()			->返回日期,时-分-秒
Now()				->返回日期,年-月-日-时-分-秒

截取当前时间其中一部分

Year(date)			->返回date日期中的年
Month(date)			->返回date日期中的月
day(date)			->返回date日期中的日

修改时间的

Date_add(date,interval 数值 值类型)

用法

select date_add(now(),interval 70 hour);在当前日期之后增加70小数后是什么时候

值类型有:year,month,day,hour,minute,second

Datediff(day1,day2)			->返回day2与day1之间相差多久

数值函数

对值取整

ceil(x)				->对x向上取整
floor(x)			->对x向下取整

其他

mod(x,y)			->返回x处于y的余数
rand()				->返回0到1之间的小数(精度很长!比如说0.5151915616)
round(x,y)			->求x四舍五入之后的值,保留y位小数

流程控制函数(就if判断这种)

if判断

if(value,t,f)	-->如果value的逻辑值是true就返回t值,如果为false就返回f值

ifnull判断

ifnull(value_1,value_2)		如果value_1不为null就返回value_1要不然就返回value_2

value可以为表达式/值,等形式

case 表达式 when 值 形式的判断

语法

case 表达式 when 值a then 返回值1 when 值b then 返回值2 .....else 抄底返回值 end;

解释:如果表达式=值a,就返回值1,如果表达式=值b,就返回值2,如果都不等于就返回抄底返回值
这个就和编程语言中的switch大致一致!

case when 值 形式的判断

语法

case when 条件表达式a then 返回值1 when 条件表达式b then 返回值2 else 抄底返回值 end;

解释:如果条件表达式a成立即为true就返回值1,如果条件表达式b成立就返回值2,都不成立就返回抄底返回值
这个就和编程语言中的if大致一致

约束条件

描述

约束就是限定表数据的规则
目的:保证数据库中的数据的正确性,有效性,完整性

在建表/修表的时候添加约束条件
约束是作用于表中字段上的
多个约束用空格分割

分类

约束 描述 关键字
非空约束 限制字段数据不能为null not null
唯一约束 保证字段数据是唯一不重复的 unique
主键约束 主键是一行数据的唯一标识,要求非空且唯一 primary key
默认约束 保存数据的时候如果没给字段值就给出默认值 default
检查约束 保证数据满足条件 check
外键约束 用于俩张表之间建立连接 foreign key

主键约束一般搭配自动增长auto_imporment一起使用

用法

Create table 表名(
	字段名1 类型 约束条件,
	....
	字段名n 类型 约束条件,
);

check用法举例

age int check(age>5 && age<10)

default用法举例

age int default 1

修改字段约束

Alter table 表名 add 字段 类型 约束;
Alter table 表名 change 旧字段 新字段 类型 约束

外键

具有外键的表叫子表,外键关联的表叫父表
语法
创建外键

Alter table 子表名 add constraint 外键名 foreign key(外键名) references 父表(关联字段);

删除外键

alter table 子表名 drop foreign key 自定义的外键名;

默认删除/更新外键数据行为

Alter table 子表名 add constraint 外键名 foreign key(外键名) references 父表(关联字段) on update 关键字 on delete 关键字;

行为关键字

行为 描述
No action 当在父表中删除/更新记录的时候,首先检查该记录是否存在外键,如果存在就不允许删除/更新
restrict 与no action一致
cascade 当在父表中删除/更新记录的时候,首先检查该记录是否存在外键,如果存在,就也删除/更新子表中的记录
set null 当在父表中删除/更新记录的时候,首先检查该记录是否存在外键,如果存在,如果有就设置子表外键值为null(注意子表约束是否运行为null)
set default 父表有变更的时候,子表将外键值设为一个默认值(innodb引擎中不支持)

标签:约束条件,返回,--,外键,约束,value,MYSQL,返回值,子表
From: https://www.cnblogs.com/wdadwa/p/MYSQL_Learning_03.html

相关文章

  • 使用Docker搭建Nextcloud私有网盘
    一、准备材料安装环境:linux工具:docker软件:MySql、Nextcloud二、安装Docker安装Docker:https://www.cnblogs.com/jzcn/p/15693786.html三、下载镜像使用DocKer下载......
  • "蔚来杯"2022牛客暑期多校训练营4
    A.TaskComputing给定\(n\)个任务,每个任务有两个权值\(w_i,p_i\),从中按任意顺序选出\(m\)个任务\((a_1,a_2,...,a_m)\),收益为\(\sum\limits_{i=1}^mw_{a_i}\prod\limits_{......
  • 服务器负载暴增排查
    top状态查看      系统平均负载高,但cpu,内存,磁盘io都正常      系统平均负载   1.平均负载是指单位时间内,系统处于可运行状态和不可中断状态......
  • 传球游戏【NOIP2018普及组T3】(ybtoj 递推例题2)
    题目描述上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的: 个同学站成一个圆圈,其中的一个同学手里拿着一......
  • 记录一下我的ctf比赛的web题目
    Web之getshell:具体代码如下<?phphighlight_file(__FILE__);error_reporting(0);echo"<h1>WELCOME23333333333</h1>"."\n";$url=$_SERVER["HTTP_REFERER"];$r=......
  • 理工科开题前的论文调研
    目录科研中常见文献文献检索文献分析文献调研要点科研中常见文献reviewarticles综述文章综合性、扼要、评论性强、参考文献多Articles学术论文更新快、前言、......
  • 南沙区拆迁项目帮助
    南沙区拆迁项目帮助一、前言本流程是作为作业小组操作的指引说明。项目做业前必须与项目负责人确认项目配置是否已更新,非项目负责人严禁修改任何配置文件,流程内特殊说明......
  • vue项目打包成dist文件以后,index.html加载空白?
    打包成dist文件以后,index.html加载空白没有修改config配置文件,直接打包,系统默认的是’/’(根目录),而不是’./’(当前目录),从而导致路径不对,页面加载不出来。针对vue-cli3.......
  • django中的中间件
    1.什么是中间件中间件是django的门户,在请求响应进入进出django的时候,都需要先经过中间件,用来全局改变django的输入和输出。django中自带7个中间件,每个中间件都有其特定......
  • 珂朵莉树合集
    ColortheBall#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;//conllexprintmod=998244353;//conllexprintmod=1000000007;templ......