sql也是一种编程语言,它里面也有函数,分为内置得函数和自定义得函数(高级)。
内置函数:
1.聚合函数。
2.字符串函数。—操作字符串
3.时间函数—>操作得时间
4.算术函数—>数学操作。
5.其他函数

1. 字符串函数。—操作字符串

常用函数:

-- 字符串拼接函数
select name from t_student;select concat('我的名字叫:',name,",年龄:",age) as n from t_student;-- 字符串转换为大写和小写
select name,upper(name),LOWER(name) from t_student;-- 去除前后空格
select address,trim(address) from t_student;-- 找到姓李得学生 字符串得截取
select * from t_student where name like '李%';select * from t_student where substr(name,1,1)='李'

2. 数字函数

常见函数:

-- 向上取整 5.1你给定得值
select ceil(5.1),floor(5.9),mod(10,3),abs(-5.9) from t_student;-- 要求如果status为0变为1 为1变为0  update
update aaa set status=abs(status-1);

3. 时间函数

-- CURDATE()返回当前日期  后面可以不用跟表名
select curdate();
-- 可以用在where
select * from tb_emp where curdate()-entrydate=1-- CURTIME()返回当前时间
select curtime() ;-- NOW()返回当前日期和时间
select now();-- YEAR(date)获取指定date的年份
select year('2022-04-25');select * from tb_emp where year(entrydate)=2022-- DATE_ADD(date, INTERVAL expr  type)返回一个日期/时间值加上一个时间间隔expr后的时间值
SELECT DATE_ADD('2020-04-25', INTERVAL 3 YEAR);-- DATEDIFF(date1, date2)返回起始时间date1和结束时间date2之间的天数
select datediff('2020-05-25','2020-04-25');
-- 入职30天得员工.
select * from tb_emp where DATEDIFF(now(),entrydate)>30

4. 流程函数

-- 如果年龄>30妇女  否则少女
select age,if(age>30,'妇女','少女') from tb_emp;-- ifnull 如果为null,则
select job,ifnull(job,'工作待定') from tb_emp;

5. 约束


约束是作用于表中字段上的,可以再创建表/修改表的时候添加约束。

create table t_teacher(id int primary key auto_increment, -- 要求该列得值必须唯一且不能为null.tname varchar(20) unique, -- unique 唯一约束 表示该列得值必须唯一。但是可以运行多个nullage int not null, -- not null 非空约束 表示该列得值不能为null.sex char(2) default '男' -- default 默认约束 表示如果该列没有给定值 则默认为男
)
select * from t_teacher;
insert into t_teacher(id,tname,age,sex) values(null,'刘德华',15,'女');
-- Duplicate entry '刘德华' for key 'tname' 由于tname具有唯一约束 表中有名字为刘德华 所以不能在添加刘德华名称
insert into t_teacher(id,tname,age,sex) values(null,'刘德华',18,'男');
-- Column 'age' cannot be null 因为age设置了非空约束所以 添加数据时年龄必须有值。
insert into t_teacher(id,tname,age,sex) values(null,'张学友',null,'男');-- 因为sex有默认约束 所以在添加数据时可以不为sex设置值,则采用默认值。
insert into t_teacher(id,tname,age) values(null,'张学友',22);

6. 外键约束

外键约束用来让两张图的数据之间建立连接,保证数据的一致性和完整性。
-- 外键
create table t_class(cid int primary key auto_increment,cname varchar(20)
);
create table t_stu(sid int primary key auto_increment,sname varchar(20),classid int -- 表示外键列。
);
-- add contraint 约束得名称  foregin key 外键得列名 REFERENCES 主表名(主键)  -- alter table 从表名 add contraint 约束名随便起 foreign key 外键列名 references  主表(主键)
alter table t_stu add CONSTRAINT fk_stu_class FOREIGN key (classid) REFERENCES t_class(cid);insert into t_class values(null,'QY145'),(null,'QY151');insert into t_stu values(null,'李青华',2);
-- 因为classid=3 这个值 在我们得班级表中不存在。所以不能添加
insert into t_stu values(null,'张青',1);

