sql server
对于字符类型的有:
char:固定长度,存储ANSI字符,不足的补英文半角空格。
nchar:固定长度,存储Unicode字符,不足的补英文半角空格
varchar:可变长度,存储ANSI字符,根据数据长度自动变化。
nvarchar:可变长度,存储Unicode字符,根据数据长度自动变化。

也就是说:varchar 可变长度,varchar(50)即最长长度为:50个字符。

char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义 char(10),

那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。因为是固定长度,所以速度效率高。

位(bit):是计算机内部【数据存储】的最小单位,例如:01011100(是一个8位的二进制数)

字节(Byte):是计算机内部【数据处理】的基本单位,也是一种计量单位表示数据量的多少。1 Byte(字节)= 8 bit(位)

字符:是指计算机中使用的 【文字】【符号】【数字】【字母】。   "哈哈,,。。:‘’1234_ABCD"

字符集:就是字符编码的规则。一切存在的事物都要遵循规则遵循法律,不然整个 ‘世界’ 都会乱套。

字符和字节的关系

它们完全不是一个位面的概念,所以两者之间没有【区别】这个说法。在不同的编码里,字符和字节的对应关系不同。

为何需要编码?

  所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)有0和1两种状态。当我们需要把字符 'A' 存入计算机时,应该对应哪种状态呢?

存储时,我们可以将字符 'A' 用 01000010 二进制字符串表示,存入计算机;读取时,再将01000010还原成字符 'A' 。

那么问题来了,存储时,字符 'A' 应该对应哪一串二进制数呢,是01000010?或者是10000000 11110101?说白了,就是需要一个规则。

这个规则可以将字符映射到唯一一种状态(二进制字符串),这就是编码。

而最早出现的编码规则就是ASCII编码,在ASCII编码规则中,字符 'A' 既不对应01000010,也不对应10000000、11110101,而是对应01000001(不要问为什么,这是规则)。

字符集

ASCII 码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节。

UTF-8 编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。

Unicode 编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。符号:英文标点占一个字节,中文标点占两个字节。

UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。

UTF-16 编码中,世界上任何字符的存储都需要4个字节。

python基础 — Mysql Server的更多相关文章

  1. Python 基础学习篇

    注:技术尚浅,时间匆忙,如有错误或者不当之处值得商榷的,请留言,吾必思而改之. 第一篇 :Python基础- 安装/变量/输入/及循环语句使用 第二篇:  Python基础- 常用数据类型 第三篇: ...

  2. python 操作 mysql基础补充

    前言 本篇的主要内容为整理mysql的基础内容,分享的同时方便日后查阅,同时结合python的学习整理python操作mysql的方法以及python的ORM. 一.数据库初探 在开始mysql之前先 ...

  3. Python pandas ERROR 2006 (HY000): MySQL server has gone away

    之前在做python pandas大数据分析的时候,在将分析后的数据存入mysql的时候报ERROR 2006 (HY000): MySQL server has gone away 原因分析:在对百 ...

  4. (3.4)mysql基础深入——mysql.server启动脚本源码阅读与分析

    (3.4)mysql基础深入——mysql.server启动脚本源码阅读与分析 my.server主要分为3大部分 [1]变量初始化部分 [2]函数声明部分 [3]具体执行部分 #!/bin/sh # ...

  5. win10,python连接mysql报”Can't connect to MySQL server on 'localhost' (10061)”

    一.环境及问题描述 1. 环境 操作系统:win10家庭版,64bit python版本:Python 2.7.15 mysql版本:mysql 5.4.3 2. 问题描述 最近跟公司申请电脑,预装w ...

  6. 解决python pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')

    解决python pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') 学习了:ht ...

  7. python操作mysql基础一

    python操作mysql基础一 使用Python操作MySQL的一些基本方法 前奏 为了能操作数据库, 首先我们要有一个数据库, 所以要首先安装Mysql, 然后创建一个测试数据库python_te ...

  8. python + pymysql连接数据库报“(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)")”

    python + pymysql连接数据库报"(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)&quo ...

  9. python基础总结篇——使用Mysql

    python操作Mysql,很方便,使用的MySQLdb的库,基本的操作如下: 查询: try: conn = MySQLdb.connect(host=self.ip, user=self.user ...

随机推荐

  1. pkgconfig

    # tree hiredis/ hiredis/└── usr └── local ├── include │   └── hiredis │   ├── adapters │   │   ├── a ...

  2. echo如何输出带颜色的文本

    本文链接:https://blog.csdn.net/qualcent/article/details/7106483 ######################################## ...

  3. Kapitan 通用terraform&& kubernetes 配置管理工具

    Kapitan 是一个通用的配置管理工具,可以帮助我们管理terraform .kubernetes 以及其他的配置. Kapitan 自生基于jsonnet 开发,对于我们日常进行软件的部署(tf以 ...

  4. android 自己制作Jar包 和 修改 现成的 Jar包文件

    先看如何创建自己的 Jar 包 里面随便写个方法 public int add(int a,int b){ return (a+b); } task makeJar(type: Copy) { del ...

  5. C++之Lambda研究

    目录 目录 1 1. 前言 1 2. 示例1 1 3. 示例2 2 4. 示例3 3 5. 示例4 3 6. 示例5 6 7. 匿名类规则 6 8. 参考资料 7 1. 前言 本文代码测试环境为“GC ...

  6. Noip2019暑期训练2 反思

    经过两次测试,通过深刻的反思,我主要发现了以下易犯错误: 1.做题目时过于追求速度,导致好几处代码都出现手误打错的现象!而且,千万不要图快.图方便就复制粘贴,非常容易出错!(例如T3-party中直接 ...

  7. 第12组 Beta冲刺(2/5)

    Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 由于这两天在修严重Bug,故项目没有新的进展,燃尽图没有变化 展示Git当日代码/文档签入记录(组内 ...

  8. nginx中的upstream使用

    upstream的基本使用 upstream admin{server 127.0.0.1:9090 down;server 127.0.0.1:8080 weight=2;server 127.0. ...

  9. WEB API 的设计与开发

  10. 如何SpringBoot项目改为外置Tomcat启动

    正常情况下,我们开发 SpringBoot 项目,由于内置了Tomcat,所以项目可以直接启动,部署到服务器的时候,直接打成 jar 包,就可以运行了 (使用内置 Tomcat 的话,可以在 appl ...