网易云课堂微专业中的MySQL数据库工程师已经让我心水很久了,这次第五次开课终于算是赶上了。虽然刚上了第一节课,讲的大部分都是基础但还是有不少干货的,让我受益匪浅,下面记录并分享一下。

一、 int(11)和int(21)的区别

这两者在存储空间和存储范围上都没有区别,只要是int类型再mysql中都占用4个字节,存储范围为有符号数为-2^31到2^31-1,无符号数为0到2^32-1。

这两者只有当创建字段时给字段自动补0属性时才会有区别,例如通过下面的语句创建一张表。

create table t(a int(11) zerofill, b int(21) zerofill);然后再在该表中插入数据,例如:

insert into t values (1, 1);再查询t表中的数据发现结果如下:

可以看出两个字段自动补的0的个数不同,这就是这两个字段的区别。

二、 char与varchar

首先再声明时char和varchar括号中的数字都是表示可以存储的字符数,而不是字节数。例如char(2)表示可以存储2个字符。举例来说如果该字段的编码类型为utf-8,存储"测试"和"test"这两个字段时"测试"是能保存成功的,而"test"会保存失败,虽然"测试"实际存储时占用6个字节而"test"只占了4个字节。

其次char和varchar的区别在于char存储字符时当存储字符小于声明的长度时会自动补空,而varchar不会,但是varchar会不char多一个或两个字节的存储开销用于存储当前varchar中实际存储的字符数量。如下图所示:

因此varchar在存储长度上并不是任何时候都优于char的,极限情况下当存储一个字符时char(1)只占用一个字符的存储空间,而varchar(1)除了占用一个字符的存储空间外还要占用一个字节的空间存储字符数量。另外varchar中存储字符数量用的是用一个字节还是两个字节取决于定义varchar是声明的存储上限,如果小于等于255则用一个字节,如果大于255则用两个字节。

然后再存储上限上char最多可以存储255个字符。而varchar的上限字符需要计算一下,因为varchar存储的上限是65535个字节,因此上限字符数需要根据实际的编码类型来计算,如果是ascii码则最多可以存储65535个字符,如果时utf-8则最多能存储21845个字节,因为utf-8编码下一个字符最多占用3个字节。此外,当声明的字符数超过varchar的上限时mysql并不会报错,也不会执行失败,而是将varchar字段自动转换为text类型。

三、 权限管理

首先创建账号使用create user命令,例如:

create user 'netease'@'localhost' identified by 'netease163';其中"netease"是账号名,@符后面的"localhost"是ip白名单,这句语句创建的账号再"localhost

"下表示只有本机能够访问,identified by后面时账号的密码。

然后时赋权限,命令为grant,例如:

grant select on *.* to 'netease'@'localhost' with grant option;grant后面的select表示给的权限类型时查权限,此外还有update、delete等权限类型,可以用show privileges命令查看所有的权限类型,如果时多个权限可以用逗号分开。on后面的"*.*"表示所有的库和所有的表,"."前面表示权限开放的数据库,可以填写具体的库名,如果是全部就用"*",

"."后面表示权限开放的表,可以填写具体的表名,如果是全部就用"*"。to后面时该权限赋予的用户,最后的with grant option表示被赋予权限的用户可以将自己当前的权限再赋予其他用户,如果不加上with grant option则用户不能将自身的权限赋予别的用户。

此外,mysql中的权限信息都是存储在程序自己默认创建的mysql的数据表中,具体涉及的表有user、db、tables_priv和columns_priv表,也可以直接修改这些表中的数据来修改权限,但是在修改完后需要执行flush privileges命令刷新权限,否则不会生效。但是因为这些表中的字段较多,比较复杂一般不推荐直接在这些表中修改。

最后mysql默认创建的test库是不受权限控制的,因此在实际线上项目中需要将其删除。

四、datatime类型

datetime类型正常的存储范围是'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59',但是有时候会发现向 '0000-00-00 00:00:00'这样的值也是能存储成功的,原因是这个mysql没有设置sql mode,如果设置了sql mode像 '0000-00-00 00:00:00'这样的值就无法存储了,所以如果系统中有存储这样数据的时候就不要设置sql mode了。

