函数

用法

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

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 foreign(子表关联字段) references 父表(父表的关联字段);
alter table 子表 add constraint 外键名 foreign key(子表字段) referencnes 父表(父表关联字段名);

在创建表的时候创建外键

foreign key(子表关联字段) references 父表(父表关联字段);

如果在创建外键的时候没有设置外键名字那么mysql会默认给一个外键名

查看外键名

show create table 表名;

删除外键

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引擎中不支持)

MYSQL-->函数与约束条件的更多相关文章

  1. Mysql - 函数

    Mysql提供的函数是在是太多了, 很多我都见过, 别说用了. 园子里面, 有人弄了一个比较全的. MYSQL函数 我这里会将他写的完全拷贝下来, 中间会插入一些自己项目中使用过的心得 一.数学函数 ...

  2. mysql连接查询,封装mysql函数

    连接查询 交叉连接语法: select  * | 字段列表 from 表1  cross join 表2 内连接: select *|字段列表 from 左表 inner join 右表 on 左表. ...

  3. MySQL 函数大全

    mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NU ...

  4. MySQL函数不能创建的解决方法

    MySQL函数不能创建,是一个很麻烦的问题,下面就为您提供了一个解决此问题的方法,如果您也遇到过类似的问题,不妨一看. http://database.51cto.com/art/201010/229 ...

  5. Mysql函数:Last_insert_id()语法讲解

    Mysql函数可以实现许多我们需要的功能,下面介绍的Mysql函数Last_insert_id()就是其中之一,希望对您学习Mysql函数能有所帮助. 自动返回最后一个INSERT或 UPDATE 查 ...

  6. linux下mysql函数的详细案列

    MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...

  7. MySQL函数讲解(MySQL函数大全)

    讲mysql函数之前先给大家展示一下利用mysql函数的一个例子: SELECT i.item_id, i.item_name, i.cid, i.last_update_time, u.url, u ...

  8. mysql函数全解析

    本文摘自:http://www.cnblogs.com/cocos/archive/2011/05/06/2039469.html mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ...

  9. MySQL函数笔记

    MySQL函数笔记 日期函数 SELECT t1.xcjyrq, t1.* FROM view_sbxx t1 WHERE t1.syzt ; SELECT t1.xcjyrq, t1.* FROM ...

  10. 【转】mysql函数

    MySQL函数 MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括 ...

随机推荐

  1. Splash (渲染JS服务)介绍安装

    一. splash介绍 1.Splash 是一个带有 HTTP API 的 javascript 渲染服务.它是一个带有 HTTP API 的轻量级浏览器,使用 Twisted 和 QT5 在 Pyt ...

  2. docker + Umami + Postgresql 网站访问分析

    1 # docker + Umami + Postgresql 2 # 官方安装文档:https://umami.is/docs/install 3 # 一.创建数据库 4 # 1.创建用户 5 CR ...

  3. MySQL 连接超时:报错SQLSTATE[HY000] [2002] Connection timed out

    在网上找了一堆,结果全部是错的 后来,我明白了其实是设置问题. 当你的代码部署到服务器里的时候,你的mysql 的host 值 应该为 127.0.0.1 而不是 你的服务器ip 不然就会报错. 其实 ...

  4. 前端监控系列2 |聊聊 JS 错误监控那些事儿

    作者:彭莉,火山引擎 APM 研发工程师.2020年加入字节,负责前端监控 SDK 的开发维护.平台数据消费的探索和落地. 有必要针对 JS 错误做监控吗? 我们可以先假设不对 JS 错误做监控,试想 ...

  5. Word 文字多选方式有哪些?

    Ctrl + 鼠标左键:不连续地选择文字. Shift + 鼠标左键:连续地选择文字. Alt + 鼠标左键:自由选择文字.

  6. 渗透攻防Web篇-深入浅出SQL注入

    1 背景 京东SRC(Security Response Center)收录大量外部白帽子提交的sql注入漏洞,漏洞发生的原因多为sql语句拼接和Mybatis使用不当导致. 2 手工检测 2.1 前 ...

  7. HDU2065 “红色病毒”问题 (指数型母函数经典板题)

    题面 医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶, ...

  8. 项目实践2:使用html和CSS实现图片轮播

    好家伙, 使用html和CSS实现简单的图片切换(轮播图) 来自:(7条消息) 使用CSS实现简单的图片切换(轮播图)_LexingtonCV16的博客-CSDN博客_css实现图片切换 1.首先创建 ...

  9. linux中awk命令详解(最全面秒懂)

    一:linux中awk命令 1.awk命令简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinber ...

  10. 如何使用Postman快速简单的调用快递物流平台快递鸟API接口

    前沿 快递鸟是一家聚合类的第三方快递物流平台,目前该平台提供的产品主要以API为主.由于API不能直观的看到产品效果,需要进行API对接联调成功后才能真实的看到产品的实际效果.但是如果一上来就写代码进 ...