RDBMS术语:

冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性

主键:主键是唯一的,一个数据表中只能包含一个主键,可以使用主键来查询数据

外键:外键用于关联两个数据表。

复合键(组合键):将多个列作为一个索引键,一般用于复合索引。

索引:使用索引可以快速访问数据库表中特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,类似于书的目录。

参照完整性:参照的完整性要求关系中不允许引用不存在是实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

添加用户:

mysql的用户数据存储在mysql数据库中的user表下

建立复合唯一索引 复合索引包含主键_建立复合唯一索引

建立复合唯一索引 复合索引包含主键_建立复合唯一索引_02

mysql添加用户的时候不要使用insert命令直接添加,可能会出现下面的错误:

Field ‘ssl_cipher‘ doesn‘t have a default value

错语原因:

mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的。

解决方法:

正确的添加用户方法:

GRANT USAGE ON *.* TO [email protected] IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;

用户:user01,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。

我写此笔记时用的mysql版本是5.7.24,在添加用户时可能会出现这种错误:

Unknown column ‘password‘ in ‘field list‘

这是因为5.7版本下的mysql没有password这个字段,password改成了authentication_string,用法一样。

password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。

查询当前用户:

select host, user, authentication_string from user;

建立复合唯一索引 复合索引包含主键_添加用户_03

host指此用户在哪里可以登录到此mysql数据库,localhost(127.0.0.1)表示本地,%表示所有ip,其他固定ip表示仅能通过此ip访问数据库

删除用户:

delete from user where user=‘user01‘ and host=‘localhost‘;

建立复合唯一索引 复合索引包含主键_mysql_04

常用命令:

查看表的结构:

desc 表名;

显示表的详细索引信息(包括主键):

show index from 表名;

显示数据库所用表的信息:

SHOW TABLE STATUS FROM 数据库名;

显示以xxx开头的表的信息:

SHOW TABLE STATUS from 数据库名 LIKE ‘xxx%‘;

加上\G,查询结构按列打印:

SHOW TABLE STATUS from 数据库名 LIKE ‘xxx%‘\G;