文章目录

  • 简介
  • 练习
  • 查询出生日97年前的班长信息
  • 查询出刘姓同学的三门成绩总和
  • 字符串
  • 枚举 只能插入一个指定的值
  • set 能插入多个值,不能重复
  • json类型 (不推荐使用)
  • 可以是以下6种数据类型任意组合
  • Create table t1(tempcol json)
  • json_type('{"name":"zs","age":20,"time":"2021-05-12"}')
  • 运算符
  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 字符串函数
  • 连接函数
  • 数值函数
  • 日期时间函数
  • 流程函数
  • json函数
  • md5(str):将字符串进行md5加密


简介

  • 本文是2021/05/12整理的笔记
  • 赘述可能有点多,还请各位朋友耐心阅读
  • 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进

练习

查询出生日97年前的班长信息

select * from student2 where post = ‘班长’ and year(birthday) <1997;

查询出刘姓同学的三门成绩总和

select id,name,Englishmark+Chinesemark+mathsmark 成绩总和 from student2 where name like’刘%’;

字符串

varchar和char的区别
varchar 可变 不删除尾部的空格
char 不可变 删除尾部的空格

枚举 只能插入一个指定的值

列名 enum(‘M’,‘F’)
insert into t1 values(‘M’),(‘F’),(‘1’),(null)

set 能插入多个值,不能重复

  1. 列名 set(’ 值1’,‘值2’,‘值3’)
  2. insert into t values(‘值1’),(‘值1,值2’),(‘值1,值2,值3’)

json类型 (不推荐使用)

可以是以下6种数据类型任意组合

  1. Boolean:true/false
  2. String:需要使用双引号包起来
  3. Date:需要使用双引号包起来
  4. Null
  5. Array:json数组[]
  6. Object:json对象{}

Create table t1(tempcol json)

insert into t1 values('{"name":"zs","age":20,"time":"2021-05-12"}');

json_type(’{“name”:“zs”,“age”:20,“time”:“2021-05-12”}’)

运算符

算术运算符

+ - * / %

比较运算符

= != <> <=> > >= < <=

逻辑运算符

and not or xor(异或)

位运算符

位与 & 位或 | 位异或^ 位取反~ 位右移>> 位左移<< 乘以2的次方

字符串函数

连接函数

concat(str1,str2,str3,...) 将多个字符串连接在一起
substring(str1,start,length) 截取子串
trim(str) 去掉字符串首尾的空格

数值函数

round(x,y) 四舍五入

日期时间函数

now():当前日期+时间
curdate():当前日期
curtime():当前时间
date_format(date,format):按照指定格式格式化时间

流程函数

select if(1=0,1,0);
select ifnull(1,2);
select ifnull(null,2);
select case when 1=1 then 1 else 2 end;
select case 1 when 1=1 then 1 else 2 end from emp;
select case sal when 800 then 1 else 2 end from emp;

json函数

json_array 创建json数组
json_object 创建json对象:参数中的key不能为null,参数个数必须是偶数
json_quote 加上/去掉json文档两边的双引号

md5(str):将字符串进行md5加密