MySql 备忘录
发布时间:2024-01-22 12:56:48
一、关于空值
提示:
在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字符集设置 https://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%';查看当前数据库的字符集设置情况


猜你喜欢
- 上一篇介绍了 HTML5 中 Canvas 的路径,这篇将要介绍一下 Canvas&nbs
- 本博客将为各位分享Python Helium库,其是在 Selenium库基础上封装的更加高级的 Web 自动化工具,它能够通过网页端可见的
- 我们生活在信息繁杂的社会,尤其是在互联网时代,人们开始通过网络开始接触越来越多的信息,那么,如何获取/传递有效而准确的信息将非常重要。在网页
- Anaconda简介Anaconda是一个方便的python包管理和环境管理软件,一般用来配置不同的项目环境。我们常常会遇到这样的情况,正在
- Python 包含6种数据类型,其中Number(数字)、String(字符串)、Tuple(元组)、List(列表)、Dictionary
- ExpiresAbsolute 属性指定缓存于浏览器中的页的到期日期和时间语法Response.ExpiresAbsolute [
- 前言mysql版本为mysql> select version();+-----------+| version() |+------
- file 对象使用 open 函数来创建,下表列出了 file 对象常用函数read、readline、readlines区别:1.从文件读
- 很多人在使用AJAX调用别人站点内容的时候,JS会提示"没有权限"错误,这是XMLHTTP组件的限制-安全起见禁止访问非
- 背景形态学处理方法是基于对二进制图像进行处理的,卷积核决定图像处理后的效果;形态学的处理哦本质上相当于对图像做前处理,提取出有用的特征,以便
- 本文实例讲述了Python实现爬取逐浪小说的方法。分享给大家供大家参考。具体分析如下:本人喜欢在网上看小说,一直使用的是小说下载阅读器,可以
- 1.概述随着人工智能技术的不断发展,越来越多的AI产品被应用到各个领域,其中最具代表性的莫过于人工智能语言模型。语言模型是一种可以通过学习大
- 1:mysql是我们使用最多的数据库,如果在日常中正确的对mysql数据进行备份,下面我们就来做这事,通过脚本来实现############
- 基于OpenCV2.4.8和 python 2.7实现简单的手势识别。以下为基本步骤 1.去除背景,提取手的轮廓2. RGB->YUV
- 本文实例讲述了js实现类似iphone的网页滑屏解锁功能。分享给大家供大家参考,具体如下:iphone 的出现,打破了人们的用户体验,这一用
- argparse模块用法一、 概念argsparse是python的命令行解析的标准模块,内置于python,不需要安装。这个库可以让我们直
- 一、介绍Python远程调试,即在远程机器上运行python代码在本地进行调试,之前文章里的方式方法已经out,现在更新为当前版本已经成功实
- int(整型)在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647在6
- 在整个安装的过程中也遇到了很多的坑,故此做个记录,争取下次不再犯!我的整个基本配置如下:电脑环境如下:win10(64位)+CPU:E5-2
- 本文实例讲述了django框架自定义用户表操作。分享给大家供大家参考,具体如下:django中已经给我生成默认的User表,其中的字段已经可