MySQL从青铜到王者第二篇:数据库的用户管理操作和数据库表的操作与数据类型

Posted 森明帮大于黑虎帮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL从青铜到王者第二篇:数据库的用户管理操作和数据库表的操作与数据类型相关的知识,希望对你有一定的参考价值。

系列文章目录



前言


一、数据库操作之备份、还原

备份:
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
eg:(退出连接)mysqldump -P3306 -u root -B mytest > ./mytest.sql


恢复:
source 路径;
eg:source mytest.sql;

二、用户管理

1.用户信息

MySQL中的用户,都存储在系统数据库mysql的user表中。

  • 字段解释:
  • host:表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆。
  • user:用户名。
  • authentication_string:用户密码通过password函数加密后的。
  • *_priv:用户拥有的权限。

2.创建用户

create user ‘用户名’@‘登陆主机/ip’ identified by ‘密码’;

3.删除用户(慎用)

drop user ‘用户名’@‘主机名’

4.修改用户密码

自己改自己密码:
set password=password(‘新的密码’);

root用户修改指定用户的密码:
set password for ‘用户名’@‘主机名’=password(‘新的密码’);
set password for ‘litao’@‘localhost’=password(‘abcdefg’);

5.给用户授权

刚创建的用户没有任何权限。需要给用户授权。

grant 权限列表 on 库.对象名 to ‘用户名’@‘登陆位置’ [identified by ‘密码’]

  • 说明:
  • 权限列表,多个权限用逗号分开。
  • . : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)。
  • 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)。
  • identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。

6.回收权限

revoke 权限列表 on 库.对象名 from ‘用户名’@‘登陆位置’;

三、navicat连接数据库


四、数据库表结构操作增、删、查、改



在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

1.增加表字段

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]…);

alter table user1 add age int before id;

2.删除表字段

注意:删除字段一定要小心,删除字段及其对应的列数据都没了。

alter table user1 drop info;

3.修改表名字

alter table user1 rename to user2;

4.修改表字段属性(type)

alter table user1 modify age char(10);

5.修改表中的字段名称(Field)

alter table user1 change age info char(20);

6.删除表(慎用)

drop table t1;

五、数据类型

1.数据类型分类

2.数值类型

1.tinyint类型

2.bit类型

bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。

3.bool类型

4.smallint类型

5.int类型

6.bigint类型

3.小数类型

1.float类型

float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节

2.decimal类型

3.double类型

4.字符串类型

1.char类型

char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255
char(2) 表示可以存放两个字符,可以是字母或汉字,但是不能超过2个, 最多只能是255

2.vchar类型

varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节。

  • 关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:
  • varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532。
  • 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)。
3.char与vchar的比较

5.日期时间类型

  • 常用的日期有如下三个:
  • datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从1000到9999,占用八字节。
  • date:日期 ‘yyyy-mm-dd’,占用三字节。
  • timestamp:时间戳,从1970年1月1日0时0分0秒开始的 yyyy-mm-dd HH:ii:ss格式和datetime完全一致,占用四字节。

6.enum类型

  • 常用的日期有如下三个:
  • enum:枚举,“单选”类型;。
  • enum(‘选项1’,‘选项2’,‘选项3’,…);。

该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举值时,也可以添加对应的数字编号。

7.set类型

  • 语法:
  • set:集合,“多选”类型;;。
  • enum(‘选项1’,‘选项2’,‘选项3’,…);。

该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,… 最多64个。



总结

以上就是今天要讲的内容,本文详细介绍了数据库表的增、删、查、改的使用和后续数据库表、数据类型,数据库提供了大量的方法供我们使用,非常的便捷,我们务必掌握。希望大家多多支持!另外如果上述有任何问题,请懂哥指教,不过没关系,主要是自己能坚持,更希望有一起学习的同学可以帮我指正,但是如果可以请温柔一点跟我讲,爱与和平是永远的主题,爱各位了。加油啊!

以上是关于MySQL从青铜到王者第二篇:数据库的用户管理操作和数据库表的操作与数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Git从青铜到王者第二篇:Git的初始

Linux从青铜到王者第十二篇:Linux进程间信号第二篇

Linux从青铜到王者第十八篇:Linux网络基础第二篇之TCP协议

Scrapy从青铜到王者第二篇:Scrapy进阶

Lua从青铜到王者基础篇第二篇:Lua基本语法和数据类型

设计模式从青铜到王者第二篇:UML类图与面向对象编程