MySQL的函数和约束相关推荐

  1. MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物

    MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物 前言 1.MySQL概述 1.1数据库相关概念 1.2MySQL数据库 1.2.1版本 1.2.2下载 1.2.3安装 ...

  2. <三>从0基础到中级DBA(MySQL篇)----------->函数与约束

    目录 一.函数 1.函数的概念 2.函数的分类 2.1 字符串函数 2.2 数值函数 2.3 日期函数 2.4 流程函数 二.约束 1.约束的概念 2.约束的分类 2.1 非空约束 2.2 唯一约束 ...

  3. MySQL sum()函数

    转载自   MySQL sum()函数 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下: SUM(DISTINCT expression) SUM ...

  4. oracle增量 mysql_是否有任何mysql / Oracle函数给予增量号。基于另一列相似值的一列?...

    我有兴趣知道是否有任何MySQL / Oracle函数给增量号.在另一列相似的值的基础上的一列? 就像在我的下面的代码中,我有order_primary列,其中包含订单号.所以基于此我们可以确定有多少 ...

  5. ipad php mysql_PHP中的MYSQL常用函数

    PHP中的MYSQL常用函数 1.mysql_connect()-建立数据库连接 格式: resource mysql_connect([string hostname [:port] [:/path ...

  6. mysql 本周函数_【转】MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据...

    MySQL时间函数的使用:查询本周.上周.本月.上个月份的数据[转] /*今天*/ select * from 表名 where to_days(时间字段) = to_days(now()); /*昨 ...

  7. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧

    本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...

  8. MySQL 数据类型的属性 约束 三大范式

    MySQL 数据类型的属性 约束 三大范式 数据表 是数据库的基本组成元素,以记录行和字段列组成的二维结构用于存储数据. 表头 字段名1 字段名2 数据单元 数据1 数据2 列如: 学号 姓名 专业 ...

  9. MySQL STR_TO_DATE函数

    转: MySQL STR_TO_DATE函数 2017年12月05日 15:41:58 木林森淼 阅读数:23822 版权声明:水平有限,如有补充或更正,望大家评论指正 https://blog.cs ...

最新文章

  1. LeetCode(Java) 两数相加
  2. RocketMQ Consumer 负载均衡算法源码学习 -- AllocateMessageQueueConsistentHash
  3. ABAP程序权限对象设定
  4. 使用shell进行mvn打包,根据mvn是否打包成功来进行下一步操作
  5. Job for smbd.service failed because the control process exited with error code. See “systemctl statu
  6. python做excel自动化-Python控制Excel实现自动化办公
  7. Java ArrayList 数组之间相互转换
  8. 《SQL Server2008》第二章 创建和管理数据库
  9. html5 web报表工具,Web报表工具的填报功能
  10. 改步数最新方法与工具,很好用
  11. 【数据结构导论】考试笔记总结(一)
  12. 【数字图像处理】双三次插值及其卷积算法(Bicubic Interpolation)
  13. 【军事学视频课程】《战争论》的基…
  14. php开发-如何调用后端服务
  15. cfdpost导出图片_CFD-POST出数据方法.pdf
  16. CDN在前端开发中的作用
  17. Mongodb使用学习笔记(二)
  18. Xcode工程文件pbxproj
  19. 全球与中国无人机数据处理软件市场深度研究分析报告
  20. Verilog HDL3层电梯设计

热门文章

  1. 2022.1.20-笔记-JSON格式转换(JSON类型str->int\double\string)
  2. 如何在微信小程序中使用icon字体图表
  3. Shell编程之sed工具
  4. MATLAB语言入门的第一步
  5. matlab编程实现自适应均值滤波和自适应中值滤波
  6. 什么是商品流通的环节?如何减少流通成本?
  7. python之禅中英版
  8. Zigbee协议栈 OSAL机制
  9. java upnp 端口映射_路由器 UPnP设置与端口映射操作步骤合集 几种常用猫设置
  10. rapidxml操作XML