初学MYSQL(第三天)

一、函数

  1. 字符串函数
    在这里插入图片描述
select concat('hello','mysql')
-- lower
select lower('HEELO')
-- upper
select upper('hello')
-- lpad
select lpad('11',5,'-')
-- rpad
select rpad('11',5,'-')
-- trim
select trim('  hello    world    ')
-- substring
select substring('hello',1,3)
-- 由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如:1号员工的工号应该为00001
update employee set workno = lpad(workno,5,'0')
  1. 数值函数
-- ceil
select ceil(1.1) -- 结果为2
-- floor
select floor(1.8) -- 结果为1
-- mod
select mod(3,4) -- 结果为3
-- rand
select rand() -- 结果为0-1的随机数
-- round
select round(3.456,2) -- 结果为3.46
--案例:要求随机生成一个六位数验证码
select round(rand()*1000000,0) -- 这行代码概率生成6位数代码,因为rand生成的是0-1之间的随机小数,那就有可能生成0.01或者0.001开头的小数
select lpad(round(rand()*1000000,0),6,'0') --这样就可以生成一个6位数的随机验证码了
  1. 日期函数
    在这里插入图片描述
-- date_add()
select date_add(now(),INTERVAL 70 day )-- 返回起始日时间加上70天后的时间
select date_add(now(),INTERVAL 7 month)-- 返回起始日时间加上7个月后的时间
-- datediff(date1,date2)
select datediff('2021-12-01','2021-10-01')-- 返回2021-12-01和2021-10-01之间的天数
--  查询所有员工的入职天数,并根据入职天数倒序排序
select name ,datediff(curdate(),entrydate) '入职时间' from employee order by 入职时间 desc
  1. 流程函数
    在这里插入图片描述
-- case when[] then[] else[] end
select name ,(case  when age>60 then '及格' else  '不合格' end) '年龄'
from employee
-- case []when [] then []  else [] end
-- 需求:查询emp表的员工姓名和工作地址(北京/上海---->一线城市 ,其他------> 二线城市)
select
    name,
   ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市'
    else '二线城市' end) '工作地址'
from employee;

二、约束

在这里插入图片描述
下面为新建一个约束表的例子
在这里插入图片描述

create table user(
    id int primary key auto_increment comment'主键',
    name varchar(10) not null  unique  comment '姓名',-- 这里当插入的表项,姓名重复,则姓名重复插入的语句不生效,但是主键值却会增加1,
    age int check ( age>0 and age <=120 ) ,
    status char(1) default '1' comment '状态',
    gender char(1) comment '性别'
)comment '用户表';

外键约束
在这里插入图片描述

alter table emp add constraint fk_emp_dept_id foreign key (dept_id)references dept(id);

暂时先更新到这里吧

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值