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

SQL基础——函数与约束

声明:以下内容为根据黑马数据库视频教程,个人整理的笔记,方便记录学习。

SQL基础之函数与约束

  • 知识导图
  • 案例SQL语句编写
    • 一、函数
      • 1.字符串函数
      • 2.数值函数
      • 3.日期函数
      • 4.流程函数
    • 二、约束

知识导图

在这里插入图片描述

案例SQL语句编写

一、函数

1.字符串函数

A. concat : 字符串拼接

SELECT CONCAT('hello',' world!');
# 输出:hello world!

B. lower : 全部转小写

select LOWER('Hello');
# 输出:hello

C. upper : 全部转大写

select UPPER('Hello');
# 输出:HELLO

D. lpad : 左填充

select LPAD('你好',5,'000');
# 输出:000你好

E. rpad : 右填充

select RPAD('你好',5,'000');
# 输出:你好000

F. trim : 去除空格

select TRIM(' hello world! ');
# 输出:hello world!

G. substring : 截取子字符串

select SUBSTRING('hello world!',3,2);
# 输出:ll

2.数值函数

A. ceil:向上取整

select ceil(1.1);
#输出2

B. floor:向下取整

select floor(1.9);
#输出1

C. mod:取模

select mod(7,4);
#输出3

D. rand:获取随机数

select rand();
# 输出0.5759448675214731
#获取随机数0~1以内

E. round:四舍五入

select round(2.1234,2);
#输出2.12(给2.1234保留两位小数,并四舍五入)

综合案例
通过数据库的函数,生成一个六位数的随机验证码

select lpad(ceil(rand()*1000000),6,'0')

说明:加上lpad()是为了防止rand()函数生成的随机数是0.03…这种,再乘以1000000,结果就会变为五位。

3.日期函数

A. curdate:当前日期

select curdate();
# 输出2024-07-11

B. curtime:当前时间

select curtime();
# 输出14:40:09

C. now:当前日期和时间

select now();
# 输出2024-07-11 14:40:50

D. YEAR , MONTH , DAY:当前年、月、日

select year(now());# 输出2024
select month(now());# 输出7
select day(now());# 输出11

E. date_add:增加指定的时间间隔

select date_add('2024-07-11',interval 10 day);
# 输出 2024-07-21select day(date_add(now(),interval 10 day));
# 今天是2024年7月11日,则这条语句输出21

F. datediff:获取两个日期相差的天数 (注意:前-后)

select datediff('2024-07-11','2024-07-05');
# 输出 6

综合案例
查询所有员工的入职天数,并根据入职天数倒序排序

select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by entrydays desc;

4.流程函数

A. if

select if(true,1,0);
# 输出1

B. ifnull

select ifnull('hhh','ggg');
# 输出hhhselect ifnull('','ggg');
# 输出select ifnull(false,'ggg');
# 输出0select ifnull(null,'ggg');
# 输出ggg

C. case when then else end
查询emp表的员工姓名和年龄阶段

select employeename as '姓名', (case when age<18 then '未成年'when age<=30 then '青年'else '中年'end) as '年龄阶段'
from emp;

原表:
在这里插入图片描述
运行SQL语句后的结果:
在这里插入图片描述

二、约束

在这里插入图片描述
根据需求,完成表结构的创建:

create table user(id int auto_increment primary key comment '唯一标识',name varchar(10) not null unique comment '姓名',age int comment '年龄',status char(1) default '1' comment '状态',gender char(1) comment '性别'
) comment '员工表';

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL:从入门到放弃
  • redis的数据结构——压缩表(Ziplist)
  • NVIDIA刚刚发布了关于 AI 的免费在线课程!
  • CVPR2023《DNF: Decouple and Feedback Network for Seeing in the Dark》暗光图像增强论文阅读笔记
  • Linux命令学习 -- tar指令
  • 232. 用栈实现队列
  • WKWebView加载项目中网页的资源图片路径异常
  • Django | 从中间件的角度来认识Django发送邮件功能
  • 基于windows10的WSL详细安装与使用教程
  • nginx部署vue前端打包项目
  • 上位机图像处理和嵌入式模块部署(linux Qt程序的编译)
  • 艺术与科技的结合:推荐7款好用的AI绘图工具
  • Matplotlib 简介:Python 数据可视化的强大工具
  • 第八季完美童模全球偶像明星【Forrest lin】荣耀加冕 见证星芒风采!
  • 帆软报表,达梦数据库驱动上传失败
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • exif信息对照
  • js中forEach回调同异步问题
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 利用DataURL技术在网页上显示图片
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 说说动画卡顿的解决方案
  • 小程序开发之路(一)
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 自动记录MySQL慢查询快照脚本
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 阿里云API、SDK和CLI应用实践方案
  • 仓管云——企业云erp功能有哪些?
  • 通过调用文摘列表API获取文摘
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (42)STM32——LCD显示屏实验笔记
  • (libusb) usb口自动刷新
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (七)c52学习之旅-中断
  • (四)Controller接口控制器详解(三)
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)用.Net的File控件上传文件的解决方案
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • 。。。。。
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @EnableAsync和@Async开始异步任务支持
  • @Repository 注解
  • [ SNOI 2013 ] Quare
  • [ 物联网 ]拟合模型解决传感器数据获取中数据与实际值的误差的补偿方法
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [Assignment] C++1