MySQL数据库之MySql 备忘录
小标 2018-12-06 来源 : 阅读 1254 评论 0

摘要:本文主要向大家介绍了MySQL数据库之MySql 备忘录 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之MySql 备忘录 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

一、关于空值 

提示: 

在MySQL中如果不为NOT NULL字段赋值(等同于赋NULL值) 

例如: 
为一个NOT NULL的整型赋NULL值,结果是0,它并不会出错, 
为一个NOT NULL的CHAR型赋NULL值,结果是''(空字符串) 
DATATIME 
-> '0000-00-00 00:00:00 ' 
MySQL会自动将NULL值转化为该字段的默认值, 那怕是你在表定义时没有明确地为该字段设置默认值. 

也就是说,MySQL中NOT NULL并不是一个约束条件了. 

如果字段设置为可空,则插入记录时如果没有给该字段赋值,那么MySQL自动用Default的值,如果没有设置Default,则无论是该字段是什么类型该字段值为NULL. 
字段是否可空,虽然不是一个约束条件,却会改变系统赋默认值的方式。 
疑问:以上规则是否仅限于MyIsam表,InnoDB呢??也是这样处理的吗?? 

连接字符集和校对 
character_set_server和collation_server 服务器字符集和校对规则 
character_set_database和collation_database 默认的数据库字符集和校对规则 

#当查询离开客户端后,在查询中使用哪种字符集? 
服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。 
#服务器接收到查询后应该转换为哪种字符集? 
服务器将客户端发送的查询从character_set_client转换到character_set_connection 
#服务器发送结果集或返回错误信息到客户端之前应该转换为哪种字符集? 
character_set_results变量指示服务器返回查询结果到客户端使用的字符集。 
包括结果数据(列值)和结果元数据(列名)。 
有两个语句影响连接字符集: 

SET NAMES 'charset_name' 
SET CHARACTER SET charset_name 
SET NAMES 'x'语句与这三个语句等价: 
mysql> SET character_set_client = x; 
mysql> SET character_set_results = x; 
mysql> SET character_set_connection = x; 
SET CHARACTER SET x语句与这三个语句等价: 
mysql> SET character_set_client = x; 
mysql> SET character_set_results = x; 
mysql> SET collation_connection = @@collation_database; (设置为默认的数据库连接字符集和校对规则) 

深入Mysql字符集设置 //www.jb51.net/article/29960.htm 

用于元数据的UTF8 
元数据是“关于数据的数据”。描述数据库的任何数据—作为数据库内容的对立面—是元数据。因此,列名、数据库名、用户名、版本名以及从SHOW语句得到的结果中的大部分字符串是元数据。还包括INFORMATION_SCHEMA数据库中的表中的内容,因为定义的那些表存储关于数据库对象的信息。 

元数据表述必须满足这些需求: 

· 全部元数据必须在同一字符集内。否则,对INFORM一个TION_SCHEMA数据库中的表执行的SHOW命令和SELECT查询不能正常工作,因为这些运算结果中的同一列的不同行将会使用不同的字符集。 

· 元数据必须包括所有语言的所有字符。否则,用户将不能够使用它们自己的语言来命名列和表。 

为了满足这两个需求,MySQL使用Unicode字符集存储元数据,即UTF8。 

服务器将character_set_system系统变量设置为元数据字符集的名: 

mysql> SHOW VARIABLES LIKE 'character_set_system'; 

mysql> SHOW VARIABLES LIKE 'character%';查看当前数据库的字符集设置情况

   

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved