MySQL函数总结-2020-05-24

MySQL总结

增删改查(Create Delete Update Select

一、增

1.数据库和表基本操作

创建数据库:CREATE DATABASE IF NOT EXISTS stduy [DEFAULT CHARSET utf8];

切换数据库:use study;

查看数据库里有哪些表:show tables;

创建一个新表:

Create table students (

Id int(10) primary key auto_increament,

Name varchar(100) not null,

Age int(4) );

查看表结构:desc students;

2.表内插入

插入多条语句:

Insert into students(id,name,age) values(1, ’张三丰’, 8),

(2, ‘郭襄’, 16)

(3, ‘杨过’, 38);

二、删

删除数据库:drop database study;

删除表:drop table students;

删除某一行:delete from students where condition;

三、改

Update students set name = ‘周伯通’ , age = 99 where id = 1;

四、查

查询语句平时使用较多,也比较熟悉,不再详细Review了,MySQL中常用查询语句如下:

SELECT name,age

FROM students

WHERE id = 1

GROUP BY name

HAVING name = ‘杨过’

ORDER BY age

LIMIT 1 OFFSET 0

五、基本函数

MySQL里函数不多,但平时练习使用频率较少,所以对于这里面能使用哪些函数,以及如何使用就不那么熟悉了,所以将目前学过的函数作一些总结。

1.字符串函数

Concat(str1,str2…) :连接字符串;

    Concat(‘郭襄’, ‘16岁那年’, ‘爱上了’, ‘杨过’)

Substr(str,pos,len):根据位置和长度提取字符串;

    Substr(‘123456789’,2,5)

Instr(str,substr): 在一个字符串(str)中搜索指定字符(substr),返回子串第一次出现的索引,如果没有则返回0

    Instr(‘abcdefg’, ‘b’)

Trim([remstr from] str) :去除首尾所选字符,默认去除首尾空字符

    Trim(“a” from “aaaaa张翠山aaaaaa”)

Lapd/rpad(str,len,padstr):用指定字符实现左/右填充至指定长度

    lpad(“123456”,12,”ab”)

    lpad(‘123456’, 3,’ab’) 长度小于字符串长度时,从左裁剪至等长

Replace(str, from_str, to_str) :替换

    Replace(“张无忌爱上周芷若”, ”周芷若”, ”赵敏”)

Insert(str, pos, len, new_str):根据在字符串中的位置和长度进行替换

    Insert(‘abcd’, 1, 2, ‘xp’)

Upper/lower(str):把str中所有字符变成大写/小写

    Upper(‘abcd’)

Left/right(str,len):将str从左/右裁剪至指定长度

    Left(‘abcd’, 3)

2.数学函数

Round(1.45):四舍五入

Round(1.567,2):保留几位小数

Ceil(1.25):向上取整

Floor(-2.4):向下取整

Truncate(1.6999,1):截断(截断小数点后)

Mod(-10,3)=-10%3:取余---mod(a,b)=a-(a/b)*b

Abs(-3.54):返回绝对值

Rand():返回0-1之间的随机数

3.日期函数

Now():返回当前系统日期+时间

Curdate():返回当前系统日期

Curtime():返回当前系统时间

Year(now()):返回日期的年

Month(),day(),hour(),minute(),second()

Str_to_date(“3-2 1992”, “%c-%d %Y”) 将字符通过指定格式转换成日期

Date_format(now(),”%y年%m月%d日”):将日期转换成字符

Datediff('2020-5-20','2020-5-25'):返回两个日期之间的天数(前者减后者)

4.流程控制函数

If(10>5,”大”,”小”):ture返回”大”,false返回”小”

ifnull(exp1,exp2) :如果expr1不为空,则返回expr1的值,如果expr1为空则返回expr2的值

Case使用一(等于):

Select salary as 原始工资,department_id,

Case department_id

When 30 then salary*1.1

When 40 then salary*1.2

When 50 then salary*1.3

Else salary

End as 新工资

Case使用二(范围):

Select salary,

Case

When salary>20000 then “A”

When salary>15000 then “B”

When salary>10000 then “C”

ELSE “D”

END AS 工资级别

Datediff(2020-4-6,2019-12-31):日期差用天表示

5.其它函数

Version():查看MySQL版本号

Database():返回默认或当前数据库的名称

User():显示当前登陆的用户名与它对应的host

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。