MYSQL 最近知识总结(4)

2021/4/11 2:28:12

本文主要是介绍MYSQL 最近知识总结(4),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

-- ----------------------------
-- 建表
-- ----------------------------
DROP TABLE IF EXISTS `b`;
CREATE TABLE `b` (
  `id` int(11) NOT NULL,
  `job` varchar(255) DEFAULT NULL,
  `parent_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- 插入数据
-- ----------------------------
INSERT INTO `b` VALUES ('1', '程序员', '1');
INSERT INTO `b` VALUES ('2', '销售', '2');
INSERT INTO `b` VALUES ('3', '空姐', '4');
-- Mysql 判断空值ISNULL(字段名/表达式)
select * from b where ISNULL(job) and ISNULL(parent_id)
-- Mysql 类似oracle的nvl 替换空值得函数  把job字段是空的值替换成“没工作”
select  IFNULL(job,'没工作' ) from b
-- Mysql if 使用方法  可以代替oracle的nvl2  把job字段是空的替换成没工作 不是空的替换成有工作
select IF(ISNULL(job),'没工作','有工作') from b;
-- Mysql when case 使用方法


SELECT
	CASE job
WHEN '程序员' THEN
	'希望身体健康'
WHEN '销售' THEN
	'希望多多卖钱'
WHEN '空姐' THEN
	'希望越来越漂亮'
ELSE '木有工作 继续努力!'
END
FROM
	b;
-- Mysql 字符串连接concat()  代替oracle的|| 
select concat("我的工作是:",job) job  from b;
-- Mysql 查看mysql编码 
show variables like 'character%';
-- character_set_client 客户端使用的编码,如GBK, UTF8 比如你写的sql语句是什么编码的。
-- character_set_results 查询返回的结果集的编码(从数据库读取的数据是什么编码的)。
-- character_set_connection 连接使用的编码
-- 它们之前存在一个转换过程  character_set_client -> character_set_connection >内部操作字符集->character_set_results
-- 看过一篇博客说:collation_connection对比较文字字符串是重要的。对于列值的字符串比较,它不重要,
-- 因为列具有更高的 校对规则优先级。也就是会先使用表的编码 再使用 collation_connection 
-- 比如 没有表的情况下:比如直接select length('中国人'),如果character_set_connection是utf8的则输出9,如果是gbk则输出6。
-- Mysql 修改编码  例如 
SET character_set_client = 'utf8';




这篇关于MYSQL 最近知识总结(4)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程