网易mysql微专业_网易MySQL数据库工程师微专业学习笔记(一)相关推荐

  1. NCBI SRA数据库使用详解----学习笔记

    NCBI SRA数据库使用详解----学习笔记 wxw060709 2019-12-25 15:58:47  1014  收藏 2 分类专栏: 生物信息学 版权 SRA(Sequence ReadAr ...

  2. 网易MySQL数据库工程师微专业学习笔记(一)

    网易云课堂微专业中的MySQL数据库工程师已经让我心水很久了,这次第五次开课终于算是赶上了.虽然刚上了第一节课,讲的大部分都是基础但还是有不少干货的,让我受益匪浅,下面记录并分享一下. 一. int( ...

  3. 数据库mysql建立索引_为mysql数据库建立索引

    前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...

  4. 查看mysql删除日志_如何查看数据库删除记录日志

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. mysql cdc采集_浅谈CDC在微服务中的应用

    原标题:浅谈CDC在微服务中的应用 CDC(Change Data Capture)是一种通过监测数据变更(变更包括新增.修改.删除等)而对变更的数据进行进一步处理的一种设计模式,通常应用在数据仓库以 ...

  6. 怎么在linux下用mysql建库_在MySQL/MariaDB中创建数据库、数据库用户和授予特权(针对Linux平台)...

    在本文中,将学习MySQL/MariaDB数据库创建.数据库用户创建以及如何向用户授予权限,方法针对Linux平台.安装数据库请参考为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8 ...

  7. mysql 增量备份_云计算-开源数据库-备份

    关于备份: 备份原因:怕丢,怕被误删. 备份目标:数据的一致性,服务的可用性. 备份技术:物理备份/冷备份 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版 ...

  8. 添加mysql库路径_修改MySQL数据库存放路径

    MySQL 数据库默认存放路径是 /var/lib/mysql,要把它放在别的路径下,方法如下(以下操作需root权限): 1. 新建一个要存放的数据库的目录,比如:/home/jeff/mysql, ...

  9. mysql source导入_读取MySQL数据库中的数据【Python数据分析百例连载】

    当所需的数据存贮在MySQL数据库中时,那么数据分析首要任务就是要通过Pandas读取MySQL数据.例如,某网站注册用户信息保存在MySQL数据库中,如图所示(部分数据),下面将使用Pandas的r ...

  10. mysql研究内容_基于MySQL数据库的数据管理的研究

    [摘 要]MySQL 是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言,即结构化查询语言进行数据库管理.缓存管理是对于文件数据在内存中的特殊管理,基于内存管理,向 ...

最新文章

  1. 视频动作识别--Convolutional Two-Stream Network Fusion for Video Action Recognition
  2. ios appIcon配置
  3. leetcode算法题--旋转数组的最小数字
  4. java arraylist线程安全_ArrayList升级为线程安全的List
  5. mysql学习-初识mysql
  6. 好全的Android面试题
  7. .Net开源的跨平台爬虫框架 DotnetSpider
  8. windows和linux系统下测试端口连通性的命令
  9. MySQL 重中之重 [ 事物 ]
  10. 刚安装玩mysql如何登录不了_解决启用GTID binlog新安装完的MySQL提示无法登录
  11. python装饰器 稀里糊涂_谈谈自己的理解:python中闭包,闭包的实质
  12. ng-repeat动态生成的DOM如何获取宽度(封装好的方法)
  13. sftp连不上服务器 vscode_vscode+sftp 开发模式环境的同步
  14. setuna截图怎么放大缩小_手机中的望远镜 华为P30pro是怎么做到50倍变焦?
  15. Java逻辑思维训练题
  16. 查看linux系统日志某一天,linux系统日志查看
  17. 两年数据对比柱形图_你与专业堆积柱形图的距离,只差一个数据标签
  18. bcftools操作vcf文件
  19. 以前的windows安装文件可以删除吗_Windows系统中“C盘”可以删除的文件—让你最大限度提C盘空间...
  20. 网络钓鱼仍然是安全行业的祸害

热门文章

  1. 【MML】华为MML AAA接口联调,Java版本
  2. Git-储藏(Stashing)
  3. 查看linux当前ip,linux查看当前服务器ip地址 命令行
  4. 【C语言】详解 calloc 函数用法
  5. uni-app微信公众号(4)——地址管理页面
  6. Error while sending STMT_PREPARE packet. PID=29294
  7. 彻底删除aws亚马逊服务器使之不再计费
  8. python爬虫扇贝单词库
  9. mysql子查询语句多列_MySQL:子查询
  10. clcl.bz index.php,BZPHP