SQL基础——函数与约束

news2025/1/20 5:52:52

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

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-21

select 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');
# 输出hhh

select ifnull('','ggg');
# 输出

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

select 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 '员工表';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用工业操作系统鸿道Intewell可以玩黑神话悟空吗?

黑神话悟空的爆火&#xff0c;让我想到&#xff0c;工业操作系统鸿道Intewell是否可以玩黑神话悟空&#xff1f; 鸿道Intewell操作系统是面向工业控制领域的操作系统&#xff0c;它支持实时和非实时应用在同一个硬件平台上运行&#xff0c;并且能够保留Windows开发环境的同时部…

平衡二叉树(AVLTree)

1.平衡二叉树的定义 1.1 什么是平衡二叉树 平衡二叉树&#xff0c;又称AVL树&#xff0c;用于解决二叉排序树高度不确定的情况&#xff0c;如果二叉排序树的子树间的高度相差太大&#xff0c;就会让二叉排序树操作的时间复杂度升级为O(n)&#xff0c;为了避免这一情况&#x…

mac 安装Arthas

mac安装有两种方式 1.第一步安装Arthas 第一种&#xff1a; curl -L https://arthas.aliyun.com/install.sh | sh 第二种jar包形式 curl -O https://arthas.aliyun.com/arthas-boot.jar个人比较推荐第一种因为运行测试成功了 第一种安装后可能会出现一些命令不符合 需…

NVIDIA刚刚发布了关于 AI 的免费在线课程!

英伟达最近上线了一批不错的免费课程&#xff0c;先收藏起来&#xff01; ps:有时候真想有一个收藏即学会的技能啊 数据中心中的人工智能 了解数据中心的 AI 基础知识&#xff0c;涵盖机器学习、深度学习、GPU 架构和部署。 了解多系统 AI 集群和基础设施规划。 课程地址&…

勇闯机器学习(第三关-特征工程)

以下内容皆为原创&#xff0c;制作不易&#xff0c;请帅锅、镁铝点点赞赞和关注吧❥(^_^) 一.提问环节 机器学习是什么&#xff1f; 机器学习就是通过自动分析大量数据去建立模型&#xff0c;训练模型&#xff0c;预测数据。 这么好记的概念&#xff0c;你应该记住了吧&#x…

多线程编程的拙见

一. 线程和进程的概念 1.为什么引入多线程编程&#xff1f; 在多线程&#xff08;Multithreaded&#xff0c;MT&#xff09;编程出现之前&#xff0c;电脑程序的运行由一个执行序列组成&#xff0c;执行序列按顺序在主机的中央处理器CPU中运行。即使整个程序由多个相互独立无…

基于Yolov5的安全帽检测系统设计与开发(论文+源码)_kaic

摘 要 安全帽检测系统的设计意义在于提高工作场所的安全性和生产效率&#xff0c;通过安全帽检测系统可以实时监控工人是否佩戴安全帽&#xff0c;及时发现不佩戴安全帽的工人并进行提醒和警示&#xff0c;避免因为不佩戴安全帽导致意外事故的发生。因此&#xff0c;本文是一个…

云呼叫中心系统哪家好?这个系统强烈推荐

云呼叫中心系统作为企业客户服务与运营的核心平台&#xff0c;正逐步成为提升企业竞争力的关键要素。面对市场上琳琅满目的云呼叫中心系统提供商&#xff0c;企业往往面临选择难题&#xff1a;“云呼叫中心系统哪家好&#xff1f;” 云呼叫中心系统&#xff1a;定义与核心功能 …

【HuggingFace Transformers】BertModel源码解析

BertModel源码解析 1. BertModel 介绍2. BertModel 源码逐行注释 1. BertModel 介绍 BertModel 是 transformers 库中的核心模型之一&#xff0c;它实现了 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;模型的架构。BERT 是基于 Trans…

百数教学——企业互联,让业务合作跨越距离与障碍

一、简介 企业互联作为强大的纽带&#xff0c;不仅促进了企业间的紧密合作与深入交流&#xff0c;还显著提升了企业的运营效率和市场竞争力。它通过无缝链接外部组织&#xff0c;实现双方企业项目数据的即时共享与整合&#xff0c;从而深化了业务合作的层次与广度&#xff0c;…

