mysql函数使用+正则表达式

102 阅读2分钟

创建student表

CREATE TABLE student(  
    id INT(20) PRIMARY KEY,
    name VARCHAR(50),
    score INT(50),
    sex VARCHAR(10)
)

给student表插入一些测试数据并查询student表

INSERT INTO student VALUES(1,'张三',70,'男'),(2,'李四',80,'女'),(3,'王五',90,'女'),(4,'王六',70,'男');
select * from student;

image.png

集合函数

count(): 统计记录数条数

select count(*) from student;  --查询表记录数

image.png

select score,count(score) from student group by score;  --结合分组函数查询各分数人数

sum(): 计算字段的值的总和

select sum(score) from student;  --查询学生总成绩的和

image.png
avg(): 计算字段的值的平均值

select avg(score) from student;  --查询学生的平均成绩

image.png
max(): 查询字段的最大值

select max(score) from student;  --查询学生成绩最大值

image.png
min(): 查询字段最小值

select min(score) from student;  --查询学生成绩最小值  

image.png

正则表达式

^: 查询以特定字符或者字符串开头的记录

select * from student where name regexp '^王';  --查询姓王的学生

image.png
$: 查询以特定字符或者字符串结尾的记录

select * from student where name regexp '三$';  --查询名字三结尾的学生

image.png
.: 匹配字符串中的任意一个字符

select * from student where name regexp '^张.';  --查询姓张的同学  

image.png
[]: 匹配所包含的任意一个字符

select * from student where name regexp '["张","四"]';  --查询名字带张或四的同学

image.png
[^字符集合]: 匹配指定字符以外的字符

select * from student where sex regexp '[^"男"]';  --查询性别不为男的同学  

image.png
*: 匹配多个该符号之前的字符
+: 匹配多个该符号之前的字符
*+的区别在于*可以表示0个字符,但+至少表示一个字符

注释符

#  单行注释
-- 单行注释
/**/ 多行注释

查询函数

system_user(): 系统用户名

select system_user();

image.png
user(): 用户名

select user();

image.png
current_user(): 当前用户名

select current_user();

image.png
session_user(): 连接数据库用户名

select session_user();

image.png
database(): 数据库名

select database();

image.png
version(): 数据库版本

select version();

image.png