mysql 函数

本文详细介绍了SQL中用于截取字符串、条件判断及转换的函数,以及如何查看数据库中的外键信息、表间关联和索引详情。通过案例展示了如何使用SQL查询和操作数据,包括年龄、姓名的转换和状态的定义,以及获取数据字典和索引信息的方法,为数据库管理和开发提供了实用参考。

字符串

left(str,位数)# 截取str左边n个字符
= # 是否相等

转换值

select 
	年龄 as 'age',
	# 修改当前列的值
	case 姓名
		where '王' then 'wang'
		where '李' then 'li'
		else 'dogn'
		end
	as 'name',
	# 新增一列
	case 
		where age<20 and age>10 then '青少年'
		where arg>30 then '中年'
		end
	as '状态',
from biao;

查看外键信息

根据该表查该表的外键信息:连同正常的索引一并展示

在这里插入图片描述

根据学生表查用了哪些表的哪些字段做外键,如:老师表的老师id,班级表的班级id

# 查看某个表的外键名称,外键字段,关联的表,关联的表的字段
SELECT constraint_name,column_name, referenced_table_name, referenced_column_name 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE  
WHERE constraint_schema = 'db_name'  AND table_name = 'biao_name';

根据该表查该表字段关联到哪些表的哪些字段

根据班级表查哪些表使用了班级的字段(如:id),如:老师表,学生表

# 查看关联表名,关联表的字段,关联表字段的外键名,该表的被关联字段(班级id)
select
TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_COLUMN_NAME
from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where CONSTRAINT_SCHEMA ='db_name' AND
REFERENCED_TABLE_NAME = 'biao_name';

获取数据库中的数据字典

select 
	t.table_name as '表名',
	t.column_name as '字段名',
	t.column_type as '字段类型',
	IF (t.COLUMN_DEFAULT = '', '空字符串', IFNULL( t.COLUMN_DEFAULT, '' ) ) AS '默认值',
  CASE t.IS_NULLABLE 
		WHEN 'YES' THEN '是' 
		ELSE '否' 
		END 
	AS '是否允许为空',
	t.COLUMN_COMMENT AS '字段备注'
FROM
    information_schema.COLUMNS t
where table_schema='db_name';

获取数据库中所有表的索引信息

此时是在同一数据库下的所有表
在这里插入图片描述

select kcu.table_name '表名',kcu.constraint_name '索引名' ,kcu.column_name '字段',
 case c.column_key
		when 'PRI' then 'primary'
		when 'UNI' then 'unique'
		when 'MUL' and left(kcu.table_name,3)='fk_' then 'foreignKey_normal'
		when 'MUL' and not left(kcu.table_name,3)='fk_' then 'normal' 
		end 
	as '索引类型' 
from INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu left join INFORMATION_SCHEMA.COLUMNS c on kcu.TABLE_NAME=c.table_name and kcu.COLUMN_NAME=c.COLUMN_NAME 
where kcu.TABLE_SCHEMA='db_name' #指定某个数据库,可以不指定
order by kcu.table_name;
### MYSQL 函数概述 在 MySQL 数据库管理系统中,函数是一类重要的工具,可以用来执行各种计算、转换和其他操作。这些函数分为内置函数和自定义函数两大类。以下是常见的 MySQL 内置函数分类及其具体用法。 --- #### **1. 字符串函数** 字符串函数主要用于处理字符型数据,支持拼接、截取、替换等功能。 - **`CONCAT(str1, str2, ...)`**: 将多个字符串连接成一个字符串。 ```sql SELECT CONCAT('Hello', ' ', 'World'); -- 返回 "Hello World" ``` - **`SUBSTRING(str, pos, len)`**: 提取子字符串,从 `pos` 开始提取长度为 `len` 的部分。 ```sql SELECT SUBSTRING('MySQL Function', 7, 8); -- 返回 "Function" ``` - **`REPLACE(str, from_str, to_str)`**: 替换字符串中的部分内容。 ```sql SELECT REPLACE('Database Management System', 'Management', 'Admin'); -- 返回 "Database Admin System" ``` - **`UPPER(str)` 和 `LOWER(str)`**: 转换字符串大小写。 ```sql SELECT UPPER('mysql'), LOWER('MYSQL'); -- 返回 "MYSQL", "mysql" ``` 以上内容来源于常见字符串函数介绍[^2]。 --- #### **2. 日期时间函数** 日期时间函数用于处理与时间和日期相关的数据。 - **`NOW()`**: 获取当前的日期和时间。 ```sql SELECT NOW(); -- 返回类似于 "2023-10-05 14:30:00" ``` - **`DATE(date_time_expr)`**: 提取日期部分。 ```sql SELECT DATE('2023-10-05 14:30:00'); -- 返回 "2023-10-05" ``` - **`DATE_FORMAT(date, format)`**: 根据指定格式化模板返回日期/时间字符串。 ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 自定义格式输出 ``` 相关内容可参见日期函数说明[^2]。 --- #### **3. 数学函数** 数学函数提供了基本的数值运算能力。 - **`ABS(num)`**: 计算绝对值。 ```sql SELECT ABS(-10); -- 返回 10 ``` - **`ROUND(num, decimals)`**: 对数字四舍五入到指定位数的小数。 ```sql SELECT ROUND(123.456, 2); -- 返回 123.46
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值