如何在SOLIDWORKS中自定义材料库

使用SolidWorks对模型进行评估时都需要现定义一个材料&#xff1b;例如&#xff1a;测量模型的质量属性、使用限元分析模型等&#xff0c;SolidWorks自带了丰富的材质库&#xff0c;满足了绝大部分的设计需求。但是难免会遇到一些特点的材质属性&#xff0c;在SOLIDWORKS中无法…

【LLM大模型论文日更】| 格式胜过内容:揭示大型语言模型的提示效应

论文&#xff1a;https://arxiv.org/pdf/2408.08780代码&#xff1a;未开源机构&#xff1a;北京大学领域&#xff1a;提示学习&#xff0c;上下文学习发表&#xff1a;arXiv 研究背景 研究问题&#xff1a;这篇文章探讨了在上下文学习&#xff08;ICL&#xff09;中&#xf…

ubuntu20.4 安装postgresql并远程连接

1、安装对应的库 如果提示安装失败,E: Unable to locate package postgresql这个错误的话,那就更新下,执行sudo apt update 命令,再次下载,应该就可以成功 sudo apt install postgresql 2、端口设置 检查5432端口是否监听 ss -nlt 需要将多个远程客户端连接上数据库,配…

合宙LuatOS产品规格书——Air700ECQ

Air700ECQ是合宙通信推出的LTECat.1bis通信模块&#xff1b; Air700ECQ采用移芯EC716E平台&#xff0c;支持LTE3GPPRel.13技术&#xff1b; Air700ECQ支持移动双模&#xff0c;超小封装&#xff0c;极致成本&#xff0c;满足小型化低成本需求。 Air700ECQ支持单1.8/3.0V USIM…

酒店民宿在线预约系统,搭建全攻略

在旅游业的推动下&#xff0c;酒店民宿获得了更多的发展机遇。随着数字化的来临&#xff0c;酒店民宿也迎来了转型升级&#xff0c;线上预约酒店民宿小程序成为了必不可少的发展方式。小程序可以为酒店民宿提供一个高效便利的在线预约系统&#xff0c;满足用户预约酒店的需求&a…

20. 数据可视化

20. 数据可视化 本章概述一. `elasticsearch`实现数据统计1.1 创建用户信息索引1.1.1 控制台创建`aggs_user`索引1.1.2 `aggs_user`索引结构初始化1.1.3 `aggs_user`索引的`EO`对象1.1.4 用户类型枚举1.1.5 数据初始化1.2 内置统计聚合1.2.1 `terms`与`date_histogram``terms``…

传统RFID标签与RFID光触发标签的全面差异解读

在当今数字化、智能化的大趋势下&#xff0c;RFID技术凭借其非接触式自动识别的独特优势&#xff0c;在物流、零售、制造等众多领域得到了广泛应用。其中&#xff0c;RFID标签作为承载数据和实现识别的关键组件&#xff0c;不断推陈出新&#xff0c;传统RFID标签虽已历经多年发…

BER编码的Identifier octets

在了解DLMS/COSEM应用层协议的时候有必要了解一下ASN.1、BER、A-XDR。 这里只对部分做记录。 参考资料&#xff1a;ASN.1、BER和DER的PKCS相关子集入门介绍_golang asn1-CSDN博客 1、介绍 抽象语法表示法一&#xff08;ASN.1&#xff09;、基本编码规则&#xff08;BER&…

工厂现场多功能帮手,三防平板改善管理体验

随着制造业的智能化变革&#xff0c;信息化、自动化和智能化逐渐成为工厂管理的新常态。在这一波技术浪潮中&#xff0c;三防平板作为一种多功能的工作工具&#xff0c;正在逐步改善工厂现场的管理体验。 一、三防平板的定义与特点 三防平板&#xff0c;顾名思义&#xff0c;是…

一篇文章讲清楚Zotero所有实用插件

主要介绍常用的zotero基础高使用&高实用插件及功能展示。 zotero7更新链接&#xff1a;链接 目录 插件表一览插件列表插件效果展示actions and Tags for Zotero插件说明插件设置Awesome GPTBetter Notes for zoteroCrush ReferenceEasier CitationEthereal Stylejasminum…