首页 > 数据库 >MySQL---函数与约束

MySQL---函数与约束

时间:2024-05-26 19:32:49浏览次数:28  
标签:comment 函数 -- --- int MySQL id select name

目录

一、函数

1. 字符串函数 

2. 数值函数

3. 日期函数

4. 流程函数

5. 总结 

二、约束 

1. 概述

2. 约束演示

3. 外键约束

3.1 添加外键

3.2 删除外键 

3.3 外键删除更新行为

4. 总结 

一、函数

1. 字符串函数 

命令如下所示:

-- concat
select concat("Hello" , " MySQL");//Hello MySQL

-- lower
select lower("Hello");//hello

-- upper
select upper("Hello");//HELLO

-- lpad
select lpad('01",5,"-");//---01

-- rpad
select rpad('01",5,"-");//01---

-- trim
select trim(" Hello  MySQL ");//Hello  MySQL

-- substring
select substring("Hello MySQL",1,5);//Hello;首位索引为1

案例练习: 

命令如下所示: 

-- 1.由于业务需求变更,企业员工的工号,统一5位数,目前不足5位数的全部在前面补0。比如:1号员工的工号应该为00001,
update emp set workno = lpad(workno,5,"0");

输出如下所示:

2. 数值函数

命令如下所示:  

-- ceil
select ceil(1.1);//2

-- floor
select floor(1.9);//1

-- mod
seLect mod(3,4);//3%4=3

-- rond
select rand();

-- round
select round(2.345,2);//2.35

案例练习:  

命令如下所示: 

--若rand生成的数为0.0135566则需要右边补零
select lpad(round(rand()*1000000 , 0),6,"0');

3. 日期函数

命令如下所示:  

-- curdate()
select curdate();

-- curtime()
select curtime();

-- now ()
select now();

-- YEAR MONTH DAY
select YEAR(now());

select MONTH(now());

seleet DAY(now());

-- date_add
select date_add(now(),INTERVAL 70 DAY);
select date_add(now(),INTERVAL 70 MONTH);
select date_add(now(),INTERVAL 70 YEAR);

-- datediff
select datediff("2021-12-01", "2021-10-01");//60;前减后

 案例练习:  

 命令如下所示: 

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

 输出如下所示:

4. 流程函数

命令如下所示:  

-- if
select if(true,'Ok','Error');//OK

-- ifnull
select ifnull('Ok','Default');//OK

select ifnull(' ','Default');//空

select ifnull(null, 'Default');//Default

-- case when then else end
--需求:查bemp表的员工姓名和工作地址〔北京/上海---->一线城市,其他---->二线城市)
select
    name,
    ( case workaddress when'北京' then '一线城市' when ' 上海' then '一线城市' else '二线城市' end ) as '工作地址 
from emp;

 案例练习:   

生成表:

如下所示: 

命令如下所示:  

select
    id,
    name,
    (case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end)'数学",
    (case when english >= 85 then '优秀' when english >=60 then‘及格' else '不及格' end)'英语',
    (case when chinese >= 85 then '优秀' when chinese >=60 then‘及格'else '不及格' end)'语文
from score;

  输出如下所示:

5. 总结 

二、约束 

1. 概述

2. 约束演示

 案例练习:   

命令如下所示:  

create table user(
    id int primary key auto_increment comment "主键",
    name varchar(10) not null unique conment"姓名",
    age int check ( age > 0 && age c= 120 ) comment"年龄",
    status char(1]default "1"comment"状态",
    gender char(1) comment"性别"
)comment '用户表';    

--插入数据
insert into user(name ,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,0','男');
insert into user(name,age,status,gender) values ('Tom3',19,'1','男');

insert into user(name,age,status,gender) values (null,19,'1','男');
insert into user(name,age,status,gender) values ('Tom5',19,'1','男');

insert into user(name,age,status,gender) values ('Tom4',80,"1','男');
insert into user(name,age,status,gender) values ('Tom5',-1,'1','男');
insert into user(name,age,status,gender) values ('Tom5',121,'1','男');

insert into user(name,age,gender) values ('Tom5',120,'男');

输出如下所示: 

 

图形化界面创建如下所示:

补充: 

3. 外键约束

 命令如下所示:  

--准备数据
create table dept(
    id int auto_increment comment 'ID' primary key,
    name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');
    
create table emp(
    id int auto_increment conment 'ID' primary key,
    name varchar(50) not null comment '姓名',
    age int comment '年龄',
    job varchar(20) comment '职位',
    salary int comment '薪资',
    entrydate date comment '入职时间',
    managerid int comment '直属领导ID',
    ept_id int comment '部门ID'
)comment '员工表';

INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES
    (1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),
    (2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),
    (3,‘杨道',33,'开发',8400, '2000-11-03',2,1),
    (4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),
    (5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),
    (6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);

上述两表并未建立关联 

3.1 添加外键

 命令如下所示:   

--准备数据
create table dept(
    id int auto_increment comment 'ID' primary key,
    name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');
    
create table emp(
    id int auto_increment conment 'ID' primary key,
    name varchar(50) not null comment '姓名',
    age int comment '年龄',
    job varchar(20) comment '职位',
    salary int comment '薪资',
    entrydate date comment '入职时间',
    managerid int comment '直属领导ID',
    ept_id int comment '部门ID'
)comment '员工表';

INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES
    (1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),
    (2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),
    (3,‘杨道',33,'开发',8400, '2000-11-03',2,1),
    (4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),
    (5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),
    (6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);

--添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

输出如下所示: 

3.2 删除外键 

 命令如下所示:   

--准备数据
create table dept(
    id int auto_increment comment 'ID' primary key,
    name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');
    
create table emp(
    id int auto_increment conment 'ID' primary key,
    name varchar(50) not null comment '姓名',
    age int comment '年龄',
    job varchar(20) comment '职位',
    salary int comment '薪资',
    entrydate date comment '入职时间',
    managerid int comment '直属领导ID',
    ept_id int comment '部门ID'
)comment '员工表';

INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES
    (1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),
    (2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),
    (3,'杨逍',33,'开发',8400, '2000-11-03',2,1),
    (4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),
    (5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),
    (6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);

--添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

--删除外键
hlter table emp drop foreign key fk_emp_dept_id;

 输出如下所示: 

3.3 外键删除更新行为

 命令如下所示:    

--准备数据
create table dept(
    id int auto_increment comment 'ID' primary key,
    name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');
    
create table emp(
    id int auto_increment conment 'ID' primary key,
    name varchar(50) not null comment '姓名',
    age int comment '年龄',
    job varchar(20) comment '职位',
    salary int comment '薪资',
    entrydate date comment '入职时间',
    managerid int comment '直属领导ID',
    ept_id int comment '部门ID'
)comment '员工表';

INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES
    (1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),
    (2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),
    (3,'杨逍',33,'开发',8400, '2000-11-03',2,1),
    (4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),
    (5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),
    (6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);

--添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

--删除外键
hlter table emp drop foreign key fk_emp_dept_id;

--外键的删除和更新行为
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade;

 输出如下所示:  

图形化界面设置如下所示:

4. 总结 

标签:comment,函数,--,---,int,MySQL,id,select,name
From: https://blog.csdn.net/qq_51647149/article/details/139128799

相关文章

  • Springboot计算机毕业设计学生报到小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着教育信息化的不断推进,学生报到流程也逐渐向数字化、智能化方向转变。传统的报到方式通常涉及大量的纸质材料和现场排队等待,不仅效率低下,而且容易......
  • 7-158 数的计算
    我们要求找出具有下列性质数的个数(包含输入的正整数n)。先输入一个正整数n,然后对此正整数按照如下方法进行处理:1.本身不作任何处理;2.在它的左边加上一个正整数,但该正整数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加正整数为止。例如输入n=6,满......
  • 【MySQL数据库】认识数据库+环境搭建--------Windows系统
    一、认识数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。二、MySQL数据库MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大......
  • 生活-食品-水果-香蕉如何保存:香蕉能不能放冰箱?表皮变黑了还能不能吃?
    香蕉能不能放冰箱?表皮变黑了还能不能吃?云无心@美国普度大学农业与生物系食品工程专业博士香蕉如何保存?实用的香蕉保存指南最方便的方法:每次少买,及时吃完。需要延缓成熟,挂到通风的地方并远离其他水果。需要加快成熟,和芒果、苹果、梨等水果密封放在一起。如果已经成熟(即香......
  • 实验二 电子公文传输系统安全 - 进展2
    实验二电子公文传输系统安全-进展2任务详情上周任务完成情况(代码链接,所写文档等)SM3加盐packagecn.edu.nuc.article.util;importorg.bouncycastle.crypto.digests.SM3Digest;importorg.bouncycastle.jce.provider.BouncyCastleProvider;importorg.bouncycastle.util......
  • 2024 ccpc - gdcpc 游寄
    2024年5月26日我在银河系·太阳系·地球·亚洲·中国·广东省·广州市·南沙区参加了有史以来第二场CCPC这次是中文题目谢天谢地,不像上次是个蛇皮英文。这次比赛和一个6年级巨学和5年级巨学组队。共同拼搏得到了0分+20多次罚时的好成绩。比赛中签到题想的几个做法都假了(都磕了......
  • Llama模型家族之使用 Supervised Fine-Tuning(SFT)微调预训练Llama 3 语言模型(五)基于已
    LlaMA3系列博客基于LlaMA3+LangGraph在windows本地部署大模型(一)基于LlaMA3+LangGraph在windows本地部署大模型(二)基于LlaMA3+LangGraph在windows本地部署大模型(三)基于LlaMA3+LangGraph在windows本地部署大模型(四)基于LlaMA3+LangGraph在w......
  • Springboot计算机毕业设计行程日记卡小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在数字化和移动互联网时代,人们对于旅行方式的需求正发生深刻变化。行程规划、景点打卡、美食推荐等旅行需求日益个性化、多元化。然而,传统的旅行规划......
  • MySQL——2、并发事务所带来的问题是什么?怎样去解决?MySQL的默认隔离级别是什么
    一、并发事务所带来的问题1、脏读:就是一个事务对数据进行查询操作时而另一个事物在修改这条数据但未提交,这时进行查询操作的事务就会读取到未提交的数据也就是脏数据2、不可重复读:事务A查询一次数据接着事务B修改了数据并且已提交事务A继续执行操作查询数据读到了不一样的数......
  • 【机器学习-23】关联规则(Apriori)算法:介绍、应用与实现
    在现代数据分析中,经常需要从大规模数据集中挖掘有用的信息。关联规则挖掘是一种强大的技术,可以揭示数据中的隐藏关系和规律。本文将介绍如何使用Python进行关联规则挖掘,以帮助您发现数据中的有趣模式。一、引言1.简要介绍关联规则学习的概念和重要性关联规则学习是